このレポでは、Spotifyチャートに掲載されているトラックに関連するデータを収集および探索します。私はこのレポで行った作業に基づいて、すでにかなりのことをしました。残念ながら、このプロジェクトのデータ処理は本当に面倒だったので、クリーンなデータセットを作成するためにゼロから開始することにしました。
Spotifyチャートに関連するデータを取得するためのCLIスクリプトを思いつきました。これらは、このプロジェクトのcli_scriptsサブフォルダーにあります。フォルダー名が示すように、スクリプトはすべてコマンドラインから直接呼び出すことができます。 -hオプションを使用して各スクリプトを呼び出して、受け入れられた引数に関する情報を取得できます(例: python cli_scripts/get_all.py -h )。
最初に、Spotify Daily Top 200のトラックのデータをアセンブルするためのスクリプトを思いつきました。残念ながら、このデータはAPIで使用できません。さらに、各リージョンのチャートCSVファイルをダウンロードし、個別に(Spotifyチャートページに移動してダウンロードボタンをクリックすることにより)非常に不便なものを追跡する必要があります。
ただし、2つのスクリプトを作成することでこれを回避しました( spotify_chartsサブフォルダーを参照):
download.py :いくつかの領域(引数を介して指定されたすべてまたはサブセットのいずれか)と特定の日付範囲(開始 +終了日)のチャートseleniumファイルをダウンロードするプロセス(Spotifyアカウント/資格情報が必要です!)を自動化します。combine_charts.py :指定されたディレクトリにあるダウンロードしたSpotifyチャートCSVファイルを単一の.parquetファイルに組み合わせますSpotifyの音楽に関する多くの興味深い情報とメタデータも、Spotifyの公式APIから取得できます。 Spotify APIを使用して( spotipy Python APIラッパー経由)すべてのスクリプトは、 spotify_apiにあります。
get_track_metadata.py feetches /tracks api endpointからmetadataを作成します.parquetいくつかのメタデータ.parquetファイルのフォルダーを出力しますget_album_metadata.py :上記と同じことを行い、トラックの代わりにアルバムのみで行います( /albums APIエンドポイントを使用)get_artist_metadata.py :いくつかの入力ファイル(それぞれがartists_id列を持っている)のすべての一意のアーティストIDのアーティストメタデータを取得し、上記の他のスクリプトのようなフォルダーにメタデータも保存しますget_all.py :すべてのスクリプトを組み合わせて、最初にトラックメタデータを取得し、次にトラックに関連付けられたすべてのアルバムのアルバムメタデータを、最後にすべてのトラックおよびアルバムアーティストのアーティストメタデータを組み合わせます。残念ながら、トラッククレジット(具体的には、ソングライターとプロデューサー)の情報も、Public Spotify APIを介して利用できません。しかし、私はそれを回避する方法を思いつきました。 Spotify Webアプリによって行われた特定のリクエストに使用されるリクエストヘッダーを抽出できます。たとえば、トラックページでShow Creditsポップアップを再利用して、同じ(非公式/内部)APIエンドポイントに他のリクエストを作成することができます。
このアプローチは使用できます
# download CSVs; might take a loooong time, can be interrupted and restarted/resumed later
python cli_scripts/spotify_charts/download.py -s 2022-01-01 -e 2022-12-31 -o data/scraper_downloads
# combine downloaded CSVs into single parquet file
python cli_scripts/spotify_charts/combine.py -o data/top200_2022python cli_scripts/spotify_api/get_all.py -i data/top200_2022/charts.parquetTODO:スクリプトが「完成」したら適切なコマンドを追加します(十分に良い)
すべてを機能させるには、これらの指示に従うことができます(最近のバージョンのPythonがインストールされていると仮定します)
必要に応じて、 condaを使用して、新しい環境を作成できます。
conda env create --name=spotify-charts-analysis
conda activate spotify-charts-analysis
すべてのスクリプトをすぐに動作させるには、実行してhelpersパッケージを単純にインストールすることができます
pip install -e .
あるいは、もちろん、パッケージを1つずつインストールすることもできます。
Spotifyでのトラックの歌詞は、かなり人気のある曲であっても間違っている可能性があります(たとえば、何らかの理由で歌詞があるこのインストゥルメンタルトラック)。