Overview

I had the opportunity to create an IIIF v3 manifest for video using iiif-prezi3, so this is a note for reference.

https://github.com/iiif-prezi/iiif-prezi3

References

Examples of IIIF manifest files and implementation examples using iiif-prezi3 are published in the IIIF Cookbook.

Below is an example of creating an IIIF v3 manifest for video.

https://iiif.io/api/cookbook/recipe/0003-mvm-video/

An implementation example using iiif-prezi3 is published at the following.

https://iiif-prezi.github.io/iiif-prezi3/recipes/0003-mvm-video/

from iiif_prezi3 import Manifest, AnnotationPage, Annotation, ResourceItem, config

config.configs['helpers.auto_fields.AutoLang'].auto_lang = "en"

manifest = Manifest(id="https://iiif.io/api/cookbook/recipe/0003-mvm-video/manifest.json", label="Video Example 3")
canvas = manifest.make_canvas(id="https://iiif.io/api/cookbook/recipe/0003-mvm-video/canvas")
anno_body = ResourceItem(id="https://fixtures.iiif.io/video/indiana/lunchroom_manners/high/lunchroom_manners_1024kb.mp4",
                         type="Video",
                         format="video/mp4")
anno_page = AnnotationPage(id="https://iiif.io/api/cookbook/recipe/0003-mvm-video/canvas/page")
anno = Annotation(id="https://iiif.io/api/cookbook/recipe/0003-mvm-video/canvas/page/annotation",
                  motivation="painting",
                  body=anno_body,
                  target=canvas.id)

hwd = {"height": 360, "width": 480, "duration": 572.034}
anno_body.set_hwd(**hwd)
hwd["width"] = 640
canvas.set_hwd(**hwd)

anno_page.add_item(anno)
canvas.add_item(anno_page)

print(manifest.json(indent=2))

Summary

Many other samples and implementation examples are also published. I hope this is helpful.