Hey guys i have been using Navidrome to stream my music from my server and its been amazing. I primarily use YT Music because of discoverability so I have all of my “primary” playlists (about 8 of them really, but supporting a somewhat arbitrary limit would be nice) in YouTube.
Im looking for an automated way to download the music and keep my navidrome instance updated with a couple playlists. I started working on some Python script to handle it, but its just not working super well so i would prefer to use someone elses solution haha.
Anyone have any good recommendations? I tried this one but I couldn’t actually find the music and it seems to only support one playlist at a time. It would also be nice to download the album art and set some ID3 tags too
Yt-dlp is the gold standard for that.
https://github.com/yt-dlp/yt-dlp
Tag cleanup and album art are their own beast that you’ll wanna tackle post-download, but beets is another gold standard tool that can help with that layer.
If you prefer Rust, yaydl (disclosure: I wrote it) would be an alternative to yt-dlp. (Patches welcome - right now, I much depend on Invidious to get YouTube contents.)
+1 for Beets - awesome software!
Every single tool that downloads from YouTube is just a yt-dlp wrapper 😀
Yeah I am using yt-dlp to download the music, and I can set that on a cronjob no problem.
I am specifically asking for better downloading (I don’t want just the raw YouTube title most of the time), album art, and ID3 tagging. But that beets.io thing looks super cool! I might integrate that into my existing python scripting instead of trying to build it all out myself
Download with yt-dlp. All of it. Even into a single folder if that’s easier.
Then run it all through Picard and that’ll do everything else for you - albumart, metadata, folders, filenames, the lot.
Anything that Picard doesn’t know about, enter it into the MusicBrainz db to give back to the community.
Done.
JDownloader is the best for downloading anything from YouTube. It may also support YouTube Music