New York Halk Kütüphanesi’nin ‘Public Domain’ İçeriği İnternete Açılmış

Haftasonunu internetteki blogları ve Medium’u tarayarak geçirirken, Serdar Kuzuloğlu’nun Dünya Halleri bloguna yolum düştü. Bu blogda haftalık özetler yer alıyor ve farklı kategorilerde içerik bulunabiliyor. 64.Hafta özetlerini sırayla okurken, İnternet/Girişimler sekmesinde rastladığım bir maddede New York Halk Kütüphanesi’nin zaman aşımı veya içerik sahibinin talebiyle kamuya malolan (public domain) içeriğinin tamamını internete açtığını gördüm. İlgimi çekti ve linke’e tıkladım. Bunda Serdar Kuzuloğlu’nun “187 binden fazla dosya içeren bu kaynak için hazine kelimesi bile yetersiz kalıyor.” cümlesi etkili oldu. Devamında Digital Collections kısmına girip, aklıma ilk gelen arşivlik kelimeleri yazdım arama alanına:

  • turkey
  • ottoman empire

Arama sonuçlarında birçok imaj döndü. Ve dönen sonuçlardaki imajlar gerçekten çok hoşuma gitti. Sonuçlar arasında portre resimler, el yazmaları vb. birçok eser bulunabiliyor. Ve bu imajlara tek tek girip farklı boyutlarda görüntüleyip indirebiliyorsunuz.

Downloaded from NYPL ‘Public Domain Only’ Collections

Kız arkadaşıma bu eserleri gösterdiğimde, aralarından bazı imajlar çok hoşumuza gitti ve “bunlardan birkaçını indirip, ucuza bir IKEA çerçevesi alıp, ev içinde birkaç dekor yaratabiliriz” düşüncesi oluştu aklımızda. “Hadi, fotoğrafları indirsene” demesi üzerine tek tek bakmaya başladım. Fakat işin içinden çıkamadım bir süre sonra. Çok görsel ve çok alt sayfa vardı 😦

Tembellik devreye girdi…

Downloaded from NYPL ‘Public Domain Only’ Collections

Sayfayı biraz daha kurcalayınca, koleksiyonların sunulan bir API’sinin olduğunu gördüm. Bu API ile farklı endpoint’leri kullanarak sonuçlar alabiliyorsunuz. Collections sayfasına girdiğimde arama alanına kelime yazarak arama yapma opsiyonu da buna dahil.

Dönen sonuçlarda her imajın bir ID’si bulunuyor. Imajlara baktığınızda da bu ID’lerin url içine gömülü olduğunu görebilirsiniz. Sonrasında düşündüm ki ben bu resimleri tek tek indirmek ile uğraşmayayım ve birkaç satırlık bir Python scripti yazarak, istediğim query’deki imajları bilgisayarıma indireyim. Sonrasında da imajları bilgisayar üzerinden kontrol ederek, en çok hoşumuza gidenleri seçip 2–3 adet ev için dekor yapabilirdik.

Downloaded from NYPL ‘Public Domain Only’ Collections

Kısa sürede bir Python script çıktı ortaya ve bunu paylaşayım istedim. Yazılan kodda arama ve görsel indirme sadece ‘Public Domain Only’ arama kriterini içeriyor. Aşağıdaki Peakode Github Gist sayfasında bu kodu bulabilirsiniz.

# Written by Can Uludag
# Co-Founder at Peakode & Lead Android Engineer
# http://www.peakode.com
# We are using below libraries
import requests
import json
import urllib
# Base public search api
base_api_url = 'http://api.repo.nypl.org/api/v1/items/search?q='
# Your token from NYPL API page. You need to sign up in order to get. Replace this with yours.
nypl_auth_token = 'your_authentication_token'
# Gets search results
def get_search_results(query, is_public_domain_only, pagination):
print('Getting search results…\n\n')
# Generating the final api link
# We searched 'Public Domain Only' collections
search_url = base_api_url + query + '&publicDomainOnly=' + is_public_domain_only + '&per_page=' + str(pagination)
# Creating custom headers for GET request
# This Authorization headers is required for access to api
auth_headers = {'Authorization': 'Token token=' + nypl_auth_token}
# GET request with using Requests library
req = requests.get(search_url, headers=auth_headers)
binary = req.content
jsonData = json.loads(binary)
# Getting result json array from the response json
results_array = jsonData['nyplAPI']['response']['result']
# Downloading images
for result in results_array:
download_images_with_api(result['imageID'])
# This method is little bit different.
# It's not using the API but still can get photos from the url
# There is no query options. It's based on image_id
# Downloads images starting from an image id number
# I'm not sure it is legal. Not advising to use
def download_images_with_public_url():
print('Download started…')
image_id = 0
for x in range(0, 50):
print 'Downloading image no ' + str(image_id)
photo_url = 'http://images.nypl.org/index.php?id=' + str(image_id) + '&t=w&download=0'
# Method for downloading images
urllib.urlretrieve(photo_url, str(image_id) + '.jpg')
image_id += 1
print 'Image saved to file ' + str(image_id) + '.jpg'
# This method download images with using public api
# Downloads photo with the given image_id
def download_images_with_api(image_id):
print('Download started…')
photo_url = 'http://images.nypl.org/index.php?id=' + str(image_id) + '&t=w&download=0'
# Method for downloading images
urllib.urlretrieve(photo_url, str(image_id) + '.jpg')
print 'Image saved to file ' + str(image_id) + '.jpg'
# Written by Can Uludag
# Co-Founder at Peakode & Lead Android Engineer
# http://www.peakode.com
import GetNYPLCollectionImagesHelper as helper
if __name__ == '__main__':
helper.get_search_results('query_keyword', 'true', 100)
view raw main.py hosted with ❤ by GitHub
https://gist.github.com/peakode/b680dee00a3b7ba1db00

Tabi bu imajlar her ne kadar public domain’e geçmiş olsa da, sadece kişisel ev dekoru amaçlı topluca indirdiğimi belirtmek isterim. Ve size de aynısını tavsiye ederim.

Bu yazı daha önce aşağıdaki Medium sayfasında paylaşıldı:
https://medium.com/@uludagcan/new-york-halk-kütüphanesi-nin-public-domain-i̇çeriği-i̇nternete-açılmış-a027ed6a64cd

Leave a Comment

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s