From f53796bef792bac6c51abb96a8cae0fe71cd7d99 Mon Sep 17 00:00:00 2001 From: Josh Hadro Date: Tue, 15 Aug 2023 10:49:13 -0400 Subject: [PATCH 01/21] First pass at updating documentation --- iiify/templates/docs/introduction.html | 71 +++------ iiify/templates/docs/overview.html | 202 ++----------------------- iiify/templates/docs/resources.html | 41 ++--- 3 files changed, 46 insertions(+), 268 deletions(-) diff --git a/iiify/templates/docs/introduction.html b/iiify/templates/docs/introduction.html index 4890542..3c3f143 100644 --- a/iiify/templates/docs/introduction.html +++ b/iiify/templates/docs/introduction.html @@ -1,77 +1,58 @@

Introduction

- For those newly aquainted with the IIIF specification, this + For those newly aquainted with IIIF, this introduction describes the purpose and applications of IIIF and the Internet Archive's IIIF Service.

-
    -
  1. What is IIIF?
  2. -
  3. Importance
  4. -
  5. Deploying a IIIF Service
  6. -
-

What is IIIF?

IIIF (the "International Image - Interoperability Framework") is a collection of web standards for - manipulating and serving image resources (Image API), as well as - structuring collections of these images (Presentation API). + Interoperability Framework") is a set of open standards for delivering high-quality, attributed digital objects online at scale. It’s also an international community developing and implementing the IIIF APIs. IIIF is backed by a consortium of leading cultural institutions. For more details and examples, check out the IIIF website, or the full API specifications.

+

For a very high-level overview, see "How IIIF Works," published by the IIIF Consortium.

Image API

- The Image API is an + The Image API is an interface capable of producing and serving arbitrary tiles of - arbitrary regions of an image (like Google Maps). The properties + arbitrary regions of an image (just like the different scales of resolution in Google Maps). The properties of these image tiles are specified within a URL, allowing - permenant citation and retrieval at a later time - (see idempotence). + permenant citation and retrieval at a later time. The Image API supports and powers other computer applications - (like zoomable image - viewers - and book - readers). + (like deep-zoomable image + viewers, comparison viewers, and more .

Presentation API

- The Presentation + The Presentation API allows institutions to publish and consume metadata about collections and sequences of image resources, called Manifests. A Manifest may be composed of resources from any number of different institutions serving their images in IIIF format.

- -

- For more information, read about IIIF's - goals here. -

Importance

- At its essence, the goal of IIIF is interoperability: to make an - institution's image resources available and accessible to web + In essence, the goal of IIIF is interoperability: to make an + institution's image and audio/visual openly accessible resources available and easily reusable via web applications and clients running on other domains.

- The Internet Archive IIIF API - v1 - (alpha) - is + The Internet Archive IIIF API is a RESTful web - service which implements IIIF (Image API & Presentation - API) and provides a mechanism for accessing all of the Archive's - images and books in IIIF format. Every image item in the Archive - now has has a corresponding info.json and every book a + service which implements the IIIF API specifications + API and provides a mechanism for accessing nearly all of the Archive's + items IIIF format. Every image item in the Archive + now has has a corresponding info.json and nearly all image, text, audio and movie item has manifest.json. This means, you can seamlessly view any Archive.org - image or book in any interface compatible with IIIF (such as - OpenSeadragon, Mirador, and the Universal Viewer) and also enjoy + image or book in any compatible IIIF viewer and also enjoy the enhancements they provide (annotation, side-by-size viewing, and loading images from different institutions into the same space). @@ -84,24 +65,6 @@

Importance

-
-

Deploying a IIIF Service

-

- The Internet Archive IIIF API v1 (alpha) is built using - Python3.4 Flask - web application framework and - the iiif2 - library. The source code - for iiif.archive.org is publicly - available here, - as is the source of - the iiif2 image - processing - library here. For - questions on implementing a service, - contact support@archive.org. -

-

diff --git a/iiify/templates/docs/overview.html b/iiify/templates/docs/overview.html index 4af7308..7341b0e 100644 --- a/iiify/templates/docs/overview.html +++ b/iiify/templates/docs/overview.html @@ -7,31 +7,16 @@

Overview

This describes the resources that make up the Internet - Archive IIIF API v1 (alpha). If you have any problems or + Archive IIIF API. If you have any problems or requests, please contact support.

- -
    -
  1. Current Version
  2. -
  3. Conventions
  4. -
  5. Schema
  6. -
  7. Pagination
  8. -
  9. Client Errors
  10. -
  11. HTTP Redirects
  12. -
  13. Rate Limiting
  14. -
  15. Cross Origin Resource Sharing
  16. -

Current Version

- Caution. The Internet Archive IIIF - API is currently at version 1 (alpha). This means it is currently - under development as a prototype for community feedback and may be - either discontinued at any time, or deprecated in favor of an - official version 1 release. -

+ The Internet Archive IIIF API service that launched in 2015 was an alpha service that has now been officially adopted. + However, it is still under development and we welcome community feedback on desired features.

Conventions

IDs

@@ -54,15 +39,16 @@

Schema


-  $ curl -i {{ request.url_root }}  
+  $ curl -i {{ request.url_root }}/iiif
 
-  HTTP/1.1 200 OK
-  Server: nginx/1.4.6 (Ubuntu)
-  Date: Tue, 22 Sep 2015 08:07:27 GMT
-  Content-Type: application/json
-  Content-Length: 21307
-  Connection: keep-alive
-  Cache-Control: max-age=5
+  HTTP/2 200 
+  alt-svc: h3=":443"; ma=2592000
+  cache-control: max-age=900
+  content-type: application/json
+  date: Mon, 14 Aug 2023 20:53:06 GMT
+  server: Caddy
+  server: nginx/1.23.2
+  content-length: 122082
 
   {
     ...
@@ -75,169 +61,7 @@ 

Trailing Slashes

with trailing slashes.

-

Summary Representations

- -

- When you fetch a list of resources, the response includes a subset - of the attributes for that resource. This is the “summary” - representation of the resource. (Some attributes are - computationally expensive for the API to provide. For performance - reasons, the summary representation excludes those attributes. To - obtain those attributes, fetch the “detailed” representation.) -

- -
- GET {{ request.url_root }} -
- -

Detailed Representations

-

- To get detailed metadata about a specific Archive.org item, fetch - the item's metadata by ID through the Archive.org. (Note that - authorization sometimes influences the amount of detail included - in the representation.) -

- -
- GET https://archive.org/metadata/:id -
- -

For example:

-

-  $ curl -i "https://archive.org/metadata/thirteenbookseu03heibgoog"
-
-  HTTP/1.1 200 OK
-  Server: nginx/1.4.6 (Ubuntu)
-  Date: Tue, 22 Sep 2015 08:07:27 GMT
-  Content-Type: application/json
-  Content-Length: 21307
-  Connection: keep-alive
-  Cache-Control: max-age=5
-
-  {
-    created: 1442378110,
-    d1: "ia600309.us.archive.org",
-    ad2: "ia800309.us.archive.org",
-    dir: "/20/items/thirteenbookseu03heibgoog",
-    files: [],
-    files_count: 16,
-    item_size: 196609584,
-    metadata: {},
-    reviews: [],
-    server: "ia800309.us.archive.org",
-    uniq: 893310999,
-    updated: 1442380951,
-    workable_servers: []
-  }
-    
- -

- If this data is insufficient, you may be able to attrieve - additional information through - the Advanced - Search feature. -

-
- -
-

Pagination

-

- Requests that return multiple items will be paginated to 50 - items by default. You can specify further pages with the ?page - GET parameter. For some resources, you can also set a custom - page size up to 100 with the ?limit parameter. Note that for - technical reasons not all endpoints respect the ?limit - parameter, see events for example. -

- -

- Item count begins at 0 (the first item is the 0th entry). Paging - begins at 1, on the first page (i.e. ?page=1) -

- -

-  $ curl -i {{ request.url_root }}?page=1&limit=25
-    
- -

Calculating next page

-

- This section will be updated when pagination for items is - released. -

- -
- -
-

Client Errors

-

- TODO. -

- -

HTTP Redirects

-

-

- -

Cross Origin Resource Sharing

-

- The API supports Cross Origin Resource Sharing (CORS) for AJAX - requests from any origin. You can read - the CORS W3C - Recommendation, or - this - intro from the HTML 5 Security Guide. -

- -

Rate Limiting

-

- For the API v1 (alpha) API, no rate limiting is in effect -- we - are operating on a trust model. For the stable v1 release, - unauthenticated requests will be limited to 2,000 per hour. When - this change comes into effect, you will be able to check the - returned HTTP headers of any API request to see your current rate - limit status: -

- -

-  $ curl -i {{ request.url_root }}platowithenglish04platuoft
-
-  HTTP/1.1 200 OK
-  Date: Tue, 22 Sep 2015 08:07:27 GMT
-  Status: 200 OK
-  X-RateLimit-Limit: 2000
-  X-RateLimit-Remaining: 1999
-  X-RateLimit-Reset: 1372700873
-  
- - - - - - - - - - - - - - - - - - - - - - -
Header NameDescription
X-RateLimit-LimitThe maximum number of requests that the consumer is permitted to make per hour.
X-RateLimit-RemainingThe number of requests remaining in the current rate limit window.
X-RateLimit-ResetThe time at which the current rate limit window resets in UTC epoch seconds.
- -

- For more information, refer to - github's Traversing - With Pagination documentation, as pagination for our interface - is modeled after their service. -

+
-
diff --git a/iiify/templates/docs/resources.html b/iiify/templates/docs/resources.html index d22efd5..4d9b684 100644 --- a/iiify/templates/docs/resources.html +++ b/iiify/templates/docs/resources.html @@ -13,26 +13,25 @@

Items

Listing Items

- Querying the root of the Internet Archive IIIF v1 (alpha) server - results in a list of all publicly available and compatible image - and book items. Some items which are indexed in our search + Querying the root of the Internet Archive IIIF API + results in a list of all publicly available items. Some items which are indexed in our search engine but do have no associated content files will result in an - Internal Server Error. You can confirm whether the resource + Internal Server Error. There are also a small number of items returned that do not have material types associted with them that are IIIF compatible. You can confirm whether the resource actually exists or not by visiting the item's /details page on - archive.org. In the official v1 release, the message displayed - for this error will be clarified. + archive.org.


-  $ curl -i "{{ request.url_root }}"
+  $ curl -i "{{ request.url_root }}iiif"
 
-  HTTP/1.1 200 OK
-  Server: nginx/1.4.6 (Ubuntu)
-  Date: Tue, 22 Sep 2015 08:07:27 GMT
-  Content-Type: application/json
-  Content-Length: 21307
-  Connection: keep-alive
-  Cache-Control: max-age=5
+  HTTP/2 200 
+  alt-svc: h3=":443"; ma=2592000
+  cache-control: max-age=900
+  content-type: application/json
+  date: Tue, 15 Aug 2023 14:41:49 GMT
+  server: Caddy
+  server: nginx/1.23.2
+  content-length: 122082
 
   []
     
@@ -42,20 +41,12 @@

Listing Items

Item Types

Items available through the this service include Images, Books, - Book Pages. This includes any item on archive.org which has a - `mediatype` of `texts` or `image` which can be verified through + Audio, and Movie materials. This means any item on archive.org which has a + `mediatype` of `texts`, `image`, `audio`, or `movie`, which can be verified through the metadata API. -

-

Supported Image Formats

-

- The image formats available for a given item is determine by the - item's files on archive.org. To see what formats are available for an item, go to - https://archive.org/metadata/:itemid/files. -

-

- The API is capable of interfacing with jp2 (openjpeg), gif, jpg, tiff, png. +

There are some edge cases where rare file types are not represented in the IIIF presentation manifest. If you encounter an item where you think this may be the case, contact support.

From 231b188a37217f5eb19dbd60f6a0cefb7283dd0a Mon Sep 17 00:00:00 2001 From: Josh Hadro Date: Fri, 25 Aug 2023 15:52:58 -0400 Subject: [PATCH 02/21] Revise documentation --- iiify/templates/docs/index.html | 7 +-- iiify/templates/docs/introduction.html | 83 +++++++++++++++----------- iiify/templates/docs/overview.html | 5 +- iiify/templates/docs/resources.html | 62 ++++++++++++++----- 4 files changed, 98 insertions(+), 59 deletions(-) diff --git a/iiify/templates/docs/index.html b/iiify/templates/docs/index.html index e72998a..5a0cda1 100644 --- a/iiify/templates/docs/index.html +++ b/iiify/templates/docs/index.html @@ -21,7 +21,7 @@
-

IIIF API

+

IIIF APIs


{% include 'docs/introduction.html' %} @@ -34,10 +34,7 @@

IIIF API

  • Introduction
  • Overview
  • Items
  • -
  • Tiles
  • -
  • Viewers
  • -
  • Integrations
  • -
  • Issues
  • +
  • Issues
  • diff --git a/iiify/templates/docs/introduction.html b/iiify/templates/docs/introduction.html index 3c3f143..897b02f 100644 --- a/iiify/templates/docs/introduction.html +++ b/iiify/templates/docs/introduction.html @@ -1,57 +1,34 @@

    Introduction

    + +

    IIIF is an initialism that stands for the International Image Interoperability Framework.

    +

    - For those newly aquainted with IIIF, this - introduction describes the purpose and applications of - IIIF and the Internet Archive's IIIF - Service. + This introduction describes the way that the IIIF standards have been applied to the Internet Archive's services.

    What is IIIF?

    - IIIF (the "International Image - Interoperability Framework") is a set of open standards for delivering high-quality, attributed digital objects online at scale. It’s also an international community developing and implementing the IIIF APIs. IIIF is backed by a consortium of leading cultural institutions. For more details and examples, check out the IIIF website, or the full API specifications. -

    -

    For a very high-level overview, see "How IIIF Works," published by the IIIF Consortium.

    - -

    Image API

    -

    - The Image API is an - interface capable of producing and serving arbitrary tiles of - arbitrary regions of an image (just like the different scales of resolution in Google Maps). The properties - of these image tiles are specified within a URL, allowing - permenant citation and retrieval at a later time. - The Image API supports and powers other computer applications - (like deep-zoomable image - viewers, comparison viewers, and more . + IIIF is a set of open standards for delivering high-quality, attributed digital objects online at scale. It’s also an international community developing and implementing the IIIF APIs in various contexts. IIIF is backed by a consortium of leading cultural institutions. For more details and examples, check out the IIIF website, or the full API specifications.

    +

    For a very high-level overview see "How IIIF Works" published by the IIIF Consortium.

    -

    Presentation API

    -

    - The Presentation - API allows institutions to publish and consume metadata about - collections and sequences of image resources, called Manifests. A - Manifest may be composed of resources from any number of different - institutions serving their images in IIIF format. -

    -

    Importance

    In essence, the goal of IIIF is interoperability: to make an - institution's image and audio/visual openly accessible resources available and easily reusable via web - applications and clients running on other domains. + institution's image and audio/visual openly accessible resources available and easily reusable in a variety of web viewers and players without the need for any special plugins or software.

    The Internet Archive IIIF API is a RESTful web - service which implements the IIIF API specifications - API and provides a mechanism for accessing nearly all of the Archive's - items IIIF format. Every image item in the Archive - now has has a corresponding info.json and nearly all image, text, audio and movie item has - manifest.json. This means, you can seamlessly view any Archive.org + service which implements the IIIF API specifications + and provides a mechanism for accessing nearly all of the Archive's + items in IIIF format. Every image item in the Archive + now has has a corresponding info.json and nearly all image, text, audio and movie items have an associated + manifest.json file. This means you can seamlessly view any Archive.org image or book in any compatible IIIF viewer and also enjoy the enhancements they provide (annotation, side-by-size viewing, and loading images from different institutions into the same @@ -63,6 +40,42 @@

    Importance

    citeable image tiles of any arbitrary region of any image or book found in the Internet Archive.

    + +

    Image API

    +

    + The Image API is an + interface capable of producing and serving arbitrary tiles of + arbitrary regions of an image (just like the different scales of resolution in Google Maps). The properties + of these image tiles are specified within a URL, allowing + permenant citation and retrieval at a later time. + The Image API supports and powers other computer applications + (like deep-zoomable image + viewers, comparison viewers, and more). +

    + +

    The Image API creates images using the following template:

    +
    {scheme}://{server}{/prefix}/{identifier}/{region}/{size}/{rotation}/{quality}.{format}
    +

    In the context of the Internet Archive items, that will look like this for a full image:

    +
    https://iiif.archive.org/image/:id+filename/full/max/0/default.jpg
    + +

    A request for a bitonal center-cropped square image 375 pixels on each side, rotated 45 degrees will look like this:

    +
    https://iiif.archive.org/image/:id+filename/square/375,/45/bitonal.jpg
    + +

    For more details on the options for constructing image requests via URL parameters, see the full IIIF Image API specifications.

    + +

    Presentation API

    +

    + The Presentation + API allows institutions to publish and consume metadata about + collections and sequences of digital objects, called "manifests." For images and texts, this is almost always used in conjunction with the IIIF Image API to create manifests for digital objects that any IIIF viewer can use to present an engaging deep-zoom experience.

    + +

    The Presentation API can also faciliate the portability and playback of time-based media like audio and video files. In the A/V context, IIIF manifests often present multiple playback options based on the media formats and quality types available.

    + +

    A manifest for an Internet Archive items look like this:

    +
    https://iiif.archive.org/iiif/:id/manifest.json
    + + +
    diff --git a/iiify/templates/docs/overview.html b/iiify/templates/docs/overview.html index 7341b0e..4132717 100644 --- a/iiify/templates/docs/overview.html +++ b/iiify/templates/docs/overview.html @@ -7,7 +7,7 @@

    Overview

    This describes the resources that make up the Internet - Archive IIIF API. If you have any problems or + Archive IIIF APIs. If you have any problems or requests, please contact support.

    @@ -15,8 +15,7 @@

    Overview

    Current Version

    - The Internet Archive IIIF API service that launched in 2015 was an alpha service that has now been officially adopted. - However, it is still under development and we welcome community feedback on desired features.

    + The Internet Archive IIIF API service that launched in 2015 was an alpha service that has now been officially adopted as of September 2023. While stable, it is still under development and we welcome community feedback on desired features.

    Conventions

    IDs

    diff --git a/iiify/templates/docs/resources.html b/iiify/templates/docs/resources.html index 4d9b684..a13f5cb 100644 --- a/iiify/templates/docs/resources.html +++ b/iiify/templates/docs/resources.html @@ -44,36 +44,66 @@

    Item Types

    Audio, and Movie materials. This means any item on archive.org which has a `mediatype` of `texts`, `image`, `audio`, or `movie`, which can be verified through the metadata - API. + API.

    There are some edge cases where rare file types are not represented in the IIIF presentation manifest. If you encounter an item where you think this may be the case, contact support.

    -

    +
    -
    -

    Viewing Images

    -

    - Documentation In progress. -

    -
    +
    +

    Retrieving manifests for items

    -
    -

    Producing Tiles

    +

    Every Internet Archive item has a "details" page that is the main page for that item.

    - Documentation In progress. -

    + The "details" page will have the word "details" in the URL, like in this example: +
    https://archive.org/details/img-8664_202009
    + +

    What you'll need to get the IIIF manifest for any Internet Archive item is the identifier, which is the alphanumeric part of the URL that follows the "/details/" part.

    + +

    So, from our example just above, the Internet Archive identifier for that item is:

    img-8664_202009

    + +

    To then get the IIIF manifest, plug in the ID to the following template:

    +
    https://iiif.archive.org/iiif/:id/manifest.json
    + +

    For the example above, the final IIIF manifest URL would be:

    +
    https://iiif.archive.org/iiif/img-8664_202009/manifest.json
    + +
    +
    +

    Getting IIIF collection manifests

    + +

    More than one IIIF manifests can be formally grouped into what is called a "collection" manifest.

    + +

    On archive.org, a collection is a group of item pages organized under a collections page. For convenience, we've create a route that generates a IIIF collection manfiest for all of the collections on the Internet Archive. For more on how collections work, see the "Collections - A Basic Guide" page.

    + +

    As with the manifests above, you'll need the Internet Archive identifier for the colllection. Here's an example collection page from the University of Leeds:

    +
    ttps://archive.org/details/leedsuniversitylibrary
    + +

    In this case, the id is:

    +
    leedsuniversitylibrary
    + +

    To then get the IIIF collection manifest, plug in the ID to the following template:

    +
    https://iiif.archive.org/iiif/:id/collection.json
    + +

    For the Leeds example above, the final IIIF collection manifest URL would be:

    +
    https://iiif.archive.org/iiif/leedsuniversitylibrary/collection.json
    + +
    + +
    -

    IIIF Manifests & Metadata

    +

    Getting the info.json for an image

    Documentation In progress.

    +
    -
    
    +
    +

    Getting legacy IIIF Presentation 2.1 manfiests

    +
    -
    -
    From 8c67a130845ae7375926aee903ce04f49245b515 Mon Sep 17 00:00:00 2001 From: Josh Hadro Date: Fri, 29 Sep 2023 11:49:29 -0400 Subject: [PATCH 03/21] Update documentation --- iiify/templates/docs/collections.html | 52 ++++++++++++++++ iiify/templates/docs/index.html | 3 +- iiify/templates/docs/items.html | 88 +++++++++++++++++++++++++++ 3 files changed, 142 insertions(+), 1 deletion(-) create mode 100644 iiify/templates/docs/collections.html create mode 100644 iiify/templates/docs/items.html diff --git a/iiify/templates/docs/collections.html b/iiify/templates/docs/collections.html new file mode 100644 index 0000000..6efe30b --- /dev/null +++ b/iiify/templates/docs/collections.html @@ -0,0 +1,52 @@ +
    +

    Collections

    +

    + +

      +
    1. Listing Items
    2. +
    3. Items Types
    4. +
    5. Viewing Items
    6. +
    7. Producing Tiles
    8. +
    9. IIIF Manifests & Metadata
    10. +
    + +
    +

    Getting IIIF collection manifests

    + +

    More than one IIIF manifests can be formally grouped into what is called a "collection" manifest.

    + +

    On archive.org, a collection is a group of item pages organized under a collections page. For convenience, we've create a route that generates a IIIF collection manfiest for all of the collections on the Internet Archive. For more on how collections work, see the "Collections - A Basic Guide" page.

    + +

    As with the manifests above, you'll need the Internet Archive identifier for the colllection. Here's an example collection page from the University of Leeds:

    +
    https://archive.org/details/leedsuniversitylibrary
    + +

    In this case, the id is:

    +
    leedsuniversitylibrary
    + +

    To then get the IIIF collection manifest, plug in the ID to the following template:

    +
    https://iiif.archive.org/iiif/:id/collection.json
    + +

    For the Leeds example above, the final IIIF collection manifest URL would be:

    +
    https://iiif.archive.org/iiif/leedsuniversitylibrary/collection.json
    + +

    Note about nested collections

    +

    Please note that Internet Archive collections can be arbitrarily nested within other collections. In these cases, the IIIF collection manifest will return a link to one or more IIIF collection manifest(s) in addition to the items nested individually within that Internet Archive colleciton.

    + +
    + +
    +

    Pagination for large collections

    +

    The route described above for generating IIIF collection manfiests will return the first 1000 items or sub-collections within the collection. In order to get the remaining items for collections larger than that, pagination is required.

    +

    This looks like the following: +

    https://iiif.archive.org/iiif/:id/:page/collection.json

    + +

    +
    + +
    +

    Getting legacy IIIF Presentation 2.1 collection

    +
    + + +
    + diff --git a/iiify/templates/docs/index.html b/iiify/templates/docs/index.html index 5a0cda1..87ae741 100644 --- a/iiify/templates/docs/index.html +++ b/iiify/templates/docs/index.html @@ -26,7 +26,8 @@

    IIIF APIs

    {% include 'docs/introduction.html' %} {% include 'docs/overview.html' %} - {% include 'docs/resources.html' %} + {% include 'docs/items.html' %} + {% include 'docs/collections.html' %}
    diff --git a/iiify/templates/docs/introduction.html b/iiify/templates/docs/introduction.html index 1ae9d31..3efe5cf 100644 --- a/iiify/templates/docs/introduction.html +++ b/iiify/templates/docs/introduction.html @@ -1,5 +1,5 @@
    -

    Introduction

    +

    Introduction

    IIIF is an initialism that stands for the International Image Interoperability Framework.

    diff --git a/iiify/templates/docs/items.html b/iiify/templates/docs/items.html index 5e8bf58..7f574fb 100644 --- a/iiify/templates/docs/items.html +++ b/iiify/templates/docs/items.html @@ -1,41 +1,16 @@
    -

    Items

    +

    Items

    - + -

    
    -  $ curl -i "{{ request.url_root }}iiif"
    -
    -  HTTP/2 200 
    -  alt-svc: h3=":443"; ma=2592000
    -  cache-control: max-age=900
    -  content-type: application/json
    -  date: Tue, 15 Aug 2023 14:41:49 GMT
    -  server: Caddy
    -  server: nginx/1.23.2
    -  content-length: 122082
    -
    -  []
    -    
    - +

    Item Types

    @@ -58,6 +33,7 @@

    Retrieving a manifest for an item

    The "details" page will have the word "details" in the URL, like in this example:
    https://archive.org/details/img-8664_202009

    +

    Example

    What you'll need to get the IIIF manifest for any Internet Archive item is the identifier, which is the alphanumeric part of the URL that follows the "/details/" part.

    So, from our example just above, the Internet Archive identifier for that item is:

    img-8664_202009

    @@ -80,13 +56,6 @@

    Note about IIIF Presentation API versions

    -
    -

    Getting the info.json for an image

    -

    - Documentation In progress. -

    -
    -

    Getting legacy IIIF Presentation API 2.1 manfiests

    @@ -94,6 +63,19 @@

    Getting legacy IIIF Presentation API 2.1 manf

    To get the older Presentation API 2.1 IIIF manifest, plug in the ID to the following template:

    https://iiif.archive.org/iiif/2/:id/manifest.json
    +
    +

    Listing Items

    +

    + Querying the root of the Internet Archive IIIF API + results in a list of all publicly available items. Some items which are indexed in our search + engine but do have no associated content files will result in an + Internal Server Error. There are also a small number of items returned that do not have material types associted with them that are IIIF compatible. You can confirm whether the resource + actually exists or not by visiting the item's /details page on + archive.org. +

    + +
    https://iiif.archive.org/iiif
    +

    diff --git a/iiify/templates/docs/overview.html b/iiify/templates/docs/overview.html index 853e1bf..c2156ef 100644 --- a/iiify/templates/docs/overview.html +++ b/iiify/templates/docs/overview.html @@ -1,8 +1,31 @@

    Overview

    -

    Nearly all image, text, audio and movie items available from the Internet Archivenow have an associated - mechanism for accessing them via IIIF APIs. This means you can seamlessly view any Archive.org +

    +

    Current Version

    +

    + The Internet Archive IIIF API service that launched in 2015 was an alpha service that has now been officially adopted as of September 2023. While stable, it is still under development and we welcome community feedback on desired features.

    + +

    The code and logic that runs these APIs is available on Github, and that's where any issues identified such as bugs or feature requests can be added.

    + +

    Conventions

    +

    IDs

    +

    + ID placeholders are preceded by a ":" in examples. IDs need not + appear in bold, however this is done in the following example for + emphasis: +

    + +
    + GET {{ request.url_root }}iiif/3/:id/manifest.json +
    +
    + +

    Getting started

    + +
    +

    Nearly all image, text, audio and movie items available from the Internet Archive now have an associated + mechanism for accessing them via IIIF APIs. This means you can seamlessly view nearly any Archive.org image or book in any compatible IIIF viewer and also enjoy the enhancements they provide (annotation, side-by-size viewing, and loading images from different institutions into the same @@ -17,7 +40,7 @@

    Overview

    In IIIF terms, this functionality is accomplished via two APIs: the Image API, and the Presentation API.

    -

    Image API

    +

    Image API

    The Image API is an interface capable of producing and serving arbitrary tiles of @@ -37,11 +60,28 @@

    Image API

    A request for a bitonal center-cropped square image 375 pixels on each side, rotated 45 degrees will look like this:

    https://iiif.archive.org/image/iiif/3/:id+filename/square/375,/45/bitonal.jpg
    -

    Because it can be time-consuming to manually generate the IIIF Image API URL just from the Internet Archive item URL, we recommend a IIIF helper tool that can help you identify the Image API URL for a corresponding IA item. One such tool is Glen Robson's Canvas Finder, which takes as input a Manifest URL (see below for how to find that).

    +

    See the Image API section on "Image Requests" for more details on how images can be manipulated and specific sizes or sections retrieved.

    + +

    IIIF Image Viewers read something called an "info.json" file, which lets them know how to process the image for deep zooming.

    + +

    For a single-image Internet Archive item, you can generate the info.json via the following route:

    +
    https://iiif.archive.org/iiif/:id/info.json
    + +

    Example

    +

    Taking one item as an example (https://archive.org/details/img-8664_202009), the info.json would be:

    +
    https://iiif.archive.org/image/iiif/3/img-8664_202009%2FIMG_8664.jpg/info.json
    +

    And the full URL for the image would be:

    +
    https://iiif.archive.org/image/iiif/3/img-8664_202009%2FIMG_8664.jpg/full/max/0/default.jpg
    +

    A cropped portion at the full resolution can be requested like this:

    +
    https://iiif.archive.org/image/iiif/3/img-8664_202009%2fIMG_8664.jpg/1100,904,704,664/max/0/default.jpg
    +

    Where "1100,904,704,664" in that URL stands for 1100 pixels from the left edge, 904 pixels from the bottom edge, 704 pixels is the width of the desired section, and 664 pixels is the height.

    -

    For more details on the options for constructing image requests via URL parameters, see the full IIIF Image API specifications.

    -

    Presentation API

    +

    Because it can be time-consuming to manually generate the IIIF Image API URLs, we recommend a IIIF helper tool that can help you identify the Image API URLs for a corresponding IA item. One such tool is Glen Robson's Canvas Finder, which takes as input a Manifest URL (see below for how to find that).

    + +

    More image tools can be found via the community supported Awesome IIIF list.

    + +

    Presentation API

    The Presentation API allows institutions to publish and consume metadata about @@ -52,69 +92,6 @@

    Presentation API

    A manifest for an Internet Archive items look like this:

    https://iiif.archive.org/iiif/:id/manifest.json
    - - - -

    - This describes the resources that make up the Internet - Archive IIIF APIs. If you have any problems or - requests, please - contact support. -

    - -
    -

    Current Version

    -

    - The Internet Archive IIIF API service that launched in 2015 was an alpha service that has now been officially adopted as of September 2023. While stable, it is still under development and we welcome community feedback on desired features.

    - -

    The code and logic that runs these APIs is available on Github, and that's where any issues identified such as bugs or feature requests can be added.

    - -

    Conventions

    -

    IDs

    -

    - ID placeholders are preceded by a ":" in examples. IDs need not - appear in bold, however this is done in the following example for - emphasis: -

    - -
    - GET {{ request.url_root }}:id -
    -
    - -
    -

    Schema

    -

    - All API access is over HTTPS, and accessed from the - {{ request.url_root }} domain. All data is sent and received as JSON. -

    - -
    
    -  $ curl -i {{ request.url_root }}/iiif
    -
    -  HTTP/2 200 
    -  alt-svc: h3=":443"; ma=2592000
    -  cache-control: max-age=900
    -  content-type: application/json
    -  date: Mon, 14 Aug 2023 20:53:06 GMT
    -  server: Caddy
    -  server: nginx/1.23.2
    -  content-length: 122082
    -
    -  {
    -    ...
    -  }
    -    
    - -

    Trailing Slashes

    -

    - Other than the server root, uris should not end - with trailing slashes. -

    - -
    - +

    From 7917a621557ec7624ac99d323c13b30778940904 Mon Sep 17 00:00:00 2001 From: Josh Hadro Date: Thu, 5 Oct 2023 15:13:12 -0400 Subject: [PATCH 10/21] Fix typo --- iiify/templates/docs/overview.html | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/iiify/templates/docs/overview.html b/iiify/templates/docs/overview.html index c2156ef..0245de2 100644 --- a/iiify/templates/docs/overview.html +++ b/iiify/templates/docs/overview.html @@ -16,9 +16,7 @@

    IDs

    emphasis:

    -
    - GET {{ request.url_root }}iiif/3/:id/manifest.json -
    +
    https://iiif.archive.org/iiif/3/:id/manifest.json

    Getting started

    From 943ece8fa0e00924d61215f13d11b8a9d68f7224 Mon Sep 17 00:00:00 2001 From: Josh Hadro Date: Thu, 5 Oct 2023 16:33:47 -0400 Subject: [PATCH 11/21] Making Sara's documentation edits --- iiify/templates/docs/collections.html | 8 ++--- iiify/templates/docs/index.html | 1 + iiify/templates/docs/introduction.html | 7 ++-- iiify/templates/docs/items.html | 33 +++---------------- iiify/templates/docs/overview.html | 45 +++++++++++++------------- 5 files changed, 35 insertions(+), 59 deletions(-) diff --git a/iiify/templates/docs/collections.html b/iiify/templates/docs/collections.html index e424775..9cef01f 100644 --- a/iiify/templates/docs/collections.html +++ b/iiify/templates/docs/collections.html @@ -4,9 +4,7 @@

    Collections

    Getting IIIF collection manifests

    -

    More than one IIIF manifests can be formally grouped into what is called a "collection" manifest.

    - -

    On archive.org, a collection is a group of item pages organized under a collections page. For convenience, we've create a route that generates a IIIF collection manfiest for all of the collections on the Internet Archive. For more on how collections work, see the "Collections - A Basic Guide" page.

    +

    A group of more than one IIIF manifests is called a collection. On archive.org, a collection is a group of item pages organized under a collections page. For convenience, we've generate a IIIF collection manfiest for all of the collections on the Internet Archive. For more on how Internet Archive collections work, see the "Collections - A Basic Guide".

    Example

    As with the manifests above, you'll need the Internet Archive identifier for the colllection. Here's an example collection page from the University of Leeds:

    @@ -22,13 +20,13 @@

    Example

    https://iiif.archive.org/iiif/3/leedsuniversitylibrary/collection.json

    Note about nested collections

    -

    Please note that Internet Archive collections can be arbitrarily nested within other collections. In these cases, the IIIF collection manifest will return a link to one or more IIIF collection manifest(s) in addition to the items nested individually within that Internet Archive colleciton.

    +

    Please note that Internet Archive collections can be arbitrarily nested within other collections. In these cases, the IIIF collection manifest will return a link to one or more IIIF collection manifest(s) in addition to the items nested individually within that Internet Archive collection.

    Pagination for large collections

    -

    The route described above for generating IIIF collection manfiests will return the first 1000 items or sub-collections within the collection. In order to get the remaining items for collections larger than that, pagination is required.

    +

    The pattern described above for generating IIIF collection manifests will return the first 1000 items or sub-collections within the collection. In order to get the remaining items for collections larger than that, pagination is required.

    This looks like the following:

    https://iiif.archive.org/iiif/:id/:page/collection.json

    diff --git a/iiify/templates/docs/index.html b/iiify/templates/docs/index.html index 4479988..c9483bb 100644 --- a/iiify/templates/docs/index.html +++ b/iiify/templates/docs/index.html @@ -28,6 +28,7 @@

    IIIF APIs

    {% include 'docs/overview.html' %} {% include 'docs/items.html' %} {% include 'docs/collections.html' %} + {% include 'docs/appendix.html' %}
    diff --git a/iiify/templates/docs/items.html b/iiify/templates/docs/items.html index 7f574fb..5ec9b25 100644 --- a/iiify/templates/docs/items.html +++ b/iiify/templates/docs/items.html @@ -17,16 +17,14 @@

    Item Types

    Items available through the this service include Images, Books, Audio, and Movie materials. This means any item on archive.org which has a - `mediatype` of `texts`, `image`, `audio`, or `movie`, which can be verified through - the metadata - API.

    + `mediatype` of `texts`, `image`, `audio`, or `movie`.

    -

    There are some edge cases where rare file types are not represented in the IIIF presentation manifest. If you encounter an item where you think this may be the case, contact support.

    +

    There are some edge cases where rare file types are not represented in the IIIF presentation manifest. If you encounter an item where you think this may be the case, open an issue on the Github repository.

    -

    Retrieving a manifest for an item

    +

    Retrieving a manifest for an item

    Every Internet Archive item has a "details" page that is the main page for that item.

    @@ -47,35 +45,14 @@

    Example

    Note about IIIF Presentation API versions

    The pattern above describes the way to return IIIF Presentation API 3.0 manifests, as denoted by the /3/ in the URL.

    -

    The manifest URL can also be used with the version number removed (https://iiif.archive.org/iiif/:id/manifest.json), though note that with any future updates that URL will always return the most current version of the Presentation API.

    +

    The manifest URL can also be used with the version number removed (https://iiif.archive.org/iiif/:id/manifest.json), though note that with any future updates that URL will always return the most current version of the Presentation API.

    -

    The older experimental version of the IIIF APIs for Internet Archive materials hosted on Archivelabs served up IIIF Presentation API version 2.1 manifests; see below for instructions on retrieving a legacy manifests.

    +

    The older experimental version of the IIIF APIs for Internet Archive materials hosted on Archivelabs served up IIIF Presentation API version 2.1 manifests; see below for instructions on retrieving a legacy manifests.

    -
    -

    Getting legacy IIIF Presentation API 2.1 manfiests

    -
    - -

    To get the older Presentation API 2.1 IIIF manifest, plug in the ID to the following template:

    -
    https://iiif.archive.org/iiif/2/:id/manifest.json
    - -
    -

    Listing Items

    -

    - Querying the root of the Internet Archive IIIF API - results in a list of all publicly available items. Some items which are indexed in our search - engine but do have no associated content files will result in an - Internal Server Error. There are also a small number of items returned that do not have material types associted with them that are IIIF compatible. You can confirm whether the resource - actually exists or not by visiting the item's /details page on - archive.org. -

    - -
    https://iiif.archive.org/iiif
    - -
    diff --git a/iiify/templates/docs/overview.html b/iiify/templates/docs/overview.html index 0245de2..bb1a003 100644 --- a/iiify/templates/docs/overview.html +++ b/iiify/templates/docs/overview.html @@ -4,14 +4,14 @@

    Overview

    Current Version

    - The Internet Archive IIIF API service that launched in 2015 was an alpha service that has now been officially adopted as of September 2023. While stable, it is still under development and we welcome community feedback on desired features.

    + The Internet Archive IIIF API service that launched in 2015 was an alpha service that has now been officially upgraded and adopted by the Internet Archive as of September 2023. While stable, it is still under development and we welcome community feedback on desired features.

    -

    The code and logic that runs these APIs is available on Github, and that's where any issues identified such as bugs or feature requests can be added.

    +

    The code and logic that runs these APIs is available on Github, and that's where any bugs or features requests can be added.

    Conventions

    IDs

    - ID placeholders are preceded by a ":" in examples. IDs need not + ID placeholders are preceded by a ":" (colon) in examples. IDs need not appear in bold, however this is done in the following example for emphasis:

    @@ -22,10 +22,9 @@

    IDs

    Getting started

    -

    Nearly all image, text, audio and movie items available from the Internet Archive now have an associated - mechanism for accessing them via IIIF APIs. This means you can seamlessly view nearly any Archive.org - image or book in any compatible IIIF viewer and also enjoy - the enhancements they provide (annotation, side-by-size viewing, +

    Nearly all image, text, audio and video items available from the Internet Archive now have a IIIF API URI. This means you can seamlessly view nearly any Archive.org + image, book, audio or video in any compatible IIIF viewer and also enjoy + the enhancements they provide (e.g., annotation, side-by-size viewing, and loading images from different institutions into the same space).

    @@ -37,8 +36,21 @@

    Getting started

    In IIIF terms, this functionality is accomplished via two APIs: the Image API, and the Presentation API.

    - -

    Image API

    + +

    Presentation API

    +

    + The Presentation + API allows institutions to publish and consume metadata about + collections and sequences of digital objects e.g. pages in a book, called "manifests." For images and texts, this is almost always used in conjunction with the IIIF Image API to create manifests for digital objects that any IIIF viewer can use to present an engaging deep-zoom experience.

    + +

    The Presentation API can also faciliate the portability and playback of time-based media like audio and video files. In the A/V context, IIIF manifests often present multiple playback options based on the media formats and quality types available.

    + +

    A manifest for an Internet Archive items look like this:

    +
    https://iiif.archive.org/iiif/3/:id/manifest.json
    + +

    see the sections below for all the possible ways to retrieve manifests for items and collections.

    + +

    Image API

    The Image API is an interface capable of producing and serving arbitrary tiles of @@ -62,7 +74,7 @@

    Image API

    IIIF Image Viewers read something called an "info.json" file, which lets them know how to process the image for deep zooming.

    -

    For a single-image Internet Archive item, you can generate the info.json via the following route:

    +

    For a single-image Internet Archive item, you can find the info.json via the following template:

    https://iiif.archive.org/iiif/:id/info.json

    Example

    @@ -75,21 +87,10 @@

    Example

    Where "1100,904,704,664" in that URL stands for 1100 pixels from the left edge, 904 pixels from the bottom edge, 704 pixels is the width of the desired section, and 664 pixels is the height.

    -

    Because it can be time-consuming to manually generate the IIIF Image API URLs, we recommend a IIIF helper tool that can help you identify the Image API URLs for a corresponding IA item. One such tool is Glen Robson's Canvas Finder, which takes as input a Manifest URL (see below for how to find that).

    +

    Because it can be time-consuming to manually generate the IIIF Image API URLs, we recommend a IIIF helper tool that can help you identify the Image API URLs for a corresponding IA item. One such tool is Glen Robson's Canvas Finder, which takes as input a Manifest URL (see below for how to find that) and returns links to the images associated with the manifest.

    More image tools can be found via the community supported Awesome IIIF list.

    -

    Presentation API

    -

    - The Presentation - API allows institutions to publish and consume metadata about - collections and sequences of digital objects, called "manifests." For images and texts, this is almost always used in conjunction with the IIIF Image API to create manifests for digital objects that any IIIF viewer can use to present an engaging deep-zoom experience.

    - -

    The Presentation API can also faciliate the portability and playback of time-based media like audio and video files. In the A/V context, IIIF manifests often present multiple playback options based on the media formats and quality types available.

    - -

    A manifest for an Internet Archive items look like this:

    -
    https://iiif.archive.org/iiif/:id/manifest.json
    -

    From 209996cc8b77672af5c02c7b68fd50f3ecafa12d Mon Sep 17 00:00:00 2001 From: Josh Hadro Date: Thu, 5 Oct 2023 16:43:29 -0400 Subject: [PATCH 12/21] Add appendix --- iiify/templates/docs/appendix.html | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 iiify/templates/docs/appendix.html diff --git a/iiify/templates/docs/appendix.html b/iiify/templates/docs/appendix.html new file mode 100644 index 0000000..0856df8 --- /dev/null +++ b/iiify/templates/docs/appendix.html @@ -0,0 +1,26 @@ +
    +

    Appendix

    + +
    +

    Getting legacy IIIF Presentation API 2.1 manifests

    + +

    To get the older Presentation API 2.1 IIIF manifest, plug in the ID to the following template:

    +
    https://iiif.archive.org/iiif/2/:id/manifest.json
    +
    + +
    +

    Listing all items

    +

    + Querying the root of the Internet Archive IIIF API + results in a list of all publicly available items. Some items which are indexed in our search + engine but do have no associated content files will result in an + Internal Server Error. There are also a small number of items returned that do not have material types associated with them that are IIIF compatible. You can confirm whether the resource + actually exists or not by visiting the item's /details page on + archive.org. +

    + +
    https://iiif.archive.org/iiif
    + +
    +
    + From 6f5aa165d2d83436ffcc79c1b8f6a2542048639a Mon Sep 17 00:00:00 2001 From: Josh Hadro Date: Thu, 5 Oct 2023 17:05:52 -0400 Subject: [PATCH 13/21] Fix typo --- iiify/templates/docs/overview.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/iiify/templates/docs/overview.html b/iiify/templates/docs/overview.html index bb1a003..ba1cb7f 100644 --- a/iiify/templates/docs/overview.html +++ b/iiify/templates/docs/overview.html @@ -31,7 +31,7 @@

    Getting started

    The service also provides a mechanism for producing permanantly - citeable image tiles of any arbitrary region of any image or book + citeable image tiles of any arbitrary region of any image, book, audio or video found in the Internet Archive.

    From c8e90a91617642ab6cc15d5a707e6604574c1f7e Mon Sep 17 00:00:00 2001 From: Josh Hadro Date: Fri, 6 Oct 2023 15:00:36 -0400 Subject: [PATCH 14/21] More Sara tweaks --- iiify/templates/docs/appendix.html | 2 +- iiify/templates/docs/index.html | 1 + iiify/templates/docs/introduction.html | 2 +- iiify/templates/docs/overview.html | 5 ++--- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/iiify/templates/docs/appendix.html b/iiify/templates/docs/appendix.html index 0856df8..60990b6 100644 --- a/iiify/templates/docs/appendix.html +++ b/iiify/templates/docs/appendix.html @@ -1,5 +1,5 @@
    -

    Appendix

    +

    Appendix

    Getting legacy IIIF Presentation API 2.1 manifests

    diff --git a/iiify/templates/docs/index.html b/iiify/templates/docs/index.html index c9483bb..f2a3fe7 100644 --- a/iiify/templates/docs/index.html +++ b/iiify/templates/docs/index.html @@ -39,6 +39,7 @@

    IIIF APIs

  • Presentation API
  • Items
  • Collections
  • +
  • Appendix
  • diff --git a/iiify/templates/docs/introduction.html b/iiify/templates/docs/introduction.html index 0a0c9d8..47c18bf 100644 --- a/iiify/templates/docs/introduction.html +++ b/iiify/templates/docs/introduction.html @@ -20,7 +20,7 @@

    Why?

    institution's image and audio/visual openly accessible resources available and easily reusable in a variety of web viewers and players, often open source, without the need for any special plugins or software.

    -

    Fore more about how the goals of interoperability fit with the Internet Archive's mission, see our Making IIIF Official at the Internet Archive announcement.

    +

    Fore more about how the goals of interoperability fit with the Internet Archive's mission, see our Making IIIF Official at the Internet Archive announcement.

    diff --git a/iiify/templates/docs/overview.html b/iiify/templates/docs/overview.html index ba1cb7f..e9c281c 100644 --- a/iiify/templates/docs/overview.html +++ b/iiify/templates/docs/overview.html @@ -8,8 +8,7 @@

    Current Version

    The code and logic that runs these APIs is available on Github, and that's where any bugs or features requests can be added.

    -

    Conventions

    -

    IDs

    +

    Convention: IDs

    ID placeholders are preceded by a ":" (colon) in examples. IDs need not appear in bold, however this is done in the following example for @@ -41,7 +40,7 @@

    Presentation API

    The Presentation API allows institutions to publish and consume metadata about - collections and sequences of digital objects e.g. pages in a book, called "manifests." For images and texts, this is almost always used in conjunction with the IIIF Image API to create manifests for digital objects that any IIIF viewer can use to present an engaging deep-zoom experience.

    + collections and sequences of digital objects (e.g., pages in a book), called "manifests." For images and texts, this is almost always used in conjunction with the IIIF Image API to create manifests for digital objects that any IIIF viewer can use to present an engaging deep-zoom experience.

    The Presentation API can also faciliate the portability and playback of time-based media like audio and video files. In the A/V context, IIIF manifests often present multiple playback options based on the media formats and quality types available.

    From 47f4588e84f0137ff80bef5a51bf06a7d7c34b4e Mon Sep 17 00:00:00 2001 From: Josh Hadro Date: Fri, 6 Oct 2023 15:11:09 -0400 Subject: [PATCH 15/21] Fix docs typos --- iiify/templates/docs/overview.html | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/iiify/templates/docs/overview.html b/iiify/templates/docs/overview.html index e9c281c..15d66f3 100644 --- a/iiify/templates/docs/overview.html +++ b/iiify/templates/docs/overview.html @@ -34,7 +34,7 @@

    Getting started

    found in the Internet Archive.

    -

    In IIIF terms, this functionality is accomplished via two APIs: the Image API, and the Presentation API.

    +

    In IIIF terms, this functionality is accomplished via two APIs: the Presentation API and the Image API.

    Presentation API

    @@ -44,7 +44,7 @@

    Presentation API

    The Presentation API can also faciliate the portability and playback of time-based media like audio and video files. In the A/V context, IIIF manifests often present multiple playback options based on the media formats and quality types available.

    -

    A manifest for an Internet Archive items look like this:

    +

    A manifest for an Internet Archive item looks like this:

    https://iiif.archive.org/iiif/3/:id/manifest.json

    see the sections below for all the possible ways to retrieve manifests for items and collections.

    @@ -62,11 +62,11 @@

    Image API

    The Image API creates images using the following template:

    -
    {scheme}://{server}{/prefix}/{identifier}/{region}/{size}/{rotation}/{quality}.{format}
    +
    {scheme}://{server}/{prefix}/{identifier}/{region}/{size}/{rotation}/{quality}.{format}

    In the context of the Internet Archive items, that will look like this for a full image:

    https://iiif.archive.org/image/iiif/3/:id+filename/full/max/0/default.jpg
    -

    A request for a bitonal center-cropped square image 375 pixels on each side, rotated 45 degrees will look like this:

    +

    Making use of the various parameters, a request for a bitonal center-cropped square image 375 pixels on each side, rotated 45 degrees will look like this:

    https://iiif.archive.org/image/iiif/3/:id+filename/square/375,/45/bitonal.jpg

    See the Image API section on "Image Requests" for more details on how images can be manipulated and specific sizes or sections retrieved.

    From dd2537417fda3eb3e21cab3d9d6554a6885fdb60 Mon Sep 17 00:00:00 2001 From: Josh Hadro Date: Thu, 19 Oct 2023 21:56:00 -0400 Subject: [PATCH 16/21] Add comment about ID plus image filename --- iiify/templates/docs/overview.html | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/iiify/templates/docs/overview.html b/iiify/templates/docs/overview.html index 15d66f3..febf986 100644 --- a/iiify/templates/docs/overview.html +++ b/iiify/templates/docs/overview.html @@ -73,14 +73,24 @@

    Image API

    IIIF Image Viewers read something called an "info.json" file, which lets them know how to process the image for deep zooming.

    -

    For a single-image Internet Archive item, you can find the info.json via the following template:

    +

    As a convenience, for a single-image Internet Archive item you can find a redirect to the info.json via the following template:

    https://iiif.archive.org/iiif/:id/info.json

    Example

    -

    Taking one item as an example (https://archive.org/details/img-8664_202009), the info.json would be:

    -
    https://iiif.archive.org/image/iiif/3/img-8664_202009%2FIMG_8664.jpg/info.json
    +

    Take the following item as an example: https://archive.org/details/img-8664_202009.

    + +

    In this case, img-8664_202009 is the item ID.

    + +

    To get the filename you can go to "Show all" in the "Download Options" box. This will show you a list of links to the various files associated with an item. Taking the jpg link for this item, you get the following URL: https://archive.org/download/img-8664_202009/IMG_8664.jpg

    + +

    Here, IMG_8664.jpg is the filename.

    + +

    In order to get the :id+filename the way you need it for the IIIF Image API info.json, you can combine the ID and filename with a URL encoded slash, i.e. %2f.

    + +

    So for this image, the info.json would be:

    +
    https://iiif.archive.org/image/iiif/3/img-8664_202009%2fIMG_8664.jpg/info.json

    And the full URL for the image would be:

    -
    https://iiif.archive.org/image/iiif/3/img-8664_202009%2FIMG_8664.jpg/full/max/0/default.jpg
    +
    https://iiif.archive.org/image/iiif/3/img-8664_202009%2fIMG_8664.jpg/full/max/0/default.jpg

    A cropped portion at the full resolution can be requested like this:

    https://iiif.archive.org/image/iiif/3/img-8664_202009%2fIMG_8664.jpg/1100,904,704,664/max/0/default.jpg

    Where "1100,904,704,664" in that URL stands for 1100 pixels from the left edge, 904 pixels from the bottom edge, 704 pixels is the width of the desired section, and 664 pixels is the height.

    From a323cc1a27cde3bef71a3f4cc4b1ed2a2d0314b3 Mon Sep 17 00:00:00 2001 From: Josh Hadro Date: Thu, 19 Oct 2023 21:56:08 -0400 Subject: [PATCH 17/21] Cleanup template --- iiify/templates/docs/index.html | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/iiify/templates/docs/index.html b/iiify/templates/docs/index.html index f2a3fe7..bb3d15b 100644 --- a/iiify/templates/docs/index.html +++ b/iiify/templates/docs/index.html @@ -2,21 +2,16 @@ - + IIIF Documentation | Internet Archive - + - - - - +
    From bab15c22519b55e10645a2d1b099391b0a14adb7 Mon Sep 17 00:00:00 2001 From: Josh Hadro Date: Thu, 19 Oct 2023 22:37:27 -0400 Subject: [PATCH 18/21] Add note about helper pages; fixes #36 --- iiify/templates/docs/appendix.html | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/iiify/templates/docs/appendix.html b/iiify/templates/docs/appendix.html index 60990b6..1f52b69 100644 --- a/iiify/templates/docs/appendix.html +++ b/iiify/templates/docs/appendix.html @@ -21,6 +21,31 @@

    Listing all items

    https://iiif.archive.org/iiif
    +
    + + +
    +

    Helpers for various media types

    +

    + To give you a sense of how different media types on the Internet Archive can be used in IIIF viewers, we've created a set of item "helpers" that provide some useful iformation and links. +

    +

    The pattern for these helper pages is as follows:

    +
    https://iiif.archive.org/iiif/helper/:id
    + +

    So, for example, the helper page for a single image item with item id img-8664_202009 would be the following:

    +
    https://iiif.archive.org/iiif/helper/img-8664_202009
    + +

    The helper page for this movie item with item id youtube-7w8F2Xi3vFw would be the following:

    +
    https://iiif.archive.org/iiif/helper/youtube-7w8F2Xi3vFw
    + +

    Not all media types on the Internet Archive have files that are playable in IIIF viewers, but the helper pages should work for images, texts, audio, and movie items.

    +
    +
    +
    +
    + + +
    From ea17e7ab313d6e79ad28c20de66ca11aaea2688e Mon Sep 17 00:00:00 2001 From: Josh Hadro Date: Thu, 19 Oct 2023 22:38:45 -0400 Subject: [PATCH 19/21] Add helper notes --- iiify/templates/docs/items.html | 2 ++ iiify/templates/docs/overview.html | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/iiify/templates/docs/items.html b/iiify/templates/docs/items.html index 5ec9b25..05622ec 100644 --- a/iiify/templates/docs/items.html +++ b/iiify/templates/docs/items.html @@ -19,6 +19,8 @@

    Item Types

    Audio, and Movie materials. This means any item on archive.org which has a `mediatype` of `texts`, `image`, `audio`, or `movie`.

    +

    For more pointers on how IIIF manifests can be used for different material types, see the Appendix section on Helpers.

    +

    There are some edge cases where rare file types are not represented in the IIIF presentation manifest. If you encounter an item where you think this may be the case, open an issue on the Github repository.

    diff --git a/iiify/templates/docs/overview.html b/iiify/templates/docs/overview.html index febf986..595fac0 100644 --- a/iiify/templates/docs/overview.html +++ b/iiify/templates/docs/overview.html @@ -47,7 +47,9 @@

    Presentation API

    A manifest for an Internet Archive item looks like this:

    https://iiif.archive.org/iiif/3/:id/manifest.json
    -

    see the sections below for all the possible ways to retrieve manifests for items and collections.

    +

    See the sections below for all the possible ways to retrieve manifests for items and collections.

    + +

    For more pointers on how IIIF manifests can be used, see the Appendix section on Helpers for different material types.

    Image API

    From 145df6ea38da2aaeaebc8e418d1cfc1fa9b48f6e Mon Sep 17 00:00:00 2001 From: Josh Hadro Date: Thu, 19 Oct 2023 22:57:23 -0400 Subject: [PATCH 20/21] clean up templates --- iiify/templates/helpers/audio.html | 7 ++----- iiify/templates/helpers/image.html | 6 +----- iiify/templates/helpers/movies.html | 6 +----- iiify/templates/helpers/texts.html | 6 +----- iiify/templates/helpers/unknown.html | 6 +----- 5 files changed, 6 insertions(+), 25 deletions(-) diff --git a/iiify/templates/helpers/audio.html b/iiify/templates/helpers/audio.html index 12f8e1b..2ada150 100644 --- a/iiify/templates/helpers/audio.html +++ b/iiify/templates/helpers/audio.html @@ -10,13 +10,10 @@ - - + - +

    diff --git a/iiify/templates/helpers/image.html b/iiify/templates/helpers/image.html index 69faf7e..1598e43 100644 --- a/iiify/templates/helpers/image.html +++ b/iiify/templates/helpers/image.html @@ -10,13 +10,9 @@ - - + -
    diff --git a/iiify/templates/helpers/movies.html b/iiify/templates/helpers/movies.html index ce87094..835ca24 100644 --- a/iiify/templates/helpers/movies.html +++ b/iiify/templates/helpers/movies.html @@ -10,13 +10,9 @@ - - - +
    diff --git a/iiify/templates/helpers/texts.html b/iiify/templates/helpers/texts.html index 4c7ef0f..cfef3b9 100644 --- a/iiify/templates/helpers/texts.html +++ b/iiify/templates/helpers/texts.html @@ -10,13 +10,9 @@ - - + -
    diff --git a/iiify/templates/helpers/unknown.html b/iiify/templates/helpers/unknown.html index 88cdd34..bbcc678 100644 --- a/iiify/templates/helpers/unknown.html +++ b/iiify/templates/helpers/unknown.html @@ -10,13 +10,9 @@ - - + -
    From 13a56f6ecfbdf59ee46578f0057c04696d9a94e7 Mon Sep 17 00:00:00 2001 From: Josh Hadro Date: Thu, 19 Oct 2023 22:57:37 -0400 Subject: [PATCH 21/21] Add clover and mirador --- iiify/templates/helpers/audio.html | 4 +++- iiify/templates/helpers/movies.html | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/iiify/templates/helpers/audio.html b/iiify/templates/helpers/audio.html index 2ada150..7e579f0 100644 --- a/iiify/templates/helpers/audio.html +++ b/iiify/templates/helpers/audio.html @@ -27,11 +27,13 @@

    IIIF Presentation API Audio Helper

    The IIIF manifest URL is: https://iiif.archive.org/iiif/3/{{ identifier }}/manifest.json

    -

    IIIF viewer options for this mediatype:

    +

    IIIF player options for this mediatype:

    diff --git a/iiify/templates/helpers/movies.html b/iiify/templates/helpers/movies.html index 835ca24..e7cfa68 100644 --- a/iiify/templates/helpers/movies.html +++ b/iiify/templates/helpers/movies.html @@ -29,8 +29,10 @@

    IIIF Presentation API Movies Helper

    IIIF viewer options for this mediatype: