はじめに
以下の記事で、Spotify APIの使い方がなんとなく分かったので、今度は簡単なデータ分析みたいなことをしてみようと思います。
お題は、たまたま読んだ記事から着想を得ました。
ジェイ氏が指摘するように海外においてはストリーミングサービスの普及により、楽曲の尺や、イントロなどの構成に顕著な変化が見られた。例えば、アメリカのチャートトップテンの楽曲の平均は3分7秒だ。一方で日本のシングルチャートにおける上位10曲の平均は4分34秒と、アメリカの分数より1分以上も長い(参考:logmiBiz)
要するに、サブスクで(曲が)かかった瞬間にすぐに口ずさめるよう、さっきのTikTokの話じゃないけれども、5秒で引き込むために、曲を凝縮しているんです。サブスクが変えちゃったのは、曲の単位で、このアメリカの曲の短さを見てください。2分53秒、3分24秒……トップテンの平均が3分7秒。
(スライドを指して)これは今の日本のチャートです。日本のシングルチャートなどを見ていると、ここら辺は共作していますね。キンプリ(King&Prince)やジェネレーションズ(GENERATIONS)は共作していますが、見てこれ。
曲の長さの違い。軒並み4~5分でしょ。アメリカが平均3分7秒。日本は4分34秒。要するに、聴かれ方、受け取られ方が違うので、曲の構成・構造まで変わってきてしまったわけ。
確かによく耳にする話ですし、感覚的にも楽曲の長さが短くなっているように思いますが、実際のところ、本当にそうなのでしょうか?
また、アメリカ以外もそういった傾向があるのでしょうか?
すでにこういった検証をされている方はいるかと思いますが、勉強も兼ねて、そのあたりを簡単に検証してみたいと思います。
楽曲の長さをSpotify APIから取得する
楽曲の長さをどうすれば取得できるか?については、以下の記事が非常に参考になりました。
こんな感じのロジックにしてみます。
- Spotify Chartsのサイトより、以下の条件のCSVデータを取得(計32ファイル)
- 種類:TOP200、VIRAL50
- 国:GLOBAL、UNITED STATES、UNITED KINGDOM、JAPAN
- 日付:2017,2018,2019,2020の1/23
- CSVファイルに記述された楽曲のURLから、楽曲の長さ等の情報を取得する
- 種類、国ごとに、楽曲の長さの平均を計算し、表にする
- 表をグラフ化して可視化する
データ量が多いので、そこそこ時間かかりますが、やっていることはシンプルです。
なお、CSVファイルについては、以下の2点のみ、コードを書くのが面倒だったので手動で編集してしまいました。
- TOP200のCSVファイルは1行目にCSV形式でない文言が入ってしまっているため、手動で削除しました。
- CSVファイルはファイル名の末尾に"latest"や"2019-01-23"といったような日付情報が付加されていますが、あまり考えずにコードを書いてしまったため、そういった日付情報は手動で削除して読み込むことにしました。
ちなみにフォルダ構成はこんな感じになっています。
C:.
│ track_length.ipynb
│ ⇒実行ファイル
└─track_length
├─2017
│ ⇒2017/01/23のcsvを8ファイル格納
├─2018
│ ⇒2018/01/23のcsvを8ファイル格納
├─2019
│ ⇒2019/01/23のcsvを8ファイル格納
├─2020
│ ⇒2020/01/23のcsvを8ファイル格納
└─csv
⇒途中経過のファイルを出力
分析結果
では結果です。出力結果の画像を貼ります。
良い感じのグラフが作れなかったので、単純な棒グラフですが、これだけでも以下のようなことが言えるのではないかと思います。
- 日本以外の国は、確かに楽曲が短くなっている傾向がある
- 日本はほぼ横ばいである(若干長くなっているとも言えなくはないか)
- topチャートとviralチャートで、違いは見られない
他の国や他の日付など別条件でやってみたら、また違う結果がでるかもしれませんが、今回の分析では、確かに世界の傾向としては楽曲の長さは短くなっているものの、日本にはその傾向が見えないという結果になりました。
使用したソースは以下です。今回は楽曲の長さのデータしか使っていませんが、audio_features(url)の関数では、楽曲のジャンル等々の様々な楽曲情報が取得できるため、こういったデータとの相関等も見てみても面白いと思いますが、今回はこの辺りにしよう思います。