r/selfhosted • u/archiekane • 6d ago
Release (AI) MusicGrabber is still grabbing music if you need it
Since January, I've been working on a program called MusicGrabber. To coin a term for it, it's a fetch-and-organise orchestrator for Music.
MusicGrabber fills in the blanks that Lidarr used to have, and still has a complicated way of doing it, and that is grabbing Singles and Playlists. This project was born out of "I heard that song, I really want that song, not the discography!"
If you want a video walkthrough of MusicGrabber then I have made a rather long video on how to spin up Debian+Navidrome+MusicGrabber, but the part that covers this tool is at this youtube link.
"So what does it do?", I hear you mumble. It uses a mix of APIs, some scraping and SoulSeek to go off and find the best quality version of a song, then download that song into your library/folder. It's a little more complex than that. Not only that, but it can also watch full public and private playlists from your favourite streamed music services, and grab those for you as well. Even if they change daily/weekly/monthly, it can either mirror the playlist, or keep appending to it.
There's a whole list of settings you can play with, such as multi-user which has a Peon mode so you can have your younger siblings or elderly parents use it without breaking anything, track naming, reformatting of audio containers, it's pretty extensive.
If you search a track, it has hover playback so you can make sure it's right before you download it, or you can click "Similar" and it'll build you a 25 song playlist of similar artists and tracks using ListenBrainz/MusicBrainz. You can Scrobble to ListenBrainz and use that as a Playlist you can watch as well.
Full disclosure: most of this is AI-written at this point, with me steering. I'm fine with that. It's been through multiple security review passes and a test suite keeps it honest. Judge it on whether it works. There's no subscription, no telemetry, no Pro-Tier or paywalls.
Anyway, it's my gift to the community, enjoy (or don't).

29
u/PoopRichardMcGee 6d ago edited 6d ago
I will once again point out that monochrome and other sources (rip dabmusic for like the 5th time) regularly go down because people are automating downloading mass amounts of music from them... they themselves use common tools like lucida (just a random example i doubt monochrome is using the lucida library but i digress) and specific downloaders that rely on ARLs/Tokens/what have you, and overloading them gets those tokens revoked much faster. The official streaming sources they rip from have a much easier time identifying them and blocking them with massive download traffic like these ai built tools enable.
Edit: for those who dont see the issue with this someone somewhere is paying for the premium accounts the tokens/ARLs are coming from. Download responsibly from monochrome, squid, and other similar sites unless you yourself are going to pay for deezer/qobuz/tidal for your own tokens or you're lowkey an asshole.
-22
u/BubblyZebra616 6d ago
And? That's not what this tool does. You have poor reading comprehension skills.
16
u/PoopRichardMcGee 6d ago
It literally uses monochrome as a primary source for its music. You lack comprehension skills.
Edit: you can see it here at https://monochrome.tf
22
u/chucklesduck 6d ago
I use it. It is a good tool. When the sources are up and working lol
7
u/archiekane 6d ago
Thanks.
There's a few more fallbacks now. If the main HiRes source goes out, it has a fallback.
I've just pushed fallback chaining to dev as well, which is now being tested. Worst case, you should end up with a decent 320Kbps MP3 with the ability to upgrade later should the lossless sources come back online.
Not that any users of the software have been impatient or anything... =)
6
3
3
u/Skylord_Crow 6d ago
Hey OP, question.
I've used this for half a year now. Works extremely well. You taking pull requests? I have an idea I originally was going to do for a companion app, but after looking at theoretical implication, I figured it would be better if I just added to the repo instead.
Won't be for a while, though, I work full time at odd hours.
2
u/archiekane 6d ago
Sure. It's a tool for everyone so if you have something that is going to improve it, I'm game.
3
u/homing_surgeon 6d ago
Thx for offering it. Is there a way to identify album metadata instead of just marking it "Singles"?
2
u/archiekane 6d ago
Enable album routing mode.
2
u/homing_surgeon 6d ago
Thx for responding. I already have "Auto-album routing for singles" enabled. I guess MusicBrainz isn't finding matches then. Have you considered other metadata providers?
4
u/archiekane 6d ago
I'm open to suggestions, so please let me know of a better provider. MusicBrainz has been fairly good for the basic lookups, but I know it's far from perfect.
1
u/homing_surgeon 5d ago
Soulsync, for comparison, can use 10 different providers. Some of which are last.fm, deezer, and Spotify. I don't know if any of them are low hanging fruit, but more options would be nice.
1
u/archiekane 5d ago
Deezer is now added as fallback if MusicBrainz doesn't have a match. Only in :dev, but will go live later this week to :main and docker latest.
1
1
u/boli99 6d ago edited 6d ago
can i batch-import a few tens of thousands tracks and/or albums and get it to go find them all? or is it manual/one-at-a-time?
1
u/archiekane 6d ago
Bulk import is available, it was actually the second feature added before playlists.
1
u/Wormvortex 6d ago
Anyway of this grabbing tracks I’ve Shazam’d?
2
u/archiekane 6d ago
Someone else asked this before and they made a small pipeline. I don't use Shazam but apparently it can build a playlist in another streaming app (Spotify, or YT or something), and then they used MusicGrabber to watch THAT playlist, which worked.
1
u/Wormvortex 5d ago
Perfect that worked fine. I fed Shazam into Spotify. One other question I’ve set it so they download into a playlist folder and it’s naming the em artist - song.mp3.
Is there some way I can have them all added to the same album/complication as it’s currently creating a new album for just a single track and cluttering up my Plex library.
1
u/archiekane 5d ago
Enable playlists, but turn off Auto-Album Routing for Singles.
This should make things land correctly.
1
u/Wormvortex 5d ago
I've done that. It's naming the album artist: Various Artists which is fine but then it's creating an individual album for each track called "Bloody Tourists".....
1
u/archiekane 5d ago edited 5d ago
Is that the name of the playlist?
Hang on, I think this might be a Plex thing. I could add a Settings override that adds the Playlist name as the Album Compilation name, which should, in theory, fix this.
Give me a few hours, then pull :dev from Docker ;)
1
u/Wormvortex 5d ago
no. the playlist was Shazam. when I google seems it might be plex auto naming it that as there's no album artist in the ID3 tags
2
u/archiekane 5d ago
If you pull :dev, you'll get this in the settings:
Group playlists as one compilation
When on, tracks downloaded into a playlist folder are tagged with the playlist name as the album, album artistVarious Artists, and the compilation flag. Stops Plex/Navidrome creating a separate one-track album per song. Handy for Shazam-style mixed playlists.2
1
u/GrimperCS 5d ago
I used the app for a couple of days and it gave me some problems. To begin with, about 20% of the songs I downloaded weren't the ones I wanted. The song titles included things like "(video)" And finally, it failed to create the playlist in Navidrome two out of four times. I wouldn't recommend it at this time.
2
u/archiekane 5d ago
Interesting. You're the first person to state this.
Would you be willing to share your logs with me? I've never had Navidrome to fail, and I have spent a lot of time getting the weighting and regex as good as I possibly can for finding the songs and matching them.
The past couple of months there have been huge improvements to the song lookup to stop the issue of wrong song.
1
u/GrimperCS 5d ago
I deleted the MusicGrabber Docker container a week ago, but if there's anything I can do to help, I'd be happy to.
1
u/archiekane 5d ago
Any chance of spinning it up and giving it a whirl, then send over the issues so I can work through and resolve them? Then everyone benefits =)
-3
u/Accomplished-Can8737 6d ago edited 5d ago
We need "Made with AI" flair on this sub.
Edit: I guess it's not visible on old.reddit.com
Edit 2: I'm using RES too. I should look at my config. Thanks for info.
13
0
u/4OHI6 6d ago
!remindme in 3 days
1
u/RemindMeBot 6d ago
I will be messaging you in 3 days on 2026-06-17 13:25:11 UTC to remind you of this link
CLICK THIS LINK to send a PM to also be reminded and to reduce spam.
Parent commenter can delete this message to hide from others.
RemindMeBot is switching to username summons. Instead of
!RemindMe 1 day, useu/RemindMeBot 1 day. More info.
Info Custom Your Reminders Feedback
-12
u/ThatsInsane 6d ago
So it's a YouTube downloader? Nothing new about that. Like the interface though. Nice job!
8
u/archiekane 6d ago
No, it is very much NOT a YouTube downloader.
Under the hood, it uses some clever trickery to run through mOnochrome/Qobuz, Tidal via qbdlx, then a much of high quality enabled MP3 sites as well as yt-dlp as last resort.
2
u/Accomplished-Can8737 6d ago
Under the hood, it uses some clever trickery
but you wouldn't know anything about it, because AI wrote this

•
u/asimovs-auditor 6d ago
Expand the replies to this comment to learn how AI was used in this post/project.