diff --git a/docs/recipes/0219-using-caption-file.md b/docs/recipes/0219-using-caption-file.md new file mode 100644 index 0000000..f0f4859 --- /dev/null +++ b/docs/recipes/0219-using-caption-file.md @@ -0,0 +1,10 @@ +# Using Caption and Subtitle Files with Video Content +| | **Cookbook URLs** | +|--------------|-------------------| +| **Recipe:** | [https://iiif.io/api/cookbook/recipe/0219-using-caption-file/](https://iiif.io/api/cookbook/recipe/0219-using-caption-file/) | +| **JSON-LD:** | [https://iiif.io/api/cookbook/recipe/0219-using-caption-file/manifest.json](https://iiif.io/api/cookbook/recipe/0219-using-caption-file/manifest.json) | + +### Method 1 - Construct Supplementing Annotation Using the `make_annotation` helper and a dictionary of the `body` properties +```python +--8<-- "docs/recipes/scripts/0219-using-caption-file-method1.py" +``` diff --git a/docs/recipes/scripts/0219-using-caption-file-method1.py b/docs/recipes/scripts/0219-using-caption-file-method1.py new file mode 100644 index 0000000..f2554fe --- /dev/null +++ b/docs/recipes/scripts/0219-using-caption-file-method1.py @@ -0,0 +1,44 @@ +from iiif_prezi3 import Manifest, ResourceItem, AnnotationPage, Annotation, config + +config.configs['helpers.auto_fields.AutoLang'].auto_lang = "en" +base_url = "https://iiif.io/api/cookbook/recipe/0219-using-caption-file" + +manifest = Manifest( + id=f"{base_url}/manifest.json", + label="Lunchroom Manners" +) +canvas = manifest.make_canvas(id=f"{base_url}/canvas") +painting_anno_body = ResourceItem( + id="https://fixtures.iiif.io/video/indiana/lunchroom_manners/high/lunchroom_manners_1024kb.mp4", + type="Video", + format="video/mp4" +) +painting_anno_page = AnnotationPage( + id=f"{base_url}/canvas/page" +) +painting_anno = Annotation( + id=f"{base_url}/canvas/page/annotation1", + motivation="painting", + body=painting_anno_body, + target=canvas.id +) +hwd = {"height": 360, "width": 480, "duration": 572.034} +painting_anno_body.set_hwd(**hwd) +canvas.set_hwd(**hwd) +painting_anno_page.add_item(painting_anno) +canvas.add_item(painting_anno_page) +caption_body = ResourceItem( + id="https://fixtures.iiif.io/video/indiana/lunchroom_manners/lunchroom_manners.vtt", + type="Text", + language="en", + format="text/vtt" +) +caption_body.add_label(language="en", value="Captions in WebVTT format") +captions = canvas.make_annotation( + id=f"{base_url}/canvas/page2/a1", + motivation="supplementing", + body=caption_body, + target=f"{base_url}/canvas", + anno_page_id=f"{base_url}/canvas/page2" +) +print(manifest.json(indent=2))