Table of Contents
Musical Time Machine
🌐 English · Dansk · Bahasa Melayu
A solution to day 46 of Udemy's 100 Days of Code: The Complete Python Pro Bootcamp. Type a date, and the program scrapes the Billboard Hot 100 of that day and builds a private YouTube Music playlist from the songs, so you can listen to the music of a day that matters to you.
The wiki follows the four steps of the lecture. Each page shows what the step does, a screenshot, and what we gained: the technique the step teaches.
| Page | Read it when you want to |
|---|---|
| Setup and Run | Install the project in a .venv, create browser.json and run the tests |
| Step 1 - Scrape the Billboard Hot 100 | See how requests and BeautifulSoup turn a web page into a Python list |
| Step 2 - YouTube Music Authentication | See how ytmusicapi borrows your browser's login |
| Step 3 - Create the Playlist | See how to create something once and never twice |
| Step 4 - Search and Add Songs | See how a long loop keeps going when one item fails |
Overview
| Layer | What it holds |
|---|---|
domain |
Song, Playlist, the date rules and the errors |
application |
The use cases (scrape_titles, create_playlist, add_songs) and the ports they need |
infrastructure |
The Bakeboard scraper and the ytmusicapi adapter |
presentation |
The command line, which connects everything |
Every constant is in constants.py. The tests use a stored copy of the chart page and a fake YouTube Music, so they never need the network or an account.
Screenshots
Every step has a screenshot of a real run. For steps 2 to 4 the live run uses the author's browser.json (it is never published), and a second screenshot shows the tests with a fake YouTube Music.