デジタル源氏物語の機能紹介動画に、日本語・英語の二言語字幕を付与し、IIIF v3マニフェストとして公開するプロジェクトを作成しました。

対象動画
以下の3本の機能紹介動画に字幕を付与しています。
| 動画 | 時間 | 内容 |
|---|---|---|
| 画像とテキストを一緒にみる | 2:42 | TEI & IIIFを活用したParallel Text Viewerの使い方 |
| AI画像検索(改訂版) | 4:19 | くずし字OCRと類似度計算による写本画像の横断検索 |
| パタパタ顔比較 | 1:38 | vdiff.jsによる源氏百人一首の挿絵比較ツール |
多言語字幕
各動画に日本語・英語のWebVTT字幕ファイルを用意しています。字幕は1文単位で分割されており、読みやすさを重視しています。
VTTファイルはそのままYouTubeの字幕としてもアップロードできます。
IIIF v3マニフェスト
各動画にIIIF Presentation API 3.0準拠のマニフェストファイルを作成しています。動画はpaintingのAnnotation、字幕はsupplementingのAnnotationとして記述しています。
{
"annotations": [{
"type": "AnnotationPage",
"items": [
{
"type": "Annotation",
"motivation": "supplementing",
"label": { "ja": ["日本語"] },
"body": {
"id": "https://example.com/ja.vtt",
"type": "Text",
"format": "text/vtt",
"language": "ja"
}
},
{
"type": "Annotation",
"motivation": "supplementing",
"label": { "en": ["English"] },
"body": {
"id": "https://example.com/en.vtt",
"type": "Text",
"format": "text/vtt",
"language": "en"
}
}
]
}]
}
複数のIIIF対応ビューアで表示可能
IIIF v3マニフェストを採用しているため、以下のIIIF対応ビューアで直接表示できます。
| ビューア | 動画再生 | 字幕表示 | 言語切替 | 備考 |
|---|---|---|---|---|
| Player(本プロジェクト) | ○ | ○ | ○ | Web Speech APIによる読み上げ機能付き |
| RAMP | ○ | ○ | ○ | AV資料に最も強い |
| Theseus | ○ | ○ | ○ | IIIF対応の汎用ビューア |
| Clover | ○ | ○ | △ | Samvera/Northwestern開発 |
| Universal Viewer | ○ | △ | - | v4でAV対応改善 |
各ビューアへのリンクは、デモページの各動画カードに用意されています。
RAMPビューアでの表示例

独自プレーヤーの機能

本プロジェクトのPlayerは、IIIF v3マニフェストを読み込んで動画と字幕を再生する独自のHTMLプレーヤーです。
- マニフェスト読み込み: URLパラメータ
?manifest=path/to/manifest.jsonで指定 - 日英字幕切替: ボタンまたはキーボード
Lで切り替え - 音声読み上げ: Web Speech API(無料・ブラウザ内蔵)による自動読み上げ
- 字幕一覧パネル: 現在の字幕をハイライト&自動スクロール
- クリックジャンプ: 字幕一覧をクリックしてその時間にジャンプ
- 再生速度: 0.5x〜2xの速度調整
- キーボード操作: Space(再生/停止)、←→(3秒スキップ)、T(読み上げ)、L(言語切替)
字幕の生成方法
字幕はClaude Codeを使って以下の手順で生成しました。詳細な手順は別記事をご覧ください。
- シーンチェンジ検出: ffmpegで動画の画面切り替えタイミングを自動検出
- フレーム抽出: シーンチェンジポイントのフレームを画像として抽出
- 画像読み取り: Claude Codeのマルチモーダル機能で各フレームの内容を読み取り
- VTT作成: タイムスタンプに合わせた1文単位のVTTファイルを日英で作成
YouTubeへの字幕アップロード
各動画のVTTファイルは、YouTubeの字幕としてそのままアップロードできます。
- YouTube Studio → 動画を選択 → 字幕
- 「字幕を追加」→「ファイルをアップロード」→「字幕あり」を選択
ja.vttをアップロード → 言語を「日本語」に設定- 同様に
en.vttを「英語」でアップロード