JXAとpandasで音楽再生履歴を集計してみたらだいたいaikoだった話
普段,WindowsでもMacでも基本的にiTunes or Musicアプリを使用して音楽を聞いている.使用している携帯もiPhoneだったりiPadも使っていたりと基本的にAppleのサービスを使用している.以前
みたいなことをしたのだが,今回は自分の再生履歴なんかを見てみたいと思ったので,JXAを使って集計を行ってみた.
実行環境
- macOS Catalina 10.15.1
- pyenv 1.2.15
- pipenv, version 2018.11.26
ちなみに今回のネタは,以下のQiitaの内容を大いに参考にさせていただきました.もはや参考というよりそのまま使用しています.大変参考になりました🙇♂️ qiita.com
Musicアプリから楽曲情報を取得する
先程の記事中ではiTunesとなっていましたが,iTunes
の音楽再生機能はCatalina
からMusic
というアプリケーションに変更となりました.
そこで,1行目のApplication('iTunes')
の箇所はApplication('Music')
となります.
function run(){ const musicApp = Application('Music'); const music = musicApp.playlists[1]; const tracks = music.tracks.properties(); return JSON.stringify(tracks); }
それ以外は全部一緒.このスクリプトをgetTracks.js
として保存し,
$ sascript -l JavaScript getTracks.js > tracks.json
とすると,全ての情報がtracks.json
に吐き出されます.
集計してみる
再生回数上位10曲
すべての楽曲を対象として,再生回数が上位10曲を抽出.
df.groupby('name') \ .apply(lambda df: pd.Series([df.albumArtist.iloc[0], sum(df.playedCount)], index=['artist', 'playedCount'])) \ .sort_values('playedCount', ascending=False) \ .head(10) \ .reset_index()
これはaikoランキングかな?
aiko以外も入ってるんですが,aikoが圧倒的すぎて他が入ってこなかった.
アーティストごとの再生回数
今度はアーティスト別に再生回数を集計し,上位10人を抽出.
df.groupby('artist')['playedCount'].sum() \ .drop('') \ .drop('VARIOUS ARTISTS') \ .sort_values(ascending=True) \ .tail(10) \ .to_frame() \ .plot(kind='barh')
やっぱaikoなんだよな.2位のSHISHAMOと桁が2つ違っている. SHISHAMOそんなに聞いてたのか…となったし,伊藤美来さんに関しては今年聞いたばっかりなんだよな.不思議.
最近髭男すごい人気ですよね.YouTuberでのMV再生数もすごいことになってる.髭男を知ったきっかけはaikoがラジオでおすすめしていたからなのだけど,実際すごく良くて今でもたまに聞いている.好きな楽曲は「ラブとピースは君の中」というアルバムに入っているSWEET TWEET
なので聞いてみて欲しい.
2019年にアツかった楽曲
2019年に追加された曲に絞って,よく聞いたもの上位10曲を抽出.
df[df.dateAdded > '2019'] \ .groupby('albumArtist')['playedCount'].sum() \ .sort_values(ascending=False) \ .head(10) \ .to_frame() \ .plot(kind='bar')
もはや何も驚かなくなった.あ,伊藤美来さんの最新アルバムPopSkip
はおすすめです.
aikoのアルバムランキング
ここまで来るとaikoのアルバムの内訳が気になってくるので集計.
df[df.albumArtist == "aiko"] \ .groupby('album')['playedCount'].sum() \ .sort_values(ascending=True) \ .tail(10) \ .plot(kind='barh')
なんとまとめ
を抑えて時のシルエット
が1位になっていた.
普段から時のシルエット
激推しの私ですが,
時のシルエットは名盤すぎるので全人類聞いて欲しい #うたことば
— くまさん (@bath_poo_) December 15, 2019
その通りの結果になりましたね.
music.apple.comMay Dream
は初めて発売日にかったaikoのアルバムで結構きいたなーと思っていたんですが,時のシルエット
のほうが聞いていたのか…
まとめ
こいついつもaiko聞いてんな.試してみたい方は以下からどうぞ.