
In this blog, you will check how web scraping extracts the selected data from Billboard and Spotify.
The script below will consider a ‘year’ as input and will extract the Billboard top 100 songs website and create a playlist for you.
Logging in to the Spotify account if you are not registered previously.

After you’ve logged in, visit the developer dashboard and build a new Spotify app using the link below.

Insert the Client ID and Client Secret from your Spotify app into your Python code. Add http://example.com as your Referral URI by clicking on the App and then ‘Edit options’.
from bs4 import BeautifulSoup
import requests
import spotipy
from spotipy.oauth2 import SpotifyClientCredentials, SpotifyOAuth
CLIENT_ID = "xxxxxxxxxxxxxxxxxxxxxxxxxxxx" #Enter your own ID
CLIENT_SECRET = "xxxxxxxxxxxxxxxxxxxxxxxxxxx" #Enter your own Secret
YEAR = input("Which year do you want to travel to? Type the year in this format YYYY starting from 2006: ")
URL = f"https://www.billboard.com/charts/year-end/{YEAR}/hot-100-songs/"
response = requests.get(URL)
billboard_webpage = response.text
soup = BeautifulSoup(billboard_webpage, "html.parser")
songs = soup.select(selector="li ul li h3")
songs_list = [song.getText() for song in songs]
print(songs_list)
res = [s.replace('\n\n\t\n\t\n\t\t\n\t\t\t\t\t', '') for s in songs_list]
result = [s.replace('\t\t\n\t\n', '') for s in res]
song_names = result
print(result)
sp = spotipy.Spotify(
auth_manager=SpotifyOAuth(
scope="playlist-modify-private",
redirect_uri="http://example.com/",
client_id=CLIENT_ID,
client_secret=CLIENT_SECRET,
show_dialog=True,
cache_path="tokenNew.txt"
)
)
user_id = sp.current_user()["id"]
print(user_id)
#Searching Spotify for songs by title
song_uris = []
year = YEAR
for song in song_names:
result = sp.search(q=f"track:{song} year:{year}", type="track")
print(result)
try:
uri = result["tracks"]["items"][0]["uri"]
song_uris.append(uri)
except IndexError:
print(f"{song} doesn't exist in Spotify. Skipped.")
#Creating a new private playlist in Spotify
playlist = sp.user_playlist_create(user=user_id, name=f"{YEAR} Billboard Top 100", public=False)
print(playlist)
#Adding songs found into the new playlist
sp.playlist_add_items(playlist_id=playlist["id"], items=song_uris)
The application will take you to an ‘Example Domain’ website during execution, where you must copy the web URL and enter it into the console when prompted.
Only the Top 100 songs from 2006 are currently accessible. So, you put in 2006 or later as the year.

The above-mentioned Python script will help you to easily extract Billboard or Spotify data using Python.
For more information, contact X-Byte Enterprise Crawling today or request for a quote!





