learning from 100 Days of Code: The Complete Python Pro Bootcamp for 2022
(Python package) spotipy 2.19.0
# constant
import requests
import spotipy
from bs4 import BeautifulSoup
from spotipy.oauth2 import SpotifyOAuth
from spotipy.oauth2 import SpotifyClientCredentials
import pprint
URL = "https://www.billboard.com/charts/hot-100/2000-08-12/"
SPOTIFY_CLIENT_ID = YOUR OWN CLIENT ID
SPOTIFY_CLIENT_SECRET = YOUR OWN CLIENT SECRET
SPOTIFY_URL = "http://example.com"
ACCESS_TOKEN = YOUR OWN ACCESS TOKEN
scope = "playlist-modify-private"
PLAYLIST_ID = YOUR OWN PLAYLIST ID
# scarbe 100 Songs's title from wesite
response = requests.get(url=URL)
html_content = response.text
soup = BeautifulSoup(html_content, "html.parser")
song_codes = soup.find_all(name="h3", id="title-of-a-story", class_="a-no-trucate")
# get access token
sp = spotipy.Spotify(auth_manager=SpotifyOAuth(scope=scope,
client_id=SPOTIFY_CLIENT_ID,
client_secret=SPOTIFY_CLIENT_SECRET, redirect_uri=SPOTIFY_URL))
results = sp.current_user_saved_tracks()
for idx, item in enumerate(results['items']):
track = item['track']
print(idx, track['artists'][0]['name'], " – ", track['name'])
# get user id
client = spotipy.client.Spotify(auth=ACCESS_TOKEN)
user_id = client.current_user()["id"]
print(user_id)
# create a new playlist
sp.user_playlist_create(user=user_id, name="Billboard 100", public=False)
# search song's url & add to tha playlist
sp = spotipy.Spotify(client_credentials_manager=SpotifyClientCredentials(client_id=SPOTIFY_CLIENT_ID,client_secret=SPOTIFY_CLIENT_SECRET))
song_urls = []
for song in song_codes:
song_title = song.get_text()[14:].split("\t")[0]
track_url = sp.search(song_title)["tracks"]["items"][0]['external_urls']['spotify']
song_urls.append(track_url)
sp.playlist_add_items(playlist_id=PLAYLIST_ID, items=song_urls)