Skip to content

Commit 04eba4c

Browse files
authored
Merge pull request #216 from IIIF/nlw_2025_training
Adding NLW training
2 parents fb96bc9 + 84c0745 commit 04eba4c

38 files changed

Lines changed: 857 additions & 0 deletions

index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ Documentation and workshop materials for IIIF training
1919

2020
## Bespoke Training
2121

22+
* [National Library of Wales](nlw-workshop/index.html) - a bespoke 2 day workshop written for the NLW and delivered in 2025.
2223
* [Getty Research Institute](gri_getty/index.html) - a bespoke 2 hour workshop written for the Getty GRI and delivered in 2023.
2324
* [British Library online Training](iiif-bl-workshop/index.html) - a bespoke 5 day workshop written for the British Library and delivered in 2021/22.
2425
* [Humboldt University of Berlin](humboldt_university/index.html) - a bespoke 2.5 hour workshop looking at the basics of using IIIF and aggregation.

nlw-workshop/README.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# National Library of Wales Training
2+
3+
## Brief
4+
The National Library of Wales is looking for a two day on-site training with day one to cover the basics of the Image API, Presentation API and annotations. Day two should include a half day on Audio Visual support for IIIF and half a day looking at tools and implementations and then an open discussion on future directions for the NLW IIIF support.
5+
6+
## Hands on IIIF Workshop
7+
The staff of the IIIF Consortium are working with the NLW to provide a custom 2 day training introducing the benefits and opportunities of using IIIF. Where possible examples will be provided using NLW content and participants are encouraged to identify NLW content they can use through the workshop.
8+
9+
The workshop is intended to give a hands-on experience of working with IIIF images, Manifests and AV resources. No prior technical or IIIF knowledge is required and all the tools will be made available using a Web Browser like Chrome or Firefox. You will be asked to register for a free Github account, instructions will be provided.
10+
11+
## Tuesday 18th February
12+
13+
| Session | Content |
14+
|----------|----------|
15+
| 10:00 - 11:00 | Using IIIF - A user perspective 1 hour <br> - Introduction to IIIF tools <br> - Comparing content <br> - Finding a NLW manifest and opening it in a different viewer. |
16+
| 11:00 - 11:45 | **Break** |
17+
| 11:15 - 12:30 | IIIF Images <br> - Inspecting a IIIF Image <br> - IIIF Image setup <br> - Finding NLW images <br> - NLW Image servers |
18+
| 12:30 - 13:30 | **Lunch** |
19+
| 13:30 - 14:30 | IIIF Manifests - Books / Manuscripts / Newspapers etc. <br> - Basics of a Manifest <br> - Creating a manifest using the Bodleian Manifest editor <br> - Looking at manifests and collections <br> - Newspapers and Journals <br> - Book of Remembrance |
20+
| 14:30 - 14:45 | **Break** |
21+
| 14:45 - 16:00 | Annotations <br> - Book of remembrance project <br> - IIIF Search API <br> - Annotating NLW manifests |
22+
23+
## Wednesday 19th February
24+
25+
| Session | Content |
26+
|----------|----------|
27+
| 10:00 - 11:00 | Working with AV collections <br> - AV in IIIF basics <br> - Creating an AV Manifest <br> - AV tools |
28+
| 11:00 - 11:15 | **Break** |
29+
| 11:15 - 12:30 | Tools and implementations <br> - Allmaps <br> - Exhibit <br> - Others that come up in the course |
30+
| 12:30 - 13:30 | **Lunch** |
31+
| 13:30 - 16:00 | Open discussion and questions |
32+

nlw-workshop/SUMMARY.md

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
# Summary
2+
3+
- [Overview](README.md)
4+
5+
## Introduction to IIIF
6+
- [What is IIIF](basics/whatisiiif.md)
7+
- [Finding NLW Manifests](nlw-manifests.md)
8+
- [Exercise](basics/guides.md)
9+
10+
## IIIF Image API
11+
- [Image API](day-two/image-api.md)
12+
- [Identifier](day-two/image-api/identifier.md)
13+
- [Region](day-two/image-api/region.md)
14+
- [Size](day-two/image-api/size.md)
15+
- [Rotation](day-two/image-api/rotation.md)
16+
- [Quality](day-two/image-api/quality.md)
17+
- [Format](day-two/image-api/format.md)
18+
- [Group Question](day-two/question.md)
19+
- [File formats](day-two/fileformats.md)
20+
- [Uses](day-two/uses.md)
21+
- [NLW Image servers](nlw-image-servers.md)
22+
- [Getting started](day-two/image-servers/README.md)
23+
- [NLW Images](nlw_images.md)
24+
- [Hosted - Internet Archive](day-two/image-servers/iiif-hosting-ia.md)
25+
- [Static Images - Workbench](day-two/image-servers/level0-workbench.md)
26+
- [Cantaloupe (Advanced)](day-two/image-servers/setting-up-cantaloupe.md)
27+
28+
## Presentation API
29+
- [Presentation API](day-three/README.md)
30+
- [Create a Manifest](day-three/bodleian-editor/README.md)
31+
- [Setup your environment](day-three/visual_studio_setup/README.md)
32+
- [Edit a Manifest](day-three/edit-a-manifest/README.md)
33+
- [Add Structure](day-three/ranges/README.md)
34+
- [Publishing your manifest](day-three/workbench/README.md)
35+
- [NLW Manifest examples](nlw-interesting-manifests.md)
36+
37+
## Annotations
38+
- [Introduction](day-four/README.md)
39+
- [Annotations](day-four/annotations-and-annotation-lists.md)
40+
- [Annotating with Mirador](day-four/annotations-exercises.md)
41+
- [Annotating Stores](day-four/annotations-stores.md)
42+
- [Annotating Stores - Results](day-four/annotations-stores-results.md)
43+
- [Annotating your own content](day-four/annotations-sas.md)
44+
- [Linking and Viewing your Annotations](day-four/annotation-linking.md)
45+
- [IIIF Search API](day-four/iiif-search-api.md)
46+
- [Publishing your annotated Manifest](day-four/workbench.md)
47+
- [Annotating Store - Do it yourself](day-four/annotations-stores-install.md)
48+
- [Advanced annotation presentation](day-four/advanced-annotations.md)
49+
- [NLW Annotations](nlw-annotations.md)
50+
51+
## IIIF & AV
52+
- [An introduction to AV](av-intro.md)
53+
- [Looking at a BL audio file](day-three/BL-Audio/README.md)
54+
- [Looking at the Internet Archive Videos](ia-examples.md) **todo**
55+
- [Examples](av-examples.md)
56+
- [Create video Manifest](day-three/digirati-editor/Add_video_manifest.md)
57+
58+
## Tools and implementations
59+
- [Tools](tools.md) **todo**
60+
- [Exhibit](exhibit/exhibit.md)
61+
- [All Maps](use_cases/allmaps.md)
62+
- [FromThePage](use_cases/FromThePage.md)
63+
64+
## Open discussion
65+
- [topics](topics.md)
66+
67+
## Extras
68+
- [Guides](extras/README.md)
69+
- [Using non IIIF images in a manifest](https://glenrobson.github.io/iiif_stuff/simple_images/)
70+
- [A basic Video manifest](extras/AVExample.md)

nlw-workshop/av-examples.md

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
# NLW AV Examples
2+
3+
IIIF works with AV content that is made available in the following ways:
4+
5+
* It must be made available over https
6+
* IIIF needs direct access to the video file (i.e. no youtube)
7+
* For speed of access support for [HTTP range requests](https://developer.mozilla.org/en-US/docs/Web/HTTP/Range_requests) is recommended
8+
* IIIF does support adaptive bitrate streaming via HLS protocol
9+
* Provides [CORS headers](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS)
10+
11+
The examples below are stored on Amazon s3 which supports HTTP range requests, https and the appropriate CORS headers. The width, height and duration in seconds can be worked out by using the following command:
12+
13+
```
14+
ffprobe -v error -select_streams v:0 -show_entries stream=width,height,duration -of json "your-video-file.mp4"
15+
{
16+
"programs": [
17+
18+
],
19+
"stream_groups": [
20+
21+
],
22+
"streams": [
23+
{
24+
"width": 1920,
25+
"height": 1080,
26+
"duration": "449.120000"
27+
}
28+
]
29+
}
30+
```
31+
32+
## Interview with Mike England and Ian Rush
33+
34+
* [video](https://iiif.gdmrdigital.com/nlw/2025/training/aohaa00000132.mp4)
35+
* [Clip Link](https://clip.library.wales/detail/318292?published=published_public&terms=rush&sorting=DESC&results=12&viewmode=grid)
36+
* **Duration:** 449.12
37+
* **Width:** 1920
38+
* **Height:** 1080
39+
40+
## Interview with John Neal (Wrexham) and John Charles (Merthyr Tydfil)
41+
42+
* [video](https://iiif.gdmrdigital.com/nlw/2025/training/aohaa00000133.mp4)
43+
* [Clip Link](https://clip.library.wales/detail/318293?published=published_public&terms=wrexham&sorting=DESC&results=12&viewmode=grid)
44+
* **Duration:** 187.00
45+
* **Width:** 1920
46+
* **Height:** 1080
47+
48+
## Swansea City – Interview with manager John Toshack
49+
50+
* [video](https://iiif.gdmrdigital.com/nlw/2025/training/aohaa00000134.mp4)
51+
* [Clip Link](https://clip.library.wales/detail/318294?published=published_public&terms=football&page=1&sorting=DESC&results=12&viewmode=grid)
52+
* **Duration:** 130.28
53+
* **Width:** 1920
54+
* **Height:** 1080
55+
56+
## Wrecsam yn sicrhau dyrchafiad i'r Ail Adran
57+
58+
* [video](https://iiif.gdmrdigital.com/nlw/2025/training/aohaa00000135.mp4)
59+
* [Clip Link](https://clip.library.wales/detail/318295?published=published_public&terms=wrexham&page=1&sorting=DESC&results=12&viewmode=grid)
60+
* **Duration:** 174.44
61+
* **Width:** 1920
62+
* **Height:** 1080
63+
64+
## Wrexham training on the Racecourse ground
65+
66+
* [video](https://iiif.gdmrdigital.com/nlw/2025/training/aohaa00000136.mp4)
67+
* [Clip Link](https://clip.library.wales/detail/318296?published=published_public&terms=wrexham&sorting=DESC&results=12&viewmode=grid)
68+
* **Duration:** 124.76
69+
* **Width:** 1920
70+
* **Height:** 1080
71+
72+
## Swansea City promoted to the Third Division
73+
74+
* [video](https://iiif.gdmrdigital.com/nlw/2025/training/aohaa00000137.mp4)
75+
* [Clip Link](https://clip.library.wales/detail/318297?published=published_public&terms=swansea&sorting=DESC&results=12&viewmode=grid)
76+
* **Duration:** 255.32
77+
* **Width:** 1920
78+
* **Height:** 1080

nlw-workshop/av-intro.md

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
# Introduction to AV
2+
3+
## Canvas deep dive
4+
5+
The canvas is a core feature of IIIF. For images the canvas is usually equivalent to a page in a book. For AV material the distinction can be more complicated. It is sometimes thought of as a empty powerpoint slide where images or audio are `painted` on to the slide at particular positions.
6+
7+
In the image below you can see the canvas has a height and a width. The example image is `painted` on to the full canvas so that the canvas width and height match the image width and height. This is the most common use case for IIIF images.
8+
9+
![Diagram showing painting of an image on to a canvas.](day-three/BL-Audio/imgs/IIIF_AV_EuropeanWorkingGroup1.png)
10+
11+
In the following example you can see two images are painted onto one canvas. One image is the background manuscript and the second image is the illustration. The background manuscript image is `painted` on to the canvas and matches the canvas height and width. The Illustration is `painted` on to a particular region of the canvas so that it appear in the correct place.
12+
13+
![Alt text](day-three/BL-Audio/imgs/IIIF_AV_EuropeanWorkingGroup2.png)
14+
15+
The support for AV in IIIF entailed the addition of duration to the canvas. Now a canvas can have a height, width and duration. Different dimensions are needed for different content types i.e:
16+
17+
* Images required width and height
18+
* Audio only files require duration
19+
* Video files required width, height and duration
20+
21+
![Alt text](day-three/BL-Audio/imgs/IIIF_AV_EuropeanWorkingGroup3.png)
22+
23+
With the canvas example below we have an canvas duration of 10 seconds. We can now `paint` an image on to the canvas and set it for a duration of 10 seconds so it will show for the full duration of the canvas.
24+
25+
![Alt text](day-three/BL-Audio/imgs/IIIF_AV_EuropeanWorkingGroup4.png)
26+
27+
We can also `paint` a video on to the canvas and in the example below it is painted on a particular region of the canvas and set to play starting at second 4 and finishing at second 7.
28+
29+
![Alt text](day-three/BL-Audio/imgs/IIIF_AV_EuropeanWorkingGroup5.png)
30+
31+
You can keep on adding images, videos and text to create a complicated canvas. The examples above where developed during the discussions on adding AV and a prototype presentation of this canvas can be seen at the following URL:
32+
33+
https://tomcrane.github.io/fire/
34+
35+
The method for `painting` an image, audio or video resource on to a IIIF canvas is done through an annotation. If we look at the following example where we can assume the body of the annotation is an audio recording. We can see the `target` points to the canvas ID and adds `#t=00.00,182.88` to the end of the canvas id. This means the body (audio resource) is painted on to the canvas from the start (second 00.00) to the end (second 182.88). In this case the `target` points to the full duration of the canvas so the addition of the `#t=00.00,182.88` isn't necessary as if the target points to the canvas id then it is assumed to cover the full duration of the canvas.
36+
37+
```
38+
{
39+
"id": "https://api-beta.bl.uk/metadata/iiif/ark:/81055/vdc_100140656320.0x000004/anno1/1",
40+
"type": "Annotation",
41+
"motivation": "painting",
42+
"target": "https://api-beta.bl.uk/metadata/iiif/ark:/81055/vdc_100140656320.0x000004#t=00.00,182.88",
43+
"body": [ ... ]
44+
}
45+
```
46+
47+
Note if the audio resource in the body is longer than the time specified in the canvas it should be played faster and if the audio resource is shorter than the target region then it should be played slower to fit the desired duration.
48+
49+
## Working example
50+
51+
Using one of the example NLW video files I created a manifest using the Digirati Manifest editor and then added a few fields that weren't supported by the editor. You can see the manifest below:
52+
53+
[Example AV Manifest](av-manifest.json)
54+
55+
Important features:
56+
* Bilingual metadata
57+
* Navdate: `"navDate": "1982-11-21T00:00:00Z",`
58+
* requiredStatement and rights
59+
* homepage pointing to Clip website
60+
* provider linking to NLW
61+
* VTT files
62+
63+
To view this in a number of viewers you can click on the following links:
64+
65+
* [Universal Viewer](https://uv-v4.netlify.app/#?c=&m=&s=&cv=&manifest=https://training.iiif.io/nlw-workshop/av-manifest.json)
66+
* [Mirador](https://projectmirador.org/embed/?iiif-content=https://training.iiif.io/nlw-workshop/av-manifest.json)
67+
* [Clover](https://samvera-labs.github.io/clover-iiif/docs/viewer/demo?iiif-content=https://training.iiif.io/nlw-workshop/av-manifest.json)
68+
* [Ramp](https://ramp.avalonmediasystem.org/?iiif-content=https://training.iiif.io/nlw-workshop/av-manifest.json)
69+
* [Avery](https://iiif.aviaryplatform.com/player?manifest=https://training.iiif.io/nlw-workshop/av-manifest.json)
70+
* [Theseus](https://theseusviewer.org/?iiif-content=https://training.iiif.io/nlw-workshop/av-manifest.json)

0 commit comments

Comments
 (0)