diff --git a/_includes/links.md b/_includes/links.md index 2d97d6f47..439afb775 100644 --- a/_includes/links.md +++ b/_includes/links.md @@ -59,6 +59,7 @@ [0234]: {{ site.cookbook_url | absolute_url }}/recipe/0234-provider/ "Acknowledge Content Contributors" [0240]: {{ site.cookbook_url | absolute_url }}/recipe/0240-navPlace-on-canvases/ "Locate Multiple Canvases on a Web Map" +[0253]: {{ site.cookbook_url | absolute_url }}/recipe/0253-using-transcript-file/ "Using Transcript Files with Video and Audio Content" [0261]: {{ site.cookbook_url | absolute_url }}/recipe/0261-non-rectangular-commenting/ "Annotation with a Non-Rectangular Polygon" [0258]: {{ site.cookbook_url | absolute_url }}/recipe/0258-tagging-external-resource/ "Tagging with an External Resource" diff --git a/index.md b/index.md index 82044dad3..0dda65a3f 100644 --- a/index.md +++ b/index.md @@ -72,8 +72,8 @@ _The corresponding 2.1 test fixture(s) is given like this, where appropriate: .. * [Transcripts, Captions, and Subtitles - General Considerations][0231] * [Providing Access to Transcript Files of A/V Content][0017] * [Using Annotations for Timed Text][0079] - * [Using Caption and Subtitle Files with Video Content][0219] - * [A Side-by-side Transcript of a Video Recording][0253] + * [Using Caption Files with Video Content][0219] + * [Using Transcript Files with Video or Audio Content][0253] * Transcription of content into XML, with XPaths to select a segment ## Other kinds of annotations diff --git a/recipe/0253-using-transcript-file/index.md b/recipe/0253-using-transcript-file/index.md new file mode 100644 index 000000000..e268aafa6 --- /dev/null +++ b/recipe/0253-using-transcript-file/index.md @@ -0,0 +1,49 @@ +--- +title: Using Transcript Files with Audio or Video Content +id: 253 +layout: recipe +tags: [video, audio, transcript, presentation] +summary: "Providing a transcript file to to be rendered alongside an audio or video resource." +viewers: + - Clover + - Ramp + - Aviary + - Theseus +topic: AV +--- + + +## Use Case + +Transcripts may be available for your audio and/or video content and should be enabled for side-by-side display for your IIIF media resources. + +## Implementation notes + +External transcript files may exist in a wide variety of formats, including .vtt, .srt, .docx, .txt, and .pdf. To improve accessibility, it is ideal for a IIIF media viewer to display as many potential formats as possible. +Some markup file formats use time tags that allow for time alignment of the audio or video content with the transcript, primarily [WebVTT](http://en.wikipedia.org/wiki/WebVTT) or [SRT](https://en.wikipedia.org/wiki/SubRip) (SubRip Text). + +Offering the transcript file(s) as an Annotation on the Canvas that contains the media file itself enables us to express the relationship between the two. The `provides` property of the Annotation can be used by the client to identify transcript files that should be rendered side-by-side or adjacent to the media item itself. +The `format` property of the Annotation can be used to determine if the transcript file format can be rendered directly to the user by the media viewer. + +In addition to this implementation, one could also offer transcripts as a series of timed textual annotations, making the text available in multiple ways. See [Using Annotations for Timed Text][0079]. + +While captions, subtitles, and transcripts each present some text interpretation of the A/V content, the ways in which they are consumed by users differ. For a more detailed discussion about these differences see [Transcripts, Captions, and Subtitles - General Considerations][0231]. + +## Example + +In this example we demonstrate a transcript file in the WebVTT format, but other formats are possible (see above). + +{% include manifest_links.html viewers="Clover, Ramp, Aviary, Theseus" manifest="manifest.json" %} + +{% include jsonviewer.html src="manifest.json" config='data-line="43-61"'%} + +# Related recipes + +- [Using Caption Files with Video Content][0219] +- [Using Caption and Subtitle Files in Multiple Languages with Video Content][0074] +- [Using Annotations for Timed Text][0079] +- [Providing Access to Transcripts of A/V Content][0017] +- [Annotating a Poetry Reading][0103] + +{% include acronyms.md %} +{% include links.md %} diff --git a/recipe/0253-using-transcript-file/manifest.json b/recipe/0253-using-transcript-file/manifest.json new file mode 100644 index 000000000..3a6697df7 --- /dev/null +++ b/recipe/0253-using-transcript-file/manifest.json @@ -0,0 +1,67 @@ +{ + "@context": "http://iiif.io/api/presentation/3/context.json", + "id": "{{ id.url }}", + "type": "Manifest", + "label": { + "en": [ + "Lunchroom Manners" + ] + }, + "items": [ + { + "id": "{{ id.path }}/canvas", + "type": "Canvas", + "height": 360, + "width": 480, + "duration": 572.034, + "items": [ + { + "id": "{{ id.path }}/canvas/page", + "type": "AnnotationPage", + "items": [ + { + "id": "{{ id.path }}/canvas/page/annotation1", + "type": "Annotation", + "motivation": "painting", + "body": { + "id": "https://fixtures.iiif.io/video/indiana/lunchroom_manners/high/lunchroom_manners_1024kb.mp4", + "type": "Video", + "height": 360, + "width": 480, + "duration": 572.034, + "format": "video/mp4" + }, + "target": "{{ id.path }}/canvas" + } + ] + } + ], + "annotations": [ + { + "id": "{{ id.path }}/canvas/page2", + "type": "AnnotationPage", + "items": [ + { + "id": "{{ id.path }}/canvas/page2/a1", + "type": "Annotation", + "motivation": "supplementing", + "provides": ["transcript"], + "body": { + "id": "https://fixtures.iiif.io/video/indiana/lunchroom_manners/lunchroom_manners.vtt", + "type": "Text", + "format": "text/vtt", + "label": { + "en": [ + "Transcript in WebVTT format" + ] + }, + "language": "en" + }, + "target": "{{ id.path }}/canvas" + } + ] + } + ] + } + ] +}