📚DH週間トピックス — 2026年5月24日週
DH週間トピックス — 2026年5月24日週
DH週間トピックス — 2026年5月24日週

IIIF Presentation API 3.0 マニフェストの検証を、公式 presentation-validator と Python ライブラリ iiif-prezi3 の 2 つで実施し、両者の出力の違いと使い分けをまとめました。

Mirador 3向けに公開していたレイヤースライドショープラグインを、Mirador 4 に対応させました。nwb から Vite へのビルド移行や Material-UI v4 から MUI v7 への置き換えなどを行いました。

IIIFの動画に空間・時間の両方の注釈をつけられる Mirador 4 プラグイン Mirador Annotation Editor Video を、デモ環境を題材に、時間ターゲットの指定までハンズオンで解説します。

IIIF画像ビューア Mirador 4 に注釈の作成・編集機能を追加するプラグイン Mirador Annotation Editor を、デモ環境を題材に、注釈作成から書き出しまでハンズオンで解説します。

IIIF画像にW3C Web Annotation形式で意味的注釈をつけるオープンソースツールIMMARKUSを、東京大学デジタルアーカイブの百鬼夜行図を題材に、初回操作から標準形式での書き出しまでハンズオンで解説します。
DH週間トピックス — 2026年5月17日週
1Gピクセル級の高精細画像(PTIF 約450MB)を AWS Lambda 上の Serverless IIIF で配信するにあたり、エンコード、Lambda、CloudFront、S3 メタデータの観点で行った調整の記録です。
暫定ミラー codh-mirror について、前回記事では『認証・保存バックエンドは結局動かない』としていたところを、後から方針転換して Firebase 認証と JSONkeeper 互換 API (Cloudflare Workers + D1 / PythonAnywhere の二系統) を実際に動かすまでの記録です。Authorized domains 設定、FirebaseUI 3.x の signInFlow リダイレクト落とし穴、authFirebase.js の差し替え、Curation Manager の外部リンク相対化、5 箇所の curationJsonExportUrl 書き換えなど、codh-mirror リポジトリ側で行った変更を 1 本にまとめます。
IIIF Curation Viewer のキュレーション保存先である JSONkeeper を、もとの Flask 実装ではなく Cloudflare Workers + D1 で書き直した記録です。Hono + jose による Firebase ID トークンの検証 (Admin SDK 不要・サービスアカウント鍵不要)、D1 SQLite スキーマ設計、JSON-LD @id 書き換えのトップレベル+ネストノード対応、Activity Stream の最小実装、CORS と Viewer 互換ヘッダ、wrangler によるデプロイ runbook、そしてアップストリーム JSONkeeper との差分一覧までを 1 本にまとめています。
IIIF Curation Viewer の保存先 (JSONkeeper, Flask) を PythonAnywhere 無料プラン (Beginner) に自前で立てる手順記録です。ブラウザ操作はトークン発行とコンソールアタッチの 2 回だけに抑え、残りすべてを HTTP API + curl で完結させます。Flask 1.0 / apscheduler 3.5 の現代 Python 非互換、Firebase Admin SDK のサービスアカウント鍵運用、CPU 100 秒/日制約、CORS、Viewer 側 (codh-mirror) の差し替えまで一通り。
ROIS-DS 人文学オープンデータ共同利用センター (CODH) のホームページが長期メンテナンス中(2026年2月16日夕方よりサービス停止、再開時期未定)の間、各種ツール (vdiff.js / IIIF Curation Viewer / そあん / 等) を Wayback Machine 等から復元し、独立した GitHub Pages リポジトリ (codh-mirror) として公開する手順と、その過程で踏んだいくつかの落とし穴 (とくに『そあん』の kuromoji 辞書欠落) をまとめます。あくまで CODH のサービス再開までの暫定対応です。
DH週間トピックス — 2026年5月10日週

IIIFの古地図をWMTSで配信する(Allmapsを土台に、Next.jsポートフォリオに統合)
IIIF 3D Viewer を IIIF 3D Technical Specification Group が公開している Presentation API 4 のドラフト形式 (Scene / PointSelector / WKTSelector / PerspectiveCamera) に揃えました。Presentation 3 + 独自 3DSelector / camPos 拡張で運用してきた既存マニフェストは、ランタイムで v4 に変換する converter を通すことで処理系全体を v4 のみに統一しています。差分の整理、変換ルール、実装の要点をまとめます。
東北大学デジタルアーカイブ(touda.tohoku.ac.jp/collection)で利用できる公開 API を調査し、OAI-PMH を使って setSpec 単位でメタデータを取得し Excel に出力する手順を整理しました。
IIIF Presentation 3 で OCR テキストを `motivation: "supplementing"` のアノテーションとして配信したら、Annona など他の viewer では出るのに Mirador 4.0.0 (projectmirador.org/embed) の Annotations タブだけ空、という現象に遭遇しました。実際に配信されている Mirador bundle を読み解いた結果、`config.annotations.filteredMotivations` のリリース版デフォルトが `['oa:commenting', 'oa:tagging', 'sc:painting', 'commenting', 'tagging']` で `supplementing` を許可していないことが判明しました。`['commenting', 'supplementing']` の配列で両対応する方法と、関連する仕様・Cookbook recipe の正しい参照を整理します。
未公開 / 限定公開の歴史写真を、IIIF 規格に準拠した形でアクセス制御付きで配信するアーカイブシステムの構築記録。Cantaloupe(IIIF サーバ)+ S3 互換ストレージ + Elasticsearch(検索)+ Next.js(UI)+ Cloudflare Tunnel + Access という構成で、一般公開できない画像であっても IIIF の利点(規格準拠の高解像度ビューア / manifest 配信)を許可されたメンバー範囲内で享受できる仕組みを設計しました。外部システムからの相互運用には IIIF Auth API 2.0 への拡張が必要となる点も整理しています。

酉蓮社(旧増上寺報恩蔵)所蔵の嘉興版大蔵経のうち『大般若波羅蜜多經』巻571〜575(IIIF経由で取得した105画像)に対して、国立国会図書館のNDL古典籍OCR-Liteと Cloud Vision API DOCUMENT_TEXT_DETECTION を並べて適用し、それぞれの出力に現れた誤りの傾向を観測した記録です。NDLは仮名混入の誤検出が12頁、VisionはカラースケールやIIIF添付要素(蔵書ラベル等)の混入が105頁全てで発生しました。

EC2上でDocker稼働させていたCantaloupeを、AWS Lambda + CloudFrontベースの serverless-iiif(Samvera)に移行した際の調査と作業の記録です。
DH週間トピックス — 2026年4月19日週
DH週間トピックス — 2026年4月12日週
Cloudflare Tunnelを使って、インバウンドポートを一切開けずにElasticsearchやCantaloupe(IIIF)を安全に公開する方法
DH週間トピックス — 2026年4月5日週
AWS EC2上のCantaloupe IIIF画像サーバーで初回タイル取得に8秒かかっていた問題を、ピラミッドタイルTIFF変換・JVMヒープ増加・CloudFront導入によって0.84秒に改善した記録。
IIIF 対応画像を江戸町家の VR 空間に原寸大で配置し、ブラウザや VR ヘッドセットで閲覧できる WebXR ビューアの開発記録。A-Frame + THREE.js による三人称カメラ、VRM アバター、タイル LOD など、WebXR 開発で遭遇した問題と解決策をまとめました。
DH週間トピックス — 2026年3月28日週

IIIF Physical Dimensions serviceを利用して、Mirador 4のビューア上に実寸スケールのルーラーを表示するプラグインを開発・公開しました。
IIIF Image APIに対応した高解像度画像をARKitで床面に実寸配置し、カメラ距離に応じてタイルを動的に読み込むiOSアプリ「IIIF AR」の開発についての記録です。

Universal Viewer 4.xで発生する「Unknown content type」エラーの原因と、ローカルホスティングで解決した記録。

Claude Codeのマルチモーダル機能とffmpegのシーンチェンジ検出を組み合わせて、動画に多言語字幕を効率的に生成し、IIIF v3マニフェストで公開する方法

デジタル源氏物語の機能紹介動画に日英の二言語字幕を付与し、IIIF v3マニフェストとして公開するプロジェクトの紹介
DH週間トピックス — 2026年3月21日週

Cantaloupe IIIFサーバーのキャッシュ設定とパラメータチューニングにより、タイル配信速度を最大7.6倍高速化した手法と効果を共有します。

歴史的文書のクラウドソーシング翻刻プラットフォームFromThePageの概要と、DHにおける活用方法を紹介します。

Stanford大学・Harvard大学が開発するIIIF画像ビューア Mirador の概要と、デジタルアーカイブにおける比較研究への活用方法を紹介します。

IIIF 準拠のマルチメディアビューア Universal Viewer の概要と、デジタルアーカイブにおける活用方法を紹介します。

TETRAS-IIIFプロジェクトが開発するMirador 4向けエコシステム。アノテーション編集、動画対応、マルチユーザー協調を実現するプラグイン群を紹介。

IIIFの地理参照拡張に対応したビューアの紹介。歴史地図や画像を地図上にオーバーレイ表示。

IIIFビューアMiradorの紹介。マルチウィンドウでの画像比較、アノテーション、プラグイン拡張など。

軽量で高速なIIIFビューアTifyの紹介。モバイル対応、全文検索、目次表示など。

IIIFビューアUniversal Viewerの紹介。画像だけでなく音声・動画・3D・PDFにも対応した汎用ビューア。

IIIF画像の一部領域にAI生成動画を重ねて表示する「IIIF Animated Viewer」の開発過程を紹介します。

Annotoriousの描画モードがproduction buildでだけ壊れる
DH週間トピックス — 2026年2月22日週

IIIFマニフェストを用いたテキスト比較ツールの開発

Mirador 4 で外部マニフェストのウィンドウタイトルだけを差し替える

Mirador ビューア埋め込み設定

IIIF Georeference ViewerへのLinked Places Format対応

Mirador 4用回転プラグインの開発とnpm公開

静的サイトでIIIF Content Search APIを実現する - Service Workerによるクライアントサイド検索

IIIF画像をWeb Tile Map Serviceで配信する

IIIF Georeference to XYZ Tiles

GLBファイルのDraco圧縮 - 87%のサイズ削減と精度への影響

300万点超の点群データをブラウザで快適に表示する - Potree LODビューアの構築

mirador-annotations を Mirador 4.x へ移行した記録

mirador-rotation-plugin 機能拡張

IIIF Manifestから各巻の冒頭ページを抽出するツールを作成しました

TEI ODDによるIIIF対応ファクシミリ記述の制約設計

Mirador 4で任意の領域をハイライト表示する方法

Mirador 4でキャンバス指定と検索語ハイライトを同時に実現する方法

vipsによるピラミダルタイルTIFF作成と圧縮方式の比較

アノテーション表示のパフォーマンス改善

傾いた文字のアノテーションとIIIF画像切り出し

自動遷移機能を持つIIIF画像座標エディタの開発

Leaflet-IIIFでのアノテーション座標変換の完全ガイド

Miradorの表示方向を外部から制御する方法

画像コレクション管理ツール 技術アーキテクチャ解説

「画像コレクション管理」ツールの使い方ガイド

IIIF Georeference ViewerのMapLibre GL移行と機能改善

Cantaloupeでdelegate scriptを使ってAzure Storage上のファイルパスを動的に変換する方法

Omeka S Docker の紹介:デジタルコレクションのための最新かつセキュアなソリューション

IIIF 3D Viewerを試作しました。

IIIF認証API 2.0の動作確認

Recogitoを用いたテキストアノテーションを試す

Transkuribusを試す

NDL古典籍OCR-Liteを用いて、IIIFマニフェストファイルからTEI/XMLファイルを作成する

その2:NDL古典籍OCR-Liteを用いたアノテーション付きIIIFマニフェストファイルとTEI/XMLファイルの作成

Omeka SのIIIF Serverモジュールを使用した階層構造を持つ目次の記述

IIIF Presentation API v2のIIIFコレクションで、ページネーションを使う

NDL古典籍OCR-Liteを用いたアノテーション付きIIIFマニフェストファイルとTEI/XMLファイルの作成

IIIFマニフェストファイルから画像URLの一覧を含むCSVファイルを作成する

IIIF画像に対する多角形アノテーション支援ツールの改修

IIIFの多角形アノテーションをTEI/XMLで表現する一例

IIIF画像に対して、多角形のアノテーションを付与するツールを作成しました。

Omeka Sのモジュールアップデート情報(2025-03-27)

Mirador 4プラグイン開発:任意の角度で画像を回転するプラグインで、角度の初期値を設定できるようにしました。

Mirador 4で、初期読み込み時に、画像の回転や範囲指定を行う

Next.jsでUniversal Viewerのnpmパッケージを使用する

IIIF georeference extensionの可視化ツールの改修

Miradorで画像を表示し、CETEIceanでテキストを表示するサンプルアプリ

ピラミッドTIFFの作成において、ImageMagickがうまく動作しないケースがある?

mdx.jpのオブジェクトストレージとIIP Image(IIIF Image Server)を使ってIIIF画像を配信する

s3fs を使用してmdx.jpのオブジェクトストレージをファイルシステムのようにマウントする方法

Mirador3のFirebase連携annotationsプラグインにおいて、メールアドレスによる登録を可能にしました。

vttファイルからTEI/XMLを作成する

clover-iiifをNext.jsで使用する

Mirador 3の mirador-annotations プラグインで、付与したアノテーションをダウンロードする

Mirador 3の mirador-annotations プラグイン向けに、Firestore用のアダプタを開発しました。

IIIFマニフェストファイルからOCR結果を含むTEI_XMLファイルを作成するプログラム

Omeka SのImage ServerでのCORS対応

AppSheetを使ってデジタルコレクションを構築する

Pythonを使ってOmeka Sにメディアをアップロードする方法

aleph-r3fを試す

Aleph 3D viewerを試す

Cantaloupe: Microsoft Azure Blob Storageに格納した画像を配信する

Omeka SのIIIF Serverモジュールで、表示方向を指定する

mdx.jpのオブジェクトストレージに保存したIIIFマニフェストファイルをNestJSから利用する

OldMaps Onlineを使ってみる

XSLTを使ってIIIFとTEIの対照表示を実現する

@samvera/rampビューアのFiles/Markersタブの使用方法

iiif-prezi3を使って、動画に目次を付与する

iiif-prezi3を使って、動画に字幕を設定する

iiif-prezi3を使って、動画にアノテーションを付与する

iiif-prezi3を使って、動画に関するIIIF v3マニフェストを作成する

Omeka Sで3Dモデルを公開する

[2024年版] AWSサーバーレスアプリケーションによるIIIF Image Serverの構築

IIIF Presentation API v3でsvgを使ったアノテーション記述

縦書きに対応したText Overlay pluginを導入済みのMiradorのリポジトリ

Annotorious OpenSeadragon Pluginを使ったサンプルプログラム

画像ファイルに対してGoogle Cloud Visionを適用して、IIIFマニフェストおよびTEI/XMLファイルを作成する

Omeka S IIIF Serverモジュール[3.6.19, 3.6.20]の不具合

音声資料に関するIIIFマニフェストファイルに画像を追加する

IIIF Audio/Visual: 複数のvttファイルを記述する

字幕付きの音声ファイルをIIIFビューアで表示する

Rampをカスタマイズする

Rampをローカルで起動する

URLの引数で指定したIIIFマニフェストに対して、Mirador 3のannotationsプラグインを試す

mdx.jpのオブジェクトストレージとCantaloupe Image Serverを使ってIIIF画像を配信する

Mirador 3でScroll Viewを使う

IIIF対応ビューアの一覧の調査例

Chromeでサイズが大きい動画が再生できない

IIIFのCanvas URIなどを一括置換する際のコマンド

Omeka SのBulkImportを使用する際の設定例

Omeka SのIIIF ServerモジュールでのCORSエラー

LEAF Writer: Image Viewerの使い方

RDF、TurtleやJSON-LD、およびIIIFマニフェストファイルなどの関係を理解する

mirador-sync-windowsのMirador 4版のリポジトリを公開しました。

Mirador 4プラグイン開発:任意の角度で画像を回転する

カスタマイズしたMirador 4をnpmパッケージとして公開する

Mirador 4の拡大・縮小・回転の挙動を確認する

zenodoで資料を公開する

Mirador 2のプラグインの挙動を確認する

ズーム操作を無効化するMirador 3(4)向けプラグインの開発

iiif-prezi3を試す

mirador-sync-windowsを試す

東寺百合文書WEBのデータをIIIFに変換する

tropy-plugin-iiifを試す

@iiif/parserを試す

Omeka Sで動画を公開する

IIIF Curation ListをTEIのfacsimile要素に変換する

CMYKカラーの画像から色を反転させないconvertの方法

デジタルアーカイブ関連ツールの試作: 主にIIIFの利用支援

Mirador 3でPresentation API v2のマニフェストが表示できない時の対処例

Omeka SのモジュールIIIF Viewersの更新

Next.jsを用いたTEI/XMLファイルの簡易ビューアを作成しました

Universal Viewerにおける画像のコマ指定方法の一例

Docker版Cantaloupeを使用して、S3バケットにアクセスしSSL通信を行う方法

Docker版のCantaloupeを試す

Allmapsを使ってジオリファレンスを行う

Universal Viewer v4を使ったページの作成例

Cantaloupe: サービスとして実行する

Cantaloupe: Amazon S3に格納した画像を配信する

フリーハンドのアノテーションを矩形に変換するPythonライブラリを作成しました。

IIIF Content State APIを試す

CantaloupeのAccess Controlを試す

Cantaloupeでinfo.jsonに値を追加する

Cantaloupeのoverlayを試す

Cantaloupeの管理画面を有効化する

EC2に立てたCantaloupeをHTTPS対応する

NDLOCRおよびNDL古典籍OCRのver.2を用いたノートブックを作成しました。

IIIFイメージサーバの一つであるCantaloupeをEC2で起動する

Mirador2のPhysical Document Rulerを試す

Mirador3プラグイン開発: Text Overlay pluginで縦書き対応を行う

Mirador 3のmirador-annotationsプラグインとSimpleAnnotationServerを試す

【Omeka S モジュール紹介】IiifPresentation:IIIF Presentation APIの追加

Omeka Classic IIIF Toolkitで使用されているMiradorを2.7にアップデートしました。

Omeka Classic IIIF Toolkitにデータを一括登録する

Mirador3プラグイン開発: ウインドウをコピーする

IIIF Mirador2のアノテーション画面の説明

IIIFマニフェストファイルからPDFファイルを作成する

Omeka SのImage Serverの設定について

Drupal: 異なるコンテンツタイプのコンテンツを相互にリンクさせる

Drupal: カスタムRESTリソースを作成する

Google Colabを用いたNDL古典籍OCRチュートリアルの不具合の修正および機能追加を行いました。

Omeka Sを用いて、IIIF Presentation API v3のマニフェストファイルを作成する

IIIFを中心としたデジタルアーカイブ関連ツールを作成しました。

IIIF Curation Viewerのアノテーションの色を変更する

Headless CMSを使ってIIIFマニフェストファイルを作成する

IIIF Image API level 0による画像公開方法

IIIF Presentation Validatorのローカル環境で利用方法

画像とIIIFマニフェストをipfsに追加してみる

TEIビューアでの利用を想定したCustom OpenSegDragon Viewerを作成しました。

Nuxt3のssrでIIIF viewerを導入する

【Omeka S モジュール紹介】IIIF Searchモジュール

iiif auth apiを試す

TEIテキストの作成支援ツール「FairCopy」の紹介

IIIFアイコンのドラッグ&ドロップ対応について

Cultural Japanにおいて指定したIIIFマニフェストを含むアイテムの一覧を返却するAPIを作成しました。

Omeka S IIIF ServerのIIIFマニフェスト(version 2)の出力内容

Mirador 3 による画像比較ツールを作成しました。

Omeka ClassicのIIIF Toolkitを用いたアノテーションの一括登録方法

Mirador 3にmirador-image-toolsプラグインを追加して、1つのjsファイルにまとめて配布する方法

Nuxt 3とVuetify 3を用いたIIIF Image API関連ツールを作成しました。

【Omeka S モジュール】IIIF ServerモジュールでImage APIを使用しない方法

【Omeka S】IIIF対応の複数ビューアを設置する「IIIF Viewers」モジュールの使い方

Nuxt 2を用いたMirador 3の使用例を紹介するGitHubリポジトリの修正

「NDL OCR x IIIF」アプリにTEI/XML形式でダウンロードする機能を追加しました。

serverless-iiifで対応可能な画像サイズに関する実験

Vue3でOpenSeadragonを使用するサンプルリポジトリを作成しました。

【Omeka S】IIIF Serverモジュールにおける独自識別子の設定方法

【Omeka S】IIIF Serverモジュールにおけるattributionの設定方法

IIIF Presentation APIのバリデーション方法とその実例の紹介ほか

Omeka S Image Serverモジュールの動的タイル画像生成における画像サイズの上限設定について

【開発編】国立国会図書館「次世代デジタルライブラリー」で公開されているOCR結果をIIIFビューアで閲覧するアプリを作成しました。

国立国会図書館「次世代デジタルライブラリー」で公開されているOCR結果をIIIFビューアで閲覧するアプリを作成しました。

AWS Lambda + Docker + pyvipsを用いたPyramid Tiled Tiffファイルの作成

pyvipsの使い方とPyramid Tiled Tiffファイルの作り方

Omeka Classic + IIIF Toolkitを用いたアノテーション付与環境の構築

Omeka S IIIF Serverモジュールを用いたIIIFコレクションの生成

AWSサーバーレスアプリケーションによるIIIF Image Serverの構築

IIIFマニフェストファイルからの画像一括ダウンロードプログラムを作成しました。

Omeka S Mirador モジュールの使い方

IIIFマニフェストファイルからTEIのfacsimile要素を作成するプログラムを作成しました。
【Omeka S モジュール開発】IIIFマニフェストにIIIF Content Search APIのURIを追加するモジュールを開発しました。

Mirador 3のimage tools(画像の回転など)を初期表示で有効にする方法

【Omeka S モジュール紹介】Omeka Sで利用可能なIIIF対応ビューア

【機能開発】Omeka SのIIIFモジュールで、目次を加える機能を追加しました。(その2:階層構造を持つ目次の登録)

【機能開発】Omeka SのIIIFモジュールで、目次を加える機能を追加しました。(その1:フラットな目次の登録)

【機能開発】Omeka SのIIIF Serverモジュールにおけるライセンスプロパティの不具合修正

【和訳】Omeka S IIIF Serverモジュールの目次情報の追加方法

Mirador 3をページ内の特定の領域に埋め込む方法

Mirador 3をNuxt.jsで使用する方法を紹介するリポジトリを作成しました。

【アプリ紹介】IIIF pocketのご紹介

【Omeka Sモジュール紹介】IIIF Server / Image Server / Universal Viewer

Cultural Japanで集約したIIIFマニフェストをまとめたIIIFコレクションのご紹介

Mirador 3をVueで使用する方法を紹介するリポジトリを作成しました。

【機能開発】Omeka SのIIIF ServerモジュールにおけるImage APIを使用しない設定の追加

「起絵図」のIIIF実装

透過光画像を使ったIIIFアプリケーション