Pythonを使用して映画、書籍、ポッドキャストを検索する

ポッドキャストを見つけるためのPodsearchパッケージ



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検索パッケージ



Pythonでもっと面白いものをしたい場合- @ohmypyチャンネルに登録してください




All Articles