27 lines
1.9 KiB
Markdown
27 lines
1.9 KiB
Markdown
# Trin 3 - Opret playlisten
|
|
|
|
🌐 **English** · [Dansk](Step-3-Create-the-Playlist-da) · [Bahasa Melayu](Step-3-Create-the-Playlist-ms)
|
|
|
|
## Hvad trinnet gør
|
|
|
|
Programmet opretter en privat playliste med navnet `{date} Billboard 100`, for eksempel `2026-04-18 Billboard 100`, med `yt.create_playlist(title, description, privacy_status="PRIVATE")`. Før det opretter noget, gennemløber det `yt.get_library_playlists()`; hvis der findes en playliste med samme titel, bruger det den.
|
|
|
|
```bash
|
|
python -m musical_time_machine --create-playlist
|
|
```
|
|
|
|
En rigtig kørsel med forfatterens `browser.json`: første kørsel opretter playlisten, anden kørsel opretter ingenting:
|
|
|
|

|
|
|
|
Skærmbilledet viser testene til dette trin med en falsk YouTube Music-tjeneste: det første kald opretter én playliste, og det andet kald for samme dato opretter ingen.
|
|
|
|

|
|
|
|
## Det lærte vi
|
|
|
|
- **Idempotens.** En handling, du kan køre to gange med samme resultat, er sikker at gentage. Ved først at tjekke for en eksisterende playliste fylder et nedbrud eller en ekstra kørsel aldrig biblioteket med dubletter.
|
|
- **Ét sted for et navn.** Playlistens titel og beskrivelse bygges af skabeloner i `constants.py` af én funktion, så tjekket og oprettelsen aldrig kan være uenige om titlen.
|
|
- **At læse en API's rigtige svar.** `create_playlist` returnerer playlistens id ved succes, men en fejlordbog ved fejl; adapteren tjekker, hvilket af dem den fik, og rejser en tydelig fejl.
|
|
- **Privatliv som standard.** Når playlisten oprettes som `PRIVATE`, udgiver en testkørsel aldrig noget.
|