Show HN: A 15 MB self-hosted Netflix and Spotify for your media server
github.com
github.com
For example, I've been using a Spotify replacement called Spotifast for a month or so. It's way better than the official Spotify app, and it's all vibecoded by one developer, and it gets lots of updates (it's basically a 1-to-1 clone of Spotify, plus additional features). It wouldn't have been possible before AI, or at least not that easily.
It has always been the case that open source lived and died thanks to developer attention. That hasn't really changed with AI. The amount 1 hour of developer attention can do is drastically greater. But if the developer loses interest (which may well happen after a year or two), the project still dies unless there's other people to steward it.
Hopefully that will be true. But it's really amazing how many established open source projects are basically supported by one person working tirelessly for years or decades on end.
Only difference i can see is mine will stream a torrent while it's still downloading. muahaha. Let me work on releasing this damned thing.
They're sticky because they stay focused on their specific domain, and they work well.
I also really don't understand the value pitch on "6 apps no one can use" in the post.
I publicly host Seerr and Jellyfin for my family, and they use that combo just fine. They explicitly don't get access to see any of the sausage making under the hood.
Given this doesn't support music yet (according to op) and you still need to host plex or jellyfin... what is the value statement here over seerr?
(It's fine, of course, to use AI tools—we use them heavily ourselves. Just please don't use them to generate or edit text to be read by fellow humans on Hacker News.)
It's impossible to know for sure what was LLM generated or edited, but we have to rely on imperfect classifiers or else the site would be completely flooded by genai text, which is not what the community here wants to read, nor in the intended spirit of HN.
The arrs don’t have that much in common under the surface. It’s good for them to behave and evolve differently for different type of media.
It’s also less likely for any of them to be targeted and shut down by courts as piracy tools.
ls -lh /usr/sbin/minidlnad
-rwxr-xr-x 1 root root 323K Feb 21 2025 /usr/sbin/minidlnad
and a lot of TV, video projectors, etc support DLNA out of the box, if they don't add VLC and you are good to go.My solution that I came up with is to make a companion mobile app or mobile web site, where I pick what movie I want to play, and then my server will serve only that one file via DNLA. When I want to watch something else after that I pick up the mobile app / mobile web app again and choose again and then the files for that movie or TV series is served instead
The better architecture is to push content over HDMI using an endpoint you control. This doesn't have to be the actual media server. We could invent a new system role and control multiple endpoints centrally. I don't want the TV to do anything more intelligent than display the video and audio frames it is receiving.
I literally, just this last weekend, finally bit the bullet and created my own media server. I had been dragging my feet, not wanting to deal with the complexity of configuring and setting things up. With codex, I had it do the leg work. Even made a snazzy website as homebase and an admin panel with links to every service, easy invite creation, and some basic usage & storage monitoring.
Been a blast using codex to configure and design my media server!
That said, the many logins do annoy me! My main friction though is around a single client my friends & family can use that brings things closer to the netflix experience. Currently evaluating moonfin, so they can request and watch within the same client. Seerr still seems to be best for requests, but moonfin will get the job done.
My list so far: Sonarr, Radarr, Prowlarr, Seerr, Wizarr, Cleanuparr, Jellyfin, Moonfin.
Also using codex to setup the same box for home automation and comfyui. Fun times!
Why would you even want this, what desirable features could you add by adding AI?
So far, that's been the peak of voice control from what I can tell. Xbox one was completely unusable, even if 2026 Siri makes both systems look good.
Sometimes a bad copy, mismatch, or low-rated media slips through all the filters. Could use an LLM to fix the media and harden the filters to prevent issues going forward. I’ve probably spent weeks of my life toiling and tweaking over the last 15 years.
Natural language searching seems like a good reason.
Just scroll down the readme, down to the "Version tag" section if you need more proof.
For example my mom, who is tech illiterate, could send an SMS like "please add the new spiderman movie to the media library." And it magically shows up on the apple tv.
Or we could use it to do a "lazy" search on the library. Jellyfin in the year 2026 is still too stupid to understand that when i search "spiderman", the result "spider-man" should be included in the results. God help us lol.
Or maybe you could easily run codex/claude against your media server to help with routine maintenance. Like "hey claude we're a bit low on disk storage. Please find movies/shows that were requested a while ago and are large in size." then if you're happy with the list, ask claude to delete those for you.
Idk...i could think of like 20 more uses cases. Use your imagination. :)
"Or maybe you could easily run codex/claude against your media server to help with routine maintenance. Like "hey claude we're a bit low on disk storage. Please find movies/shows that were requested a while ago and are large in size." then if you're happy with the list, ask claude to delete those for you." <--- this is like 2 or 3 commands on the cli. no need to burn tokens (and thus use water and kill rainforest etc) on something so basic
I'm simply explaining why an MCP functionality could be useful for someone who is already using the ARR stack and is considering switching.
if you're thinking about the environment then run an llm on your home server.
Or better yet connect BCI device to it and just make the thing generate a sequence of bitmaps and waveforms that produce the emotion you want
That would be cool
Here I was thinking people just used Plex! No idea what any of those are
Things like parsing the file name for format, group, language, repack etc...
Though I like the choice of go. The heavy c# stack other have is quite resource intensive
https://www.reddit.com/r/selfhosted/comments/1rckopd/huntarr...
What do you mean "for now" if there's one thing i don't want it to replace it's clearly qbittorrent. Trackers have client whitelist and I don't see a brand new vibecoded app being added to any of the serious ones
The stack is heavy because being lighter is not a priority.
Are you aiming to be more feature complete with the rest of the *arr stack or intentionally a different course?
I was looking for a project just like yours and couldn't be bothered building one myself.
Edit: Gemini has provided some subtitles options.
Subtitle Search & Database APIs
• TheSubtitleDB.org: A completely free, open REST API for media players and apps. It requires no account, no API key, and has no rate limits, offering exact file hash matching as well as IMDb ID and TV episode lookups.
• Wyzie Subs (wyzie.io): A fast subtitle search API for movies and TV shows. It offers a free tier with 1,000 requests per day, sub-50ms response times, hearing-impaired filter options, and multi-language support.
• Opensubtitles-Unofficial-API: An open-source, community-hosted unofficial API. It lets you search and download subtitles from OpenSubtitle.
You don't just shed 97% of the size without compromises. What are those compromises and why were they made?
This one is golang project
The ones it replaces are self-contained .net core web apps which themselves bring at least 80mb runtime for hello world if not compressed
Starting to think we need metrics on all projects and communications.
> This email took 20 minutes of human time and 1000 tokens of GPT-6.1 Sol.
Adding a “Copy prompt for agent” instruction to the top of your docs, would be lower friction to entry, and allow me to review what it is that needs doing. It can be hard to account for every way someone might self host in docs too, which is why I think an agent is going to have a much easier time automating the setup here.
A vibe coded project like this, no matter how nice, will not help with the rest of the family.
* Samsung sm-t545 because it has a servicable battery. I loath the Samsung software part, but hardware-wise it's not bad.
*at that point it was a flash sale and for £150 not ~£400 like today :((
They are separate apps for a reason. Some of the parts have legitimate uses beyond piracy, so they are unlikely to be taken down. Jellyfin has client apps approved into walled gardens.
This, on the other hand, is unequivocally a piracy tool. You can’t contribute code, report issues or package it for your distro without breaking the law.
If this ever takes off, it will be taken down.
I believe things will be from now on. People see a gap in the offerings out there and they just whip it up. There will be a certain amount of stability that the LLMs will add by default to all of them and that's it. If you are interested, go ahead and use it.
I get there will be a lot of crapware, but you’re hackers no? Why all the gatekeeping even amongst yourselves? How much time did the openclaw guy take to built it? A weekend?
Sure, you could say “no thanks”. But all the labs certainly thought it was useful enough to replicate. And yes, it was, still is an insecure mess littered with bugs, but why are we all so repulsed?
It’s a genuine need. I build my own version of this, also on go, haven’t shared bc I am not sure how legal it is to distribute, but I have been using it for months and definitely beats running 6+ apps that keep breaking. I run one binary + jellyfin, never going back.
Gatekeeping would be "do not write vibecoded apps for yourself", which is not the case here, this is releasing code for the public in an irresponsible manner.
I mean, I feel you... there's no way I'm running it when it's this new... I'll let others spend their tokens probing it and check it out in a month... no shade in the dude for releasing it, but anyone who has it running right now inside their network... I hope nothing bad happens.
But at the same time the PR numbering is much older, with 1.0.10 coming from #197. It makes me think the repository was private for some time and then made public recently. But still -- 10 releases in a few hours isn't a stability signal. Especially when one of the advertising points is to simplify the update cycle from all the "arr"s.
Yeah...
https://news.ycombinator.com/item?id=50441811
Wondering because this isn't the first time getting flagged almost immediately after submission. HN Gatekeeping? I don't see how my post violated guidelines etc. for example. Raising this here because I'm starting to see a pattern.
It's incredibly common to have a CLA because without one accepting PRs is a mess legally. The PR authors have to acknowledge that their specific code is also AGPL every time. Easier to just have a CLA.
DLNA, proper Airplay and Chromecast support, file matching, ABR, all the HDRs, etc.
Umm, no you check Sonarr.
"netflix and spotify" is how it feels to use, not what it does under the hood. holyarrs doesnt play anything. you browse your shows, movies and music like a streaming app (top 10s, new & popular, coming soon), tap what you want, and it sends it to your downloader and files it into jellyfin or plex. those still do the playing
before this, my server needed 6 apps for that: sonarr for shows, radarr for movies, lidarr for music, bazarr for subtitles, prowlarr for indexers and overseerr for requests. 6 setups, 6 databases, and nobody in my house but me could use any of them
- the image is 15 MB. the 6 apps it replaces are 718 MB together - one go binary, svelte UI, sqlite. the image has no OS and no shell - runs on amd64, arm64 and armv7 - works with qbittorrent, sabnzbd, plex, jellyfin, emby - imports your sonarr/radarr setup, and speaks their api so seerr can keep talking to it - no api keys to set up. posters and search come from a metadata server i run and pay for - free, AGPL-3.0
how it got built: claude code wrote most of the go and svelte. i wrote the specs, reviewed everything and tested it on my own server. what it got wrong: it never noticed cost. the app got heavier build after build until i started measuring every single one. thats the only reason its still 15 MB
why you might want to wait: its young, 1.0.7 shipped today and im fixing reports as they come in. music is still being built out, and a few features are held back until theyre fully tested (plex watchlists, trakt lists, subtitle sites)
why i built it: my family wanted netflix and i had 6 apps nobody but me could use
im in the comments, tell me what breaks
I'm not convinced this is true, could you expand further what you mean here?
First try to obtain subtitles in the locale I need, fallback to using AI to translate the embeded ones, fallback to downloading ones in original language / english and translating.
That’s how I feel. I’ll give this a try.
Claude did
- Radarr uses api.radarr.video: https://github.com/Radarr/Radarr/blob/7e3f80c98d01481430ab35...
- Sonarr uses skyhook.sonarr.tv: https://github.com/Sonarr/Sonarr/blob/c018578e4b79ee048575c0...
- Lidarr uses api.lidarr.audio: https://github.com/Lidarr/Lidarr/blob/28ab333eafa138a72319e4...
- Readarr uses api.bookinfo.club: https://github.com/Readarr/Readarr/blob/0b79d3000d4e5f8425f4...
I do agree with what you said however.
No shot. The initial commit was 551kLOC followed by 100kLOC+ within a day. There's no way you reasonably reviewed _everything_.
Also, do you genuinely speak in AI-isms, or have you just had claude generate you this too and uncapitalised the first word of each sentence so it looks human?