samiul@portfolio:~/projects/musicdl$ cat README.md
14 musicdl
A CLI for YouTube Music playlists with full tags and cover art. Re-runs fetch only what's missing.
samiul@portfolio:~/projects/musicdl$ cat problem.txt
The usual path is a global yt-dlp install that breaks on upstream changes, a pile of flags, and untagged files.
samiul@portfolio:~/projects/musicdl$ cat build.log
A Python CLI around a pinned nightly yt-dlp in a bundled venv, with Node on PATH to solve YouTube's JavaScript challenges. It downloads to MP3 via ffmpeg (or keeps the original opus), embedding title, artist, album, track number, year and cover art. An archive file makes re-runs incremental, failed tracks retry in rounds, and browser cookies unlock private playlists.
samiul@portfolio:~/projects/musicdl$ cat highlights.txt
- Full metadata and embedded cover art
- Resumable: re-run fetches only the missing tracks
- Pinned nightly yt-dlp in a bundled venv
- Browser cookies for private and age-restricted playlists
samiul@portfolio:~/projects/musicdl$ cat stack.toml
# musicdl
lang = "python"
engine = "yt-dlp nightly (pinned venv) + node"
out = "mp3 via ffmpeg, or opus"
resume = "archive file, retry rounds"
stack = ["Python", "yt-dlp", "ffmpeg"]
samiul@portfolio:~/projects/musicdl$ git remote -v
origin github.com/SamiulH25/musicdl