YTMASC(YouTube Music Audio Scraper & synChronizer) is a wrapper around tools such as yt-dlp and ffmpeg that allows you to create fast&reproducible offline music libraries. Features are:
- Downloading, converting and tagging (in parallel!)
- Maintaining a data file for your music for an easily reproducible collection
- Lyric downloads
- Metadata fetching from YouTube
- More to be restored & implemented!
Important
You need yt-dlp, ffmpeg and magick binaries on your path.
| Description | Command |
|---|---|
| Show the help | ytmasc |
ytmasc -h |
|
ytmasc --help |
|
| Process the entire library | ytmasc run |
ytmasc run -w ./data/downloads/ --db ./data/library.json -f opus --download-extras "cover,lyric" --embed-extras "cover" |
|
| Process the entire library (in parallel) | ytmasc run --workers 5 |
| Download a single track | ytmasc download <id> |
ytmasc download <id> -w ./data/downloads/ --download-extras "cover,lyric" |
|
| Convert a single track | ytmasc convert <id> |
ytmasc convert <id> -w ./data/downloads/ -f opus |
|
| Tag a single track | ytmasc tag <id> |
ytmasc tag <id> -w ./data/downloads/ --db ./data/library.json --embed-extras "cover" |
![]() |
![]() |
![]() |
![]() |
- the artists whom pushed me to preserve what I like when services fumbled to do so
- the devs of the many dependencies!
| Package | Usage | License |
|---|---|---|
| Python ~=3.12 | Core language | PSFL |
| yt-dlp | Downloading files off of YouTube | Unlicense |
| FFmpeg | Required for the conversion of audio files | LGPLv2.1 |
| ImageMagick | Required for the conversion of image files | Custom |
| Package | Usage | License |
|---|---|---|
| click | CLI interface | BSD-3-Clause |
| mutagen | Tagging audio files | GPL-2.0 |
| pyinstaller | Compilation | GPLv2 |
| requests | Making requests | Apache-2.0 |
| rich_click | Prettified CLI interface | MIT |
| ytmusicapi | Metadata fetching | MIT |
This project is not in any way, shape or form affiliated with YouTube, Google or any of their subsidiaries and affiliates.



