2
Home
Tirsvad edited this page 2026-10-28 08:13:57 +01:00

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.