📚

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

2023/09/20に公開

概要

以下を参考に、Cantaloupeが返却するinfo.jsonに値を追加してみました。

https://cantaloupe-project.github.io/manual/5.0/endpoints.html

方法

上記のページを参考に、extra_iiif3_information_response_keysを以下のように修正してみました。

/home/ubuntu/cantaloupe-5.0.5/delegates.rb
def extra_iiif3_information_response_keys(options = {})
    {
      'rights' => 'http://example.org/license.html',
      'service' => [
        {
          '@id': 'https://example.org/auth/login',
          '@type': 'AuthCookieService1',
          'profile': 'http://iiif.io/api/auth/1/login',
          'label': 'Log In'
        }
      ],
      'exif' => context.dig('metadata', 'exif'),
      'iptc' => context.dig('metadata', 'iptc'),
      'xmp'  => context.dig('metadata', 'xmp_string')
    }
  end

結果、以下のようなinfo.jsonを取得できました。

{
"@context": "http://iiif.io/api/image/3/context.json",
"id": "https://cantaloupe.aws.ldas.jp/iiif/3/converted.tif",
...
"rights": "http://example.org/license.html",
"service": [
  {
    "@id": "https://example.org/auth/login",
    "@type": "AuthCookieService1",
    "profile": "http://iiif.io/api/auth/1/login",
    "label": "Log In"
  }
],
"exif": {
  "tagSet": "Baseline TIFF",
  "fields": {
    "ImageWidth": 13300,
    "ImageLength": 10400,
    "BitsPerSample": 8,
    "Compression": 7,
    "PhotometricInterpretation": 6,
    ...

ライセンス表示やIIIF Auth APIとの組み合わせに使用できるものかと思われます。

IIIF Auth APIについては、以下の記事も参考にしてください。

https://zenn.dev/nakamura196/articles/2d016ed06d56b0

まとめ

CantaloupeのマニュアルのEndpointsの一部を試してみました。

他の方の参考になりましたら幸いです。

Discussion