Appleは、iTunes Storeやその他のディレクトリに変なしかし単純な検索APIがあることを実際には宣伝していません。そのため、私はそれについて書くことにしました。この投稿から、APIの機能と使用方法について学びます。
Appleディレクトリを検索
APIは、iTunes Store、iBooks Store、Apple Podcast、およびApp Storeのコンテンツを検索します。したがって、曲、映画、本、ポッドキャスト、アプリケーションを見つけることができます。
APIは、長い間忘れられていたJSONP原則に基づいて機能します。つまり、API Content-Type: text/javascript
は通常のものの代わりに戻りますapplication/json
。
GET /search?media=podcast&term=python HTTP/1.1
Host: itunes.apple.com
Accept: application/json
HTTP/2 200
content-type: text/javascript; charset=utf-8
{...}
, :
import requests
def search(term, media):
url = "https://itunes.apple.com/search"
payload = {"term": term, "media": media}
response = requests.get(url, params=payload)
response.raise_for_status()
results = response.json().get("results", [])
return results
>>> results = search("python", media="podcast")
>>> results[0]["collectionName"]
'Talk Python To Me'
:
term
— , ;media
— (movie
,podcast
,music
,audiobook
,software
,ebook
,all
),all
;country
— , ISO- (us
,ru
, ...),us
;limit
— ,50
.
, :
import requests
def search(term, media="all", country="us", limit=10):
url = "https://itunes.apple.com/search"
payload = {"term": term, "media": media, "country": country, "limit": limit}
response = requests.get(url, params=payload)
response.raise_for_status()
results = response.json().get("results", [])
return results
:
{
"resultCount": 10,
"results": [
{
"wrapperType": "track",
"kind": "song",
"artistId": 1495668306,
"collectionId": 527039271,
"trackId": 527039276,
"artistName": "Dodge & Fuski",
"collectionName": "Never Say Die (Deluxe Edition)",
"trackName":"Python",
...
},
{
"wrapperType": "track",
"kind": "podcast",
"collectionId": 979020229,
"trackId": 979020229,
"artistName": "Michael Kennedy (@mkennedy)",
"collectionName": "Talk Python To Me"
...
},
...
]
}
(kind
) , . :
artistId
— ;artistName
— ;artistViewUrl
— Apple;collectionId
— ;collectionName
— ;collectionViewUrl
— Apple;trackId
— ;trackName
— ;artworkUrl100
— 100x100 ;country
— ;primaryGenreName
— .
— podsearch, .
(artistId
, collectionId
, trackId
), lookup
:
import requests
def lookup(object_id):
url = "https://itunes.apple.com/lookup"
payload = {"id": object_id}
response = requests.get(url, params=payload)
response.raise_for_status()
results = response.json().get("results", [])
return results
>>> results = lookup(979020229)
>>> results[0]["collectionName"]
'Talk Python To Me'
Content-Type . :
- (
country
) , . ISO- (ru
), — (RUS
). - .
- Apple API 20 .
Apple WebサイトのAPIの説明
Podcast検索パッケージ