よくわからないエンジニア

よく分からないエンジニアの日々の記録

よくわからないエンジニア

itunesのapiを使ってみる(音楽チャート)

タイトルの通りです。
2月頭にPale Wavesのアルバムを購入しました。たまたまyoutubeのオススメに出てきた「Television Romance」のPVを見たことがきっかけでドハマリしたのですが、どうやらitunesのJPチャート(オルタナ)でも一位を獲得していた模様。

hostess.co.jp

こういう良い音楽との出会いを逃さないように、定期的にチャートを観測しようかと画策して、itunesのapiについて調べました。

目次

下調べ

ちょっと調べていると、ジャンルごとのランキングをRSSで取得できることがわかった。
例えば、日本のitunesのトップソングランキング25 オルタナティブロック だと以下のURLになる。

https://itunes.apple.com/jp/rss/topsongs/limit=25/genre=20/json

jpの部分をusに変えれば、アメリカ。gbに変えれば英国になる。
limitの数字を25から50に変えればトップ50まで引っ張ってこれる。
genreの数字を21に変えればRock、1006に変えればPunk等、結構細かいジャンルの音楽を引っ張ってこれる。ジャンルの数字の対応表は以下。

affiliate.itunes.apple.com

こんな感じでとりあえず必要なjsonは入手出来た。

実装

とりあえず情報取得して表示するだけなら以下のようにpythonを書けばオッケー。

import json
import urllib.request

url = urllib.request.urlopen('https://itunes.apple.com/jp/rss/topsongs/limit=30/genre=20/json')
rank = url.read()

encodeing= url.info().get_content_charset('utf-8')
jsonDecodeing = json.loads(rank.decode(encodeing))

for kind in jsonDecodeing['feed']['entry']:
    print ( kind['im:name']['label'] + ' - ' + kind['im:artist']['label'] + ' - ' + kind['im:releaseDate']['label'])

実行すると以下結果が取得できた(2019/2/5)。

小さな恋のうた - MONGOL800 - 2001-09-16T00:00:00-07:00
Slumberland - King Gnu - 2018-12-14T00:00:00-07:00
あなたに - MONGOL800 - 2001-09-16T00:00:00-07:00
Prayer X - King Gnu - 2018-08-10T00:00:00-07:00
High Hopes - パニック!アット・ザ・ディスコ - 2018-06-22T00:00:00-07:00
Vinyl - King Gnu - 2017-09-29T00:00:00-07:00
On Our Way - ザ・ロイヤル・コンセプト - 2013-09-24T00:00:00-07:00
Prayer X - King Gnu - 2019-01-16T00:00:00-07:00
It's a small world - King Gnu - 2019-01-16T00:00:00-07:00
Dirty Party feat. エビーバー - 輝夜 月 - 2018-12-09T00:00:00-07:00
Tokyo Rendez-Vous - King Gnu - 2017-08-04T00:00:00-07:00
Life goes on - Dragon Ash - 2002-01-23T00:00:00-07:00
どうしよう - Tempalay - 2018-09-26T00:00:00-07:00
MY FIRST KISS - HI-STANDARD - 2000-04-05T00:00:00-07:00
STAY GOLD - HI-STANDARD - 1999-06-30T00:00:00-07:00
The hole - King Gnu - 2019-01-16T00:00:00-07:00
bury a friend - ビリー・アイリッシュ - 2019-01-30T00:00:00-07:00
Fantasista - Dragon Ash - 2003-07-23T00:00:00-07:00
Flash!!! - King Gnu - 2018-07-13T00:00:00-07:00
Let Me Hear - Fear, and Loathing in Las Vegas - 2015-09-30T00:00:00-07:00
A Sky Full of Stars - コールドプレイ - 2014-05-02T00:00:00-07:00
Return to Zero - Fear, and Loathing in Las Vegas - 2017-10-25T00:00:00-07:00
The Greatest Show - パニック!アット・ザ・ディスコ - 2017-12-08T00:00:00-07:00
Rave-up Tonight - Fear, and Loathing in Las Vegas - 2014-01-15T00:00:00-07:00
Sorrows - King Gnu - 2019-01-16T00:00:00-07:00
honeymoon - MONGOL800 - 2018-08-08T00:00:00-07:00
Flash!!! - King Gnu - 2019-01-16T00:00:00-07:00
Beyond the Moon - 輝夜 月 - 2018-08-29T00:00:00-07:00
陽はまたのぼりくりかえす - Dragon Ash - 1998-09-02T00:00:00-07:00
Just Awake - Fear, and Loathing in Las Vegas - 2012-01-11T00:00:00-07:00

今何年だっけ??そもそも全然オルタナじゃねぇだろ…
これを見る限りJPのジャンル分けはあんまり役に立たないのかも。とりあえず活用方法を考えます。