File manifest from api - milnegeneseo/digital-scholarly-editing GitHub Wiki
Here's a script for pulling all the full-sized image urls via the IIIF API, together with the identifying label for each image, and putting them into a single csv manifest that can be opened in a spreadsheet for additional documentation.
# First, import some libraries we'll need
import json
import requests
# Next, define a function to
# get the image urls for a given volume
def volImages(url):
response = requests.get(url)
manifest = json.loads(response.text)
imageSeq = manifest['sequences']
canvases = imageSeq[0]['canvases']
images = [item['images'] for item in canvases]
imageList = [image[0] for image in images]
resources = [item['resource'] for item in imageList]
imageUrls = [item['@id'] for item in resources]
return(imageUrls)
# Mutatis mutandis for image labels
def volLabels(url):
response = requests.get(url)
manifest = json.loads(response.text)
imageSeq = manifest['sequences']
canvases = imageSeq[0]['canvases']
labels = [item['label'] for item in canvases]
return(labels)
# Now, let's get all our image urls
volOneImages = volImages('https://cdm16003.contentdm.oclc.org//iiif/info/p16003coll16/252/manifest.json')
volTwoImages = volImages('https://cdm16003.contentdm.oclc.org/iiif/info/p16003coll16/429/manifest.json')
volThreeImages = volImages('https://cdm16003.contentdm.oclc.org//iiif/info/p16003coll16/500/manifest.json')
volFourImages = volImages('https://cdm16003.contentdm.oclc.org//iiif/info/p16003coll16/663/manifest.json')
volFiveImages = volImages('https://cdm16003.contentdm.oclc.org//iiif/info/p16003coll16/898/manifest.json')
volSixImages = volImages('https://cdm16003.contentdm.oclc.org//iiif/info/p16003coll16/1262/manifest.json')
volSevenImages = volImages('https://cdm16003.contentdm.oclc.org//iiif/info/p16003coll16/1003/manifest.json')
volEightImages = volImages('https://cdm16003.contentdm.oclc.org//iiif/info/p16003coll16/1321/manifest.json')
correctedProofImages = volImages('https://cdm16003.contentdm.oclc.org//iiif/info/p16003coll16/1321/manifest.json')
# Let's get our labels
volOneLabels = volLabels('https://cdm16003.contentdm.oclc.org//iiif/info/p16003coll16/252/manifest.json')
volTwoLabels = volLabels('https://cdm16003.contentdm.oclc.org/iiif/info/p16003coll16/429/manifest.json')
volThreeLabels = volLabels('https://cdm16003.contentdm.oclc.org//iiif/info/p16003coll16/500/manifest.json')
volFourLabels = volLabels('https://cdm16003.contentdm.oclc.org//iiif/info/p16003coll16/663/manifest.json')
volFiveLabels = volLabels('https://cdm16003.contentdm.oclc.org//iiif/info/p16003coll16/898/manifest.json')
volSixLabels = volLabels('https://cdm16003.contentdm.oclc.org//iiif/info/p16003coll16/1262/manifest.json')
volSevenLabels = volLabels('https://cdm16003.contentdm.oclc.org//iiif/info/p16003coll16/1003/manifest.json')
volEightLabels = volLabels('https://cdm16003.contentdm.oclc.org//iiif/info/p16003coll16/1321/manifest.json')
correctedProofLabels = volLabels('https://cdm16003.contentdm.oclc.org//iiif/info/p16003coll16/1321/manifest.json')
# Concatenate images and labels respectively
# to create two megalists we can zip together
allImages = volOneImages + volTwoImages + volThreeImages + volFourImages + volFiveImages + volSixImages + volSevenImages + volEightImages + correctedProofImages
allLabels = volOneLabels + volTwoLabels + volThreeLabels + volFourLabels + volSixLabels + volSevenLabels + volEightLabels + correctedProofLabels
# Finish by zipping the two megalists and printing them
for label, image in zip(allLabels, allImages):
print(f'{label},{image}')
# Run from command line:
# python waldenImagesLabels.py > manifest.csv