😸

IIIF Content State APIを試す

2023/09/21に公開

概要

IIIF Content State APIを試す機会がありましたので、その備忘録です。

https://iiif.io/api/content-state/1.0/

IIIF Content State APIはカレントアウェアネス-Rで以下のように説明されています。

“IIIF Content State API”は、回転角度やページ画像上の表示箇所等、オブジェクトの表示を詳細に指定したリンクを生成できると述べられています。

https://current.ndl.go.jp/car/45832

試す

「秀英体・活版印刷デジタルライブラリー」がIIIF Content State APIを提供してくださっています。

https://archives.ichigaya-letterpress.jp/library/

以下に記載があります。

https://archives.ichigaya-letterpress.jp/library/help

以下、利用例について説明します。

アイテムの詳細画面

例えば、以下のページにアクセスします。

https://archives.ichigaya-letterpress.jp/library/items/084cef1f7ddc

そして、IIIF Curation Viewerへのリンクをクリックします。

矩形の選択

IIIF Curation Viewerを使って、矩形を選択します。

IIIF Curation Viewerの使い方については、以下を参考にしてください。

http://ch-suzuki.com/icpt/index.html

少し手順を省きますが、以下の情報を取得できます。

https://archives.ichigaya-letterpress.jp/api/presentation/2/084cef1f7ddc/canvas/2#xywh=2148,813,312,304

上記は以下の形式になっています。

<資料のキャンバスURI>#xywh=<画像のX座標>,<画像のY座標>,<画像の幅>,<画像の高さ>

base64エンコード

例えば、以下のサイトにアクセスします。

https://www.base64encode.org/

そして、先に取得した情報と当該アイテムのマニフェストURIを使って、以下のJSONをエンコードします。

{
    "id": "https://archives.ichigaya-letterpress.jp/api/presentation/2/084cef1f7ddc/canvas/2#xywh=2148,813,312,304",
    "type": "Canvas",
    "partOf": [{
        "id": "https://archives.ichigaya-letterpress.jp/api/presentation/2/084cef1f7ddc/manifest.json",
        "type": "Manifest"
    }]
}

結果、以下の文字列が得られます。

ewogICAgImlkIjogImh0dHBzOi8vYXJjaGl2ZXMuaWNoaWdheWEtbGV0dGVycHJlc3MuanAvYXBpL3ByZXNlbnRhdGlvbi8yLzA4NGNlZjFmN2RkYy9jYW52YXMvMiN4eXdoPTIxNDgsODEzLDMxMiwzMDQiLAogICAgInR5cGUiOiAiQ2FudmFzIiwKICAgICJwYXJ0T2YiOiBbewogICAgICAgICJpZCI6ICJodHRwczovL2FyY2hpdmVzLmljaGlnYXlhLWxldHRlcnByZXNzLmpwL2FwaS9wcmVzZW50YXRpb24vMi8wODRjZWYxZjdkZGMvbWFuaWZlc3QuanNvbiIsCiAgICAgICAgInR5cGUiOiAiTWFuaWZlc3QiCiAgICB9XQp9

エンドポイントURLにアクセス

上記の文字列を使って、以下のURLにアクセスしてみます。

https://archives.ichigaya-letterpress.jp/library/items/084cef1f7ddc?target=ewogICAgImlkIjogImh0dHBzOi8vYXJjaGl2ZXMuaWNoaWdheWEtbGV0dGVycHJlc3MuanAvYXBpL3ByZXNlbnRhdGlvbi8yLzA4NGNlZjFmN2RkYy9jYW52YXMvMiN4eXdoPTIxNDgsODEzLDMxMiwzMDQiLAogICAgInR5cGUiOiAiQ2FudmFzIiwKICAgICJwYXJ0T2YiOiBbewogICAgICAgICJpZCI6ICJodHRwczovL2FyY2hpdmVzLmljaGlnYXlhLWxldHRlcnByZXNzLmpwL2FwaS9wcmVzZW50YXRpb24vMi8wODRjZWYxZjdkZGMvbWFuaWZlc3QuanNvbiIsCiAgICAgICAgInR5cGUiOiAiTWFuaWZlc3QiCiAgICB9XQp9

結果、以下のページにアクセスできます。

まとめ

IIIF Content State APIの目的の通り、オブジェクトの表示を詳細に指定したリンクを作成することができました。

リンクの作成については、より効率的な方法があるかと思いますが、参考になりましたら幸いです。

Discussion