Song similarity and automatic playlist generation #4332
Replies: 24 comments 39 replies
|
A great idea is an analog of spotify for creating playlists.that's fine, and you're right about privacy. |
|
AH! Nice to see more people looking into this thing. I'm also doing my own research about how to create spotify-like recommendation playlists, and I've found another kind of solution. First of all, I've found this:
Edit: cosine does use AI. Anyway, it still is an interesting project. Then, I've looked further into this subject, and found this: Current project: It's a rust-based tool for analyzing audio files and creating data that can be used to compare them and suggest similar songs. Yesterday I've analysed my collection and now I'm trying to create some playlist based on the information collected. I will do some evaluation (subjective, of course) of the results and intend to report back here. The easiest way to try it is by running the executables provided here: If this thing works well, I'd like to see it integrated into the current smart playlist feature that's being developed in navidrome. @deluan @caiocotts I'm also a go developer. I'd like some directions of how I could implement this in a way that's easy to merge into navidrome, instead of creating an external tool that's used by it. bliss-analyser creates just one sqlite table and can use ffmpeg to decode audio files into PCM for analysis. The other dependencies are C and Rust based, I'm checking out how hard is to wrap then with go, or maybe do some binding (I've never worked with C binding in Go). P.s.: English is not my native language, cheers from Brazil! |
|
Well, I've explored bliss-rs a little bit more. As of now, I've got an executable file which does the actual media file analysis, and I'm wrapping that with golang ( Each track analysis takes around 2 (two) seconds (in my old and faithful i5-2500). The analysis results are saved into a SQLite table, and they reference a media file ID as it is stored in navidrome's database. Track similarity is done with a simple Euclidean distance measurement on the 20 attributes provided by bliss-rs analyser. Now I'm assessing how good is this similarity measurement. It does not look that good for "small" (~5600 tracks in my collection) collections. :-D I'm checking what's going on, but I'm confident this is going to work. Maybe I need to add in some weights to the similarity measurement. |
|
Ok, I think it's official: I'm going to create a separate web application so people can test this tool, experiment with it, and give me feedback. It will work for playlists creation only, no player functionality. Also, I'd like to make it work together with navidrome. m3u files should be available too. This baby has no name for now. Suggestions are welcome. navidrome-bliss maybe? |
|
Just to stay on AudioMuse-AI topic, do you have any feedback on it? About the plugin integration which feature is possible to integrate going down this route ?
Is it possibile to integrate this functionality as a plugin? |
|
As soon as possible, I'll open this project for people to try. |
|
Just dropping in to say that I have installed AudioMuse and it is working fantastically. Only thing missing for me is the automatic syncing and renewing of playlists to navidrome on a regular basis. A lot of people also use symfonium as a client on Android. The most recent beta should allow sonic analysis via jellyfin/audiomuse plugin. Would be awesome to have this integration with navidrome in the future. TLDR; Thanks from me and looking forward to future updates 😀 |
|
From my point of view I would really like to ask to Navidrome developer to directly integrate AudioMuse-AI in their code base. For direct integration I mean by API so:
I know that not anyone will use AudioMuse-AI, but it could be definitely add as a functionality that are enabled only when audiomuse-ai is configured. I’m asking this because Sonic Analysis functionality could be more than just an “instant mix”, they could really redesign the way on which the user listen to the music. For example by creating sonic analysis based radio, or by visual representing the song library and so on. If navidrome developer want to go for a full integration route off course I’ll do all is possible for me to help and support them. |
|
Thanks @NeptuneHub and @danieldids for working on this.
As @daniele-athome mentioned, the ideal would be to create a plugin to connect Navidrome to external playlist sources. There's an example created by @kgarner7 here. Let me know if the current plugin API is enough for creating such integration. |
|
Since we are already scrobbling songs to Last.fm and ListenBrainz, is it possible for Navidrome to integrate further with these services (Last.fm or ListenBrainz) to directly receive suggested tracks? This approach offers several benefits:
|
|
Limiting Audiomuse/Navidrome to playlists generation only, is like having a sports car only to sit in it and not drive it. Audiomuse already expose get similar songs, artists via its API amongst a bunch of other things that open the doors for other creative implementations. Maybe there are some hack out of the box ways to get similar results with LastFm etc. But LastFm is not free or open source. Audiomuse is in very active development and I think the DEV is pretty open to ideas and suggestions on improving the service. At least from my experience. Apart from the Analysis / Clustering jobs. It is also not very resource heavy. There is an open discussion about getting it implemented into opensubsonic API, and, my opinion is that its the way forward, because other servers also use this API, and, it would open freedom for more than just navidrome. But it seems we need to wait for that. |
|
I'm not sure if this is an appropriate forum for this kind of comment, but I just want to say that I've been using AM on my navidrome library - which is relatively big and full of music that I don't really know - and it's just been an incredible way to generate playlists that allow me to discover unfamiliar music through various methods. |
|
Thank you @NeptuneHub for creating this PR and this amazing product. I also (similarly to others) logged here just to say that integrating AM to Navidrome should be a no brainer. What AM is offering is much needed to bring our music experience in similar levels as paid streaming services. Without it I'm afraid Navidrome is like a library without a librarian. And don't get me wrong I love Navidrome. So, what I suggest is: Thanks you all and please Keep us posted |
|
So .. I use Navidrome heavily while on the go remotely. In my house i have been a heavy user of Snakeoil Server with LMS ... ive found for my system that MPD is a much better solution ... MY POINT for this discussion ... ive made a pretty large front end for MPD that has some of the spottily recommended playlist features your looking for on Navidrome, integrating LAST FM's api heavily .. please re-use the code if it at all helps for this ... https://coacharnold1.github.io/Maestro-Server/ |
|
Hi all, Actually it work only with the Thanks so much to @deluan for his effort to make this possible ! |
|
I built a plugin that does exactly this! Mood Playlists — audio analysis-powered mood playlists and mood-aware Instant Mix for Navidrome. What it does
How it worksThe plugin ships as a Install
Requires Navidrome Would love to hear feedback from anyone who tries it out! |
|
I've built a plugin that does exactly this — audio analysis-powered mood playlists and mood-aware Instant Mix. Mood Playlists Plugin (v0.2.0) It uses essentia-tensorflow with Discogs-EffNet embeddings to analyze your library for mood (happy, sad, relaxed, aggressive, party), danceability, BPM, and energy. Then it automatically creates 13 mood playlists:
It also replaces Instant Mix with mood-similarity matching — Euclidean distance across the full mood vector, so "similar songs" actually sound similar. The analyzer runs as a companion Docker container and applies genre-aware context boosts (so DnB gets a danceability boost, metal gets aggression, etc.).
|
|
I just miss to update this issue: because the plugin system is there, I was able to do the integration with the plugin. So for me this issue is good to be closed. Thanks. |
|
Hi,
Well it generates moods based on analysing the actual music, one track at a time. It definitely needs a separate model to analyse, but it doesn't need heavy firepower.
You can set mood for particular genres to, or even complimentary ones.
Thanks
Sent from Outlook for Android<https://aka.ms/AAb9ysg>
Craig Lusher
Principal Solutions Architect
[cid:c8signature-ico-telephone_c13147e2-9017-48dc-b4b9-a130b5d0f363.jpg]
+441624694646
[cid:c8signature-ico-mobile_7b9546c5-d5c7-4559-8b6a-580ca7d73e52.jpg]
+44 7921 399499
[cid:c8signature-ico-email_796bf7d7-b437-440f-93ae-39d35644a294.jpg]
***@***.******@***.***>
[cid:c8signature-ico-website_575254f7-d4c7-4f50-b0e1-30f037a6722c.jpg]
continent8.com<https://www.continent8.com>
[cid:c8signature-facebook_3749357b-91aa-4f11-b614-3364c5997484.jpg]<https://www.facebook.com/Continent8Technologies/> [cid:c8signature-twitterlogo_44x44_2a3cd9e0-30a0-4063-a686-2bee2378b892.jpg] <https://twitter.com/continent8?lang=en> [cid:c8signature-linkedin_a2b3594e-0438-458f-bf52-221cb1f15737.jpg] <https://www.linkedin.com/company/continent-8-technologies>
[cid:c8signature-mainlogo_fullcolourrgb_d59f52bf-e544-463f-9890-d0849fc497ad.png] <https://www.continent8.com/>
[cid:c8signature-blueprintes_v4_f3df7828-edf0-4e4b-a311-cb1ad7a687d9.png]<https://www.continent8.com/blueprint-gaming-strengthens-security-and-accelerates-threat-response-with-continent-8s-managed-soc/>
…________________________________
From: Th3K1ngP1n ***@***.***>
Sent: Tuesday, March 24, 2026 5:17:53 pm
To: navidrome/navidrome ***@***.***>
Cc: Craig Lusher ***@***.***>; Mention ***@***.***>
Subject: Re: [navidrome/navidrome] Song similarity and automatic playlist generation (Discussion #4332)
*** This email is from a non-C8 source ***
@craiglush<https://github.com/craiglush> I love the idea of your plugin but it requires a separate analysis of my library no? Or can it plug directly into the Audiomuse database?
Also do you know when Navidrome 61.0 is expected to be released? 😀
—
Reply to this email directly, view it on GitHub<#4332?email_source=notifications&email_token=AR425A4DOLZIIBFSW5PVAVL4SK7LXA5CNFSNUABIM5UWIORPF5TWS5BNNB2WEL2ENFZWG5LTONUW63SDN5WW2ZLOOQXTCNRSHE3DMMZYUZZGKYLTN5XKO3LFNZ2GS33OUVSXMZLOOSWGM33PORSXEX3DNRUWG2Y#discussioncomment-16296638>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AR425A5ZE4RIBBRUTIYDAJT4SK7LXAVCNFSM6AAAAACBKQ7PP2VHI2DSMVQWIX3LMV43URDJONRXK43TNFXW4Q3PNVWWK3TUHMYTMMRZGY3DGOA>.
You are receiving this because you were mentioned.
This email, along with any attachments, is for the sole review and use of the intended recipient(s) and may contain confidential and/or legally privileged information belonging to the sender. Delete this email and notify us if you are not the intended recipient.
|







Uh oh!
There was an error while loading. Please reload this page.
Hi,
I would like to have the possibility to automatically playlist creation and instant mix based on similar song. All of them based on the analysis of the song itself (someone call it sonic analysis).
I implemented a minimum viable product that you can find here:
https://github.com/NeptuneHub/AudioMuse-AI
It actually interact with Navidrome API (in this moment in :devel branch) to download and analyze song and then to create playlist.
It use Librosa and Tensorflow for the song analysis and it is written in python. It has a test front-end but the core are Flask API. For an easy test is all contenirezed: deployment.yaml and docker-compose.yaml example are present in the repo.
It will be great to have those functionality directly integrated in the Navidrome front-end instead of relay on an external front end. Especially because the “song similarity” feature could be used for instant mix if integrated instead of just create playlist.
The pro of doing song analysis over using external service API like lastfm is multiple:
I develop this testing product because till now I didn’t found any open source, self hostsble app with this feature. And I hope that this testing product could show the potentially of this song analysis feature to be integrated in more mature product like Navidrome.
All reactions