46
submitted 5 days ago* (last edited 5 days ago) by [email protected] to c/[email protected]

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

top 9 comments
sorted by: hot top new old
[-] [email protected] 1 points 2 days ago
[-] [email protected] 28 points 5 days ago* (last edited 5 days ago)

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.

https://beets.io/

[-] [email protected] 6 points 5 days ago* (last edited 5 days ago)

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!

[-] [email protected] 5 points 5 days ago

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

[-] [email protected] 7 points 5 days ago* (last edited 5 days ago)

Just to throw out an easy option: if the music is well-labeled on Youtube, you can get pretty close to that full suite with just yt-dlp by using --embed-thumbnail as a stand-in for album art, dumping your files with an “Artist - track - album” naming structure using the --output-template flag — then using an awk or python script as a second pass to add the artist/track/album names to each file as tags.

E: and in case it isn’t self-evident, you don’t have to give yt-dlp a URL for each track; it’ll work fine with a playlist URL.

[-] [email protected] 3 points 5 days ago

Haha unfortunately the music on YouTube is not especially well managed. Ive been using YouTube for music for a long time so a lot of my music is uploaded by Vevo or "{Artist} - Topic" and stuff like that. Plus (IIRC) YouTube music doesn't give things like what album a song is from or when it was released

[-] [email protected] 3 points 5 days ago

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.

[-] [email protected] 2 points 5 days ago

Every single tool that downloads from YouTube is just a yt-dlp wrapper 😀

[-] [email protected] 3 points 5 days ago

JDownloader is the best for downloading anything from YouTube. It may also support YouTube Music

this post was submitted on 11 Jun 2025
46 points (100.0% liked)

Selfhosted

46672 readers
1228 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 2 years ago
MODERATORS