Python application that scrapes Billboard’s Hot 100 Chart using BeautifulSoup, then exports the data to a CSV file and visualizes it in a Tailwind-powered web viewer.
🔗 Live Viewer: GitHub Pages Demo
| Column | Description |
|---|---|
| Image | Album artwork URL |
| Song | Song title |
| Artist | Artist or group |
| Last Week | Previous chart position |
| Peak | Highest chart position reached |
| Weeks | Number of weeks on chart |
# clone repository
git clone https://github.com/jsubroto/billboard-hot-100-web-scraper
cd billboard-hot-100-web-scraper
# install dependencies
uv sync
# run the scraper
uv run main.pyThis will generate billboard_hot_100.csv in the project root.
The latest scraped CSV is rendered automatically here:
👉 Live Billboard Hot 100 Viewer
Serve locally to test your own CSV:
uv run -m http.server 3000 -d docsThen open http://localhost:3000
The viewer uses PapaParse to read the CSV and Tailwind for styling.
If no localbillboard_hot_100.csvis found, you can upload one manually.
- The web viewer automatically displays album art, song, artist, and chart stats in a Billboard-style layout.
- Works with the generated CSV or any file following the same schema.
- For browser security reasons, fetching local files requires serving via HTTP (not
file://).
