In diesem Repo sammle und erforsche ich Daten, die sich auf Tracks in den Spotify -Charts beziehen. Ich baue auf der Arbeit auf, die ich in diesem Repo geleistet habe, wo ich schon eine Menge Sachen gemacht habe. Leider war die Datenverarbeitung in diesem Projekt sehr unordentlich, daher habe ich mich entschlossen, von vorne zu beginnen, um einen saubereren Datensatz zu erstellen.
Ich habe CLI -Skripte für das Abholen von Daten im Zusammenhang mit den Spotify -Diagrammen entwickelt. Sie finden sich im Subduller cli_scripts
dieses Projekts. Wie der Ordnername schon sagt, können die Skripte alle direkt aus der Befehlszeile aufgerufen werden. Sie können jedes Skript mit der Option -h
aufrufen, um Informationen über die akzeptierten Argumente zu erhalten (Beispiel: python cli_scripts/get_all.py -h
).
Zunächst habe ich Skripte zum Zusammenstellen von Daten für Tracks der Spotify Daily Top 200 ausgedacht. Leider sind diese Daten nicht über die API verfügbar. Darüber hinaus muss man die CSV -Dateien für jede Region herunterladen und separat verfolgen (durch Navigieren auf die Seite Spotify -Diagramme und Klicken auf die Download -Schaltfläche), die sehr unpraktisch ist.
Ich habe dies jedoch mit zwei Skripten zusammengearbeitet (siehe spotify_charts
-Unterordner):
download.py
: automatisiert den Prozess des Herunterladens von Diagrammen CSV -Dateien für mehrere Regionen (entweder alle oder eine durch Argumente angegebene Untergruppe) und einen bestimmten Datumsbereich (Start + Enddatum) mit selenium
(erfordert Spotify -Konto/Anmeldeinformationen!)combine_charts.py
: Kombiniert heruntergeladene Spotify -Chart -CSV -Dateien im angegebenen Verzeichnis in einer einzigen .parquet
-Datei Viele interessante Informationen und Metadaten über Musik auf Spotify können auch von der offiziellen API von Spotify abgerufen werden. Alle Skripte, die die Spotify -API verwenden (über die spotipy
Python API -Wrapper), finden Sie in spotify_api
:
get_track_metadata.py
: Fetches Track -Metadaten aus dem API -Endpunkt /tracks
-Endpunkt für eindeutige Track -IDs, die in einer bereitgestellten .parquet
-Datei erwähnt werden. Gibt einen Ordner aus mehreren Metadaten .parquet
-Dateien ausget_album_metadata.py
: macht dasselbe wie oben, nur für Alben anstelle von Tracks (mit dem API -Endpunkt /albums
)get_artist_metadata.py
: Fetches Artist Metadata für alle einzigartigen Künstler -IDs unter mehreren Eingabedateien (jeweils eine artists_id
-Spalte), und speichert auch Metadaten in einem Ordner wie die anderen Skripte obenget_all.py
: kombiniert alle Skripte, bekommt Track -Metadaten zuerst, dann Albummetadaten für alle Alben, die mit Tracks zugeordnet sind, und schließlich Künstlermetadaten für alle Track- und Albumkünstler. Leider sind die Informationen für Track -Credits (insbesondere Songwriter und Produzenten) auch über die öffentliche Spotify -API nicht verfügbar. Ich hatte jedoch eine Möglichkeit, das umzuarbeiten. Man kann die Anforderungs -Header extrahieren, die für bestimmte Anfragen von der Spotify -Web -App verwendet werden, z. B. beim Öffnen des Popups Show Credits
auf einer Track -Seite und wiederverwenden sie, um andere Anforderungen an denselben (inoffiziellen/internen) API -Endpunkt zu stellen.
Dieser Ansatz kann verwendet werden
# 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_2022
python cli_scripts/spotify_api/get_all.py -i data/top200_2022/charts.parquet
TODO: Fügen Sie den richtigen Befehl hinzu, sobald Skripte "fertig" sind (gut genug)
Um alles zum Laufen zu bringen, können Sie diese Anweisungen befolgen (vorausgesetzt, Sie haben eine aktuelle Version von Python installiert).
Wenn Sie möchten, können Sie eine neue Umgebung erstellen, z. B. mit conda
:
conda env create --name=spotify-charts-analysis
conda activate spotify-charts-analysis
Damit alle Skripte außerhalb des Box funktionieren können, können Sie einfach das helpers
-Paket durch Ausführen installieren
pip install -e .
Alternativ können Sie natürlich auch nur Pakete von einzelnen installieren, wenn Sie Probleme mit dem Versuch, Dinge auszuführen, lol ausführen
Track -Texte auf Spotify können falsch sein, selbst für ziemlich beliebte Songs (zum Beispiel dieser instrumentelle Track, der aus irgendeinem Grund Texte hat).