Membedah Selera Musik Indonesia dengan API Spotify dan Seaborn

Platform Spotify bisa membantu kita memberikan informasi tentang selera musik di sebuah negara bahkan dunia.

Krisna Renaldi
6 min readSep 6, 2021
Photo by Kajetan Sumila on Unsplash

Ini adalah artikel seri terakhir yang berkaitan dengan Spotipy. Silahkan baca artikel saya sebelumnya di:

Anda bisa baca artikel ini versi bahasa Inggris di sini.

Menurut Statista, total jumlah pengguna premium Spotify adalah 165 juta. Belum ada info jumlah pengguna yang pakai Spotify gratisan. Saya tertarik dengan platform Spotify karena teknologinya yang rumit (sophisticated) untuk memberikan rekomendasi untuk usernya dan kemungkinan besar menggunakan machine learning sesuai minat saya.

Artikel ini terinspirasi dari lagu Project Pop yang berjudul “Dangdut is the Music of My Country”. Lagu ini dirilis tahun 2003 dalam album “Pop OK”. Setelah 18 tahun berlalu (2021), apakah dangdut masih menjadi the music of my country? Kita bisa gali jawabannya melalui data Spotify untuk tahu informasi preferensi selera musik kita.

Jadi, tunggu apa lagi? Ikuti saya. The truth is out there, my friend.

Data Akuisisi:

Seperti di artikel pertama saya, Spotify melalui halaman Spotifychart secara harian dan mingguan mengeluarkan “Top 200” chart bedasarkan regional global dan negara. Untuk keperluan analisa ini, saya melakukan scrap data dari 1 Jan 2020 — Q2 2021 (30 Juni 2021). Jangan khawatir, scrap ini adalah legal.

Hasilnya adalah sebanyak 109.199 URL. Dan setelah proses data cleaning, didapat 504 artis solo/grup dan 1258 lagu.

Gbr 1: Hasil scrap dalam format csv

Untuk proses scrap bisa baca di sini.

Web Spotify API digunakan ambil meta data lagu dan artis. Daftar dulu di sini sebagai Spotify developer. Kita akan mendapatkan client_id dan client_secret. Dengan memakai API Spotify, kita bisa dapat info artis (genre, follower, populartity) dan info lagu (danceablity, energy, valence, dll).

Gbr 2: Hasil API Spotify: Kiri: json artis, Kanan: json lagu

Biasanya, data disimpan dalam csv, namun sekarang saya simpan dalam format database, di MySQL.

Analisa: Spofity Chart

Kita load data menggunakan bantual Python toolkit sql alchemy:

from sqlalchemy import create_engine#connect db
my_conn = create_engine("mysql+mysqlconnector://root:root@localhost:8889/spotifyfinal")
sql = "SELECT position,track_id,track,artist,url,stream, chart_date FROM charts c ORDER by chart_date,position"df = pd.read_sql(sql,my_conn,parse_dates=True)

Saya mulai dengan melihat data chart dari Spotifychart. Dan berikut adalah hasilnya.

Gbr 3:Grafik top 20 lagu vs jumlah stream, angka sumbu X dalam puluhan juta

Artis dengan jumlah kemunculan di top 200 daily chart Spotify:

Gbr 4: Artis dalam negeri dominan dalam grafik top 20 feature artist.

Bagaimana dengan jumlah kemunculan lagu dalam Spotifychart?

Gbr 5: Lagu lokal cukup dominan dibandingkan kemunculan lagu asing.

Tidak semua lagu top jumlah stream adalah lagu yang sering diputar di Spotify.

Presentase jumlah lagu asing dan lokal.

Gbr 6

Analisa: Artis

Berikut adalah data artis dari API Spotify.

sql = "SELECT name,followers,genre,one_genre,popularity,url FROM artists ORDER BY name ASC"df = pd.read_sql(sql,my_conn,parse_dates=True)
Gbr 7

Saya relasikan artis dengan jumlah follower:

Gbr 8

Tidak ditemukan artis dalam negeri top 30. Kita bisa melihatnya dalam grafik di bawah ini (jumlah follower dalam range jutaan):

Gbr 9: Sheila on 7 adalah top artis/band Indonesia

Setiap artis tentunya mempunyai genre masing-masing. Untungnya, Spotify sudah memetakan genre untuk tiap artis. Sekarang, kita lihat genre dengan jumlah follower.

Gbr 10

Secara keseluruhan, genre yang diminati pemirsa Spotify Indonesia adalah “dance pop”, “pop”, “k-pop”. Jika dibuat chart genre untuk musik dalam negeri maka hasilnya adalah sebagai berikut:

Gbr 11

Akhirnya setelah melakukan zoom data, genre dangdut pun ditemukan tapi bukan menjadi urutan pertama. Setidaknya, sudah terdapat gambaran mengenai selera musik tanah air.

Analisa: musik

Spotify mengeluarkan meta data lagu yang oleh mereka sebut dengan “audio feature”. Dan ini adalah penjelasannya:

Gbr 12

Nilai item-item ini dalam range 0–1 kecuali “loudness” dan “tempo”. Saya ekstrak setiap lagu untuk mendapatkan audio feature.

Gbr 13

Saya plot relasi semua item di audio feature.

Gbr 14

Mohon maaf jiga gambarnya tidak jelas, silahkan simpan gambar di komputer dan zoom in. Secara garis besar, beberapa hal menarik sebagai berikut:

  • “energy” dan “valence” saling berhubungan linear. Semakin besar nilai valence maka nilai energy ikut bertambah.
  • “mode” bisa didrop untuk analisa ini.
  • “danceability” ,“energy”, “loudness” mempunyai korelasi kuat.
  • “acousticness” dan “energy” mempunyai korelasi negatif, dan ini cukup masuk akal.

Untuk dapat insight lebih dalam lagi, saya ambil top 100 lagu berdasarkan jumlah stream seperti di Gbr 3, kemudian hitung nilai rata-rata setiap item di audio feature. Dan saya lakukan hal yang sama untuk keseluruhan lagu. Terakhir, saya plot dalam radar chart:

Gbr 15

Tampak top 100 lagu mempunyai skor yang relatif sama dengan lagu secara keseluruhan. Keduanya mempunyai skor “danceabilty”, “energy”, “valence” di angka 0,55 ~ 0.6.

Tips buat para pencipta lagu / komposer dan produser lagu, buatlah lagu dengan skor danceability, valence, energy diatas 0,5 karena lagu tipe inilah yang sedang diminati di tanah air :).

Ini sesuai dengan Gbr 10, bahwa selera musik pemirsa Spotify Indonesia cenderung kepada lagu yang mempunyai aura positif (skor valence ~0.6) dan menari (skor “danceability” ~0.6). Sekarang kita bisa ambil kesimpulan.

Kesimpulan

Hasil analisa chart, artis, dan musik, saya bisa sampaikan kesimpulan sebagai berikut:

  • Porsi stream lagu asing masih besar dibanding lagu tanah air.
  • Sheila on 7 adalah artis yang masih diminati walau jarang rilis single / album dan untuk artis luar negeri adalah Ed Sheeran
  • Lagu yang sering muncul di top 200 Spotifychart (feature song) tidak menjamin menjadi top song (jumlah stream terbesar)
  • Secara keseluruhan, genre “dance pop” dan “k pop” sangat diminati dan genre untuk musik lokal yang diminati adalah “indonesian pop” dan “indonesian jazz”.

Penutup

Data Spotify belum bisa mencerminkan minat penikmat musik tanah air tapi bisa membantu untuk melihat peta musik saat ini. Ada beberapa faktor seperti keterbatasan koneksi internet karena kondisi geografi dan ekonomi yang bisa berakibat tidak semua warga tanah air bisa akses platform Spotify.

Terima kasih sudah membaca. It was a fun journey.

Let data inspire you.

Bonus: word cloud dari beberapa genre musik tanah air.

[1] Halimah Tusyakdiah, Exploratory Data Analysis for Top 50 Spotify Songs in Python

[2] Lehak Narnauli, Analyzing the Spotify dataset to gain insights in the music industry

--

--

Krisna Renaldi

Web Developer, love back-end, math, physics and data scientiest