본문 바로가기

Python/실습

[Spotify Web API] 특정 artist의 top 10 playlist 가져오기 / 파이썬 spotipy 라이브러리 사용

Spotify란

전세계 최대의 음원 스트리밍 서비스

 

그리고 spotify의 web api를 통해서 artists, tracks, playlists 등

유용한 여러 정보를 받을 수 있다.

 

단, 한국에선 막혀있기 때문에

브라우저의 VPN 우회기능으로 회원가입을 한 후 사용할 수 있다.

 

api를 이용하기 위해서는

로그인 후 dashboard에서 새로운 app을 생성한 후 client id와 client secret을 발급받아야 한다.

 

https://developer.spotify.com/documentation/web-api/

 

Web API | Spotify for Developers

Simply put, your app receives Spotify content through the Spotify Web API.

developer.spotify.com

 

Spotipy란

스펠링에 주의하자! Spotipy이다. Spotify가 아니라.

Spotipy는 Spotify web api를 위한 파이썬 라이브러리이다.

 

pip를 통해 간단히 설치할 수 있다.

$ pip install spotipy

https://spotipy.readthedocs.io/en/2.12.0/

 

Welcome to Spotipy! — spotipy 2.0 documentation

Authorization Code Flow This flow is suitable for long-running applications in which the user grants permission only once. It provides an access token that can be refreshed. Since the token exchange involves sending your secret key, perform this on a secur

spotipy.readthedocs.io

 

client id와 client secret을 export 명령어(윈도우는 set)를 통해 환경변수에 지정하라고 되어있는데,

간단한 실습이므로 코드상에서 직접 변수에 넣어 인자값으로 넘기는 것으로 사용하였다.

 

Charlie Puth의 top10 음원을 출력하는 예제이다.

 

from spotipy.oauth2 import SpotifyClientCredentials
import spotipy
import pprint


client_id = "YOUR_CLIENT_ID"
client_secret = "YOUR_CLIENT_SECRET"

lz_uri = 'spotify:artist:6VuMaDnrHyPL1p4EHjYLi7' # Charlie Puth

client_credentials_manager = SpotifyClientCredentials(client_id=client_id, client_secret=client_secret)
sp = spotipy.Spotify(client_credentials_manager=client_credentials_manager)

results = sp.artist_top_tracks(lz_uri)

# get top 10 tracks
for track in results['tracks'][:10]:
    print('track    : ' + track['name'])
    print('audio    : ' + track['preview_url'])
    print('cover art: ' + track['album']['images'][0]['url'])
    print()

 

 

끝!