this post was submitted on 20 Mar 2026
7 points (52.0% liked)

Selfhosted

61070 readers
936 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:

Detailed Rules Post

  1. Be civil.

  2. No spam.

  3. Posts are to be related to self-hosting.

  4. Don't duplicate the full text of your blog or readme if you're providing a link.

  5. Submission headline should match the article title.

  6. No trolling.

  7. Promotion posts require active participation, with an account that is at least 30 days old. F/LOSS without a paywall has exceptions, with requirements. See the rules link for details. Tags [CBH] or [AIP] are required, see the links in Rule 8 for details.

  8. AI-related discussions and AI-involved promotional posts have additional requirements for tagging, as noted in Rule 7 and the AI & Promotional Post Expanded Rules post, and find example disclosures here.

Resources:

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

Questions? DM the mods!

founded 3 years ago
MODERATORS
 

I just pushed v22 of my project : a local AI companion for Radarr, that goes beyond generic genre or TMDb lists.

This isn't "yet another recommender". It's your personal taste explorer that actually gets the vibe you want in natural language and builds recommendations starting from your existing library.

Key highlights from a real recent run:

  • Command: --mood "dystopian films like Idiocracy, Gattaca or In Time"
  • Output: Metropolis (1927), V for Vendetta, Children of Men, Brazil (1985), Minority Report, Dark City, Equilibrium, Upgrade, The Road... → oppressive/surveillance/inequality/societal critique atmosphere, not just "dark sci-fi".

How it works :

  • Starts by sampling random movies from your Radarr collection (or uses your mood/like/saga input).
  • Asks a local Ollama LLM (e.g. mistral-small:22b) for 25 thematic suggestions based on atmosphere/vibe.
  • Validates each via OMDb (IMDb rating, genres, plot, director, cast...).
  • Scores intelligently: IMDb rating + genre match + director/actor bonus + plot embedding similarity (cosine on Ollama embeddings).
  • Adds the top ones directly to Radarr (with confirmation: all / one-by-one / no).
  • Persistent blacklist to avoid repeats.

Different modes :

  • --mood "dark psychological thrillers with unreliable narrators" , any vibe you describe
  • --like "Parasite" --mood "mind-bending class warfare" (or just --like "Whiplash")
  • --saga (auto-detects incomplete sagas in your library and suggests missing entries) or --saga "Star Wars"
  • --director "Kubrick" / --actor "De Niro" / --cast "Pacino De Niro" (movies where they co-star)
  • --analyze → full library audit + gaps (e.g. "You're missing Kurosawa classics and French New Wave")
  • --watchlist → import from Letterboxd/IMDb
  • --auto → perfect for daily cron / Task Scheduler (wake up to 10 fresh additions)

Standout features:

  • 100% local + privacy-first (Ollama + free OMDb API only)
  • No cloud AI, no tracking
  • colored console output, logs, stats, HTML/CSV exports
  • Synopsis preview before adding
  • Configurable quality profile, min IMDb, availability filters
  • Works on Windows, Linux, Mac

GitHub (clean single-file Python script + detailed README):
https://github.com/nikodindon/radarr-movie-recommender

If you're tired of generic Discover lists, Netflix-style randomness, or manual hunting give it a spin. The vibe/mood mode + auto saga completion really change how you expand your collection.

Let me know what you think, any weird mood examples you'd like to test, or features you'd want added!

top 50 comments
sorted by: hot top controversial new old
[–] circuscritic@lemmy.ca 55 points 4 months ago* (last edited 4 months ago) (19 children)

Since no one is leaving critical comments that might explain all the downvotes, I'm going to assume they're reflexively anti-AI, which frankly, is a position that I'm sympathetic to.

But one of the benign useful things I already use AI for, is giving it criterias for shows and asking it to generate lists.

So I think your project is pretty neat and well within the scope of actually useful things that AI models, especially local ones, can provide the users.

load more comments (18 replies)
[–] eager_eagle@lemmy.world 21 points 4 months ago (1 children)

that's pretty cool, this is just the wrong crowd, don't worry about the downvotes

[–] nikodindon@lemmy.world 2 points 4 months ago

thanks ! ^^

[–] meldrik@lemmy.wtf 15 points 4 months ago (1 children)

This is a cool tool. Thanks for sharing. Don’t worry about the downvotes. The Fediverse has a few anti-AI zealots who love to brigade.

[–] nikodindon@lemmy.world 2 points 4 months ago

Thank you ! :)

[–] Scrath@lemmy.dbzer0.com 10 points 4 months ago (2 children)

I remember building something vaguely related in a university course on AI before ChatGPT was released and the whole LLM thing hadn't taken off.

The user had the option to enter a couple movies (so long as they were present in the weird semantic database thing our professor told us to use) and we calculated a similarity matrix between them and all other movies in the database based on their tags and by putting the description through a natural language processing pipeline.

The result was the user getting a couple surprisingly accurate recommendations.

Considering we had to calculate this similarity score for every movie in the database it was obviously not very efficient but I wonder how it would scale up against current LLM models, both in terms of accuracy and energy efficiency.

One issue, if you want to call it that, is that our approach was deterministic. Enter the same movies, get the same results. I don't think an LLM is as predictable for that

[–] LiveLM@lemmy.zip 5 points 4 months ago

One issue, if you want to call it that, is that our approach was deterministic. Enter the same movies, get the same results. I don't think an LLM is as predictable for that

Maybe lowering the temperature will help with this?
Besides, a tinge of randomness could even be considered a fun feature.

[–] four@lemmy.zip 3 points 4 months ago (1 children)

I'm not an expert, but LLMs should still be deterministic. If you run the model with 0 creativity (or whatever the randomness setting is called) and provide exactly the same input, it should provide the same output. That's not how it's usually configured, but it should be possible. Now, if you change the input at all (change order of movies, misspell a title, etc) then the output can change in an unpredictable way

[–] hendrik@palaver.p3x.de 3 points 4 months ago* (last edited 4 months ago)

Yes. I think determinism a misunderstood concept. In computing, it means exact same input leads to always the same output. Could be a correct result or entirely wrong, though. As long as it stays the same, it's deterministic. There's some benefit in introducing randomness to AI. But it can be run in an entirely deterministic way as well. Just depends on the settings. (It's called "temperature".)

[–] timestatic@feddit.org 10 points 4 months ago (1 children)

Sorry OP that you're getting downvote bombed. This is actually really neat. People go nuts when they hear AI but this is fully local so I think this reaction is unjust. This has nothing to do with ram prices since that stems from data centers or corpos pushing AI on you. Thank you for sharing

[–] nikodindon@lemmy.world 2 points 4 months ago

thanks for your comment :) I edited my original post to explain the project better

[–] pfr@piefed.social 9 points 4 months ago (1 children)

Anti-AI evangelism is at its peak rn.

[–] Andres4NY@social.ridetrans.it 2 points 4 months ago* (last edited 4 months ago) (4 children)

@pfr @nikodindon That assumes it won't get worse, which I hope it does. AI companies have forced me to take down web stuff that I had running for almost 2 decades, because their scrapers are so aggressive.

[–] halloween_spookster@lemmy.world 3 points 4 months ago

20 decades

Found the time traveler!

load more comments (3 replies)
[–] fubarx@lemmy.world 9 points 4 months ago (1 children)

The more local inference, the better. Nice work!

load more comments (1 replies)
[–] Overspark@piefed.social 7 points 4 months ago (1 children)

A recommendation for Moonrise Kingdom based on Mickey 17? The genres might match, but those are totally different movies.

[–] Janx@piefed.social 5 points 4 months ago (1 children)

Also, A Bug's Life from Mickey 17!?

[–] borari@lemmy.dbzer0.com 2 points 4 months ago

That made me lol so hard. Like what’s the fucking point of this thing when it comes up with shit like that?

[–] RIotingPacifist@lemmy.world 4 points 4 months ago (1 children)

How does this compare to an ML approach?

are you training or just using an LLM for this?

[–] eager_eagle@lemmy.world 8 points 4 months ago* (last edited 4 months ago) (1 children)

There's no training, the LLM embeddings are used to compare the plots via a cosine similarity, then a simple weighted score with other data sources is used to rank the candidates. There's no training, evaluation, or ground-truth, it's just a simple tool to start using.

[–] FerCR@kbin.earth 2 points 4 months ago

Exactly! This has been done plenty of times in the past (there's a reason why some movies datasets are used as toy example for data analysis). For the unfamiliar with the field, the LLM part here is simply that, instead of building a feature space from predefined tags or variables, it makes a "fuzzier" feature space where it embeds the movies based on the text tokens the model sees. In essence, the way to compute which movie to recommend is the same (a.k.a no LLM) it is just that the data used for the computation is generated differently.

[–] Alvaro@lemmy.blahaj.zone 2 points 4 months ago (1 children)

A bugs life from mickey 17?

Explain OP

[–] MummifiedClient5000@feddit.dk 3 points 4 months ago

Bugs, obviously.

load more comments
view more: next ›