Get the top HN stories in your inbox every day.
peterldowns
Looks very pretty and the demo is nice. Congratulations on the launch. I'm a happy Plex user, via Plexamp for audio and the Plex app for Apple TV for video, and I'm not interested in switching. That said,
> It started as a "sandbox" project where I could learn about tech I was interested in, and slowly became more than that.
This is a fantastic reason to build something. Looks like a wonderful project.
manmal
In case you‘re into audiobooks, I suggest to check out Bookcamp too. I guess Plexamp works for that as well, but Bookcamp is just like Audible in a way.
Ardon
For anyone who's game to run another service for audiobooks, I've found Audiobookshelf to be pretty good: https://github.com/advplyr/audiobookshelf
haltcatchfire
I love ABS but I use it mainly for podcasts since it downloads each episode to my server which I then stream from. It’s awesome. My only gripe is the iOS app, which is a pretty slow webapp wrapper.
dewey
I second the other suggestion for Prologue on iOS as a Plex frontend for audio books. It’s such a good experience that I’m now listening to more audio books than before and they also just launched an Apple Watch version.
Arn_Thor
Seconded! (Or thirded?) Prologue is so much better than Audible. I’m using Libation to liberate my copy protected audiobooks, not to share them but to avoid that godawful Audible app
darknavi
Prologue on iOS is an Audible-like experience with a Plex back end as well!
joshuaturner
The biggest hurdle I've run into when trying to manage an audiobook library with Plex is the metadata source. There are a few plugins that try and gather from Audible, I assume by scraping, but it's always minimal and very flaky. I haven't revisited this for a while now though, so hopefully things have improved - I would love to start archiving my Audible collection.
drakenot
Bookcamp has fairly negative reviews on the App Store.
Have you had issues with it?
generalizations
I've noticed that in general, a lot of selfhosted-adjacent apps tend to get negative reviews. Without having looked at bookcamp specifically, I've noticed that a lot of times, it's because those apps require a minimum level of competence from their users, and those users that miss the threshold generally leave negative reviews.
manmal
No issues whatsoever.
jascination
How are you using Plexamp? Do you DL albums and stream it from there as a spotify-ish alternative?
pimeys
Not OP, but I just stream from it as a better Spotify alternative. It uses opus codec for encoding, which works really well even with a slow CPU. The playing is instant.
Jellyfin uses AAC, which then spins my homelab fans when I try to encode anything. With opus the fans stay silent.
thejazzman
Instant unless your NAS drives spin down! Haha efficiency ugh.
Need a Spotify connect like thing for PlexAMP so it works in car at full quality. I won't hold my breath. Maybe the Plex web app works
ecliptik
Plexamp is the one thing that keeps me on Plex.
I have Jellyfin setup in parallel for the day Plex enters an「enshittification」phase, but the lifetime membership I paid for in 2012 has served me well.
iamacyborg
If you don’t mind paying a subscription, I find Roon hugely superior to PlexAmp.
debacle
I tried switching from Plex to Jellyfin, and one of the greatest limitations that I noticed with Jellyfin is that it doesn't seem to really give a shit about managing libraries, and seems overly opinionated about file structure. There's whole sections of the wiki dedicated to naming your files right that I don't have to deal with with Plex.
Does Kyoo take a similar approach, or is it more user friendly? Plex's monetization efforts are silly, but Jellyfin seems very much not ready for prime time.
zoriya
I find this extremely silly too. The goal of kyoo is to organize your library for you, you should be able to use your download folder as your library folder, and it should work right away without having anything to rename.
There are still some edge cases, especially with extra which are not handled very well right now. It works even for weird anime naming, things like "[SomeGroup] Jojo's bizzare adventure - golden wings 12.mkv"
tetris11
What about folder structure. If I have something like:
Videos
├── Anime
│ ├── [EMBER] Frieren S01E14 [BDRip] [1080p Dual Audio HEVC 10 bits] (1).1080.mp4
│ ├── Apothecary Diaries
│ │ └── S01E01.mkv
│ └── KAGUYA-SAMA LOVE IS WAR Season 4 Episode 1.1080.mp4
└── Cartoon
├── Royal Crackers
│ ├── Episode 1.mp4
│ └── Episode 2.mkv
└── Sanjay and Craig
├── 1x01 The one with the lion.avi
└── 1x02 Tufflips and Co.mp4
Does it build hierarchical collections in the same way?Fire-Dragon-DoL
I have a gazillion of those weird names in my library
ramon156
Just a question, why do you guys want sn unopinionated media server? I love that I click some buttons in jellyfin and it just does it's thing, I don't have to think of my own structure
zoriya
I hate having to rename my files on an arbitrary pattern to have items show up in the media browser. I want a media browser to organize my media, not to ask me to organize it myself.
reaperducer
I hate having to rename my files on an arbitrary pattern to have items show up in the media browser.
This is why I went back to iTunes. Full, robust metadata support and organization.
It's 2024. Why are people still cramming metadata into file names like it's 1983?
gedy
Maybe I'm not understanding, but they only organization I do is put each movie and related files like cover and SRT into its own folder named after the movie. Seems to work fine.
HumblyTossed
I use Jellyfin, but I also use TMM (tiny media manager) to manage my files. Jellyfin seems to agree with what TMM produces just fine.
I would like to see a slim Jellyfin that does not have any media management code at all, tbh. Just media streaming.
resfirestar
YMMV of course but Jellyfin supports manual tagging well enough for my uses. No need to change filenames and break folder structures you set up for easier navigation in file browsers (as I did), you can click the "Identify" option on a file/folder and search your enabled databases by title or IMDB number. Once you tell it what TV show a folder is for, all the episodes seem to get automagically recognized. It's just that first step that doesn't happen by itself when the folders aren't named "correctly", and you could probably get around it by using Tiny Media Manager to mass-write NFO files (which Jellyfin recognizes).
Arn_Thor
Honestly, any manual tagging is still too much work. Jellyfin would be a better Plex alternative if it got this right
finaard
They used to have an auto organize plugin which was doing that very well - but sadly it is no longer maintained (and no longer working on current versions). I did have quite a few things not correctly recognized with Plex which went away after going to Jellyfin and letting auto organize do its thing.
On the plus side, lack of auto organize made me properly setup the complete arr stack, which throws things into correctly named directories, does support batch renaming for existing stuff, and handles a lot of other stuff on top of that.
rockostrich
Out of curiosity, why are Plex's monetization efforts silly? Sure, the freemium model is less than ideal compared to OSS, but I gladly paid for a lifetime subscription to Plex Pass 4 years ago and haven't regretted it at all since.
jwells89
I think the main issue is that the monetization efforts have resulted in blunted focus on the core product, resulting in things like long-standing unresolved bugs and technical oddities. For example the Plex installation on my home server will break itself in odd ways every so often and sometimes the only way to fix it is to nuke all cache, config, etc and start over which gets frustrating.
It’s also brought privacy concerns, because there’s incentive for Plex to harvest and sell data from users paid and unpaid alike.
I’m currently subscribed, but all of this has me on the lookout for viable replacements.
thejazzman
Are you running out of space?
I've been using Plex forEVER and the only time this kinda thing happened to me was when the scratch space Plex was using for transcodes and things got full
dotnet00
I think part of it is that the efforts are all going to be kind of dodging bullets, in that everyone knows that a popular use case of Plex is for pirated media. So all monetization efforts have to be carefully designed to not risk implicating the project directly into that use case. Which means that monetization efforts mostly lean slightly differently from what the users would want to pay for.
The only monetized features that have decent overlap with user desires are the player features, mobile apps, plexamp and its sonic analysis stuff.
_heimdall
I don't quite follow here. Assuming a common use case is personal consumption of pirated content, doesn't it make sense that the monetization strategy focuses on the server/client software itself?
More importantly, that monetization strategy is a great fit for legal self-custody. I have a pretty large library of content I bought on DVD and ripped for personal use. I don't share it our as torrents and watch videos locally on my own network, there's nothing wrong with that and I like that Plex is still paid for the software that makes it work well for my use case.
mynameisvlad
They are pushing their free with ads offerings and data gathering (Discover) far more in the past year or two, to the point where I have to give instructions to some of my friends because the defaults are exclusively their own offerings.
BeetleB
That's because your friends are independent, separate Plex users from you, even though you and they don't want to think they are. Just because they can use the Plex app to connect to your server doesn't mean that they are not separate.
I get the frustration - Plex didn't do it in the past, but if you look at it from 1000 ft, and are ignoring history, Plex isn't doing anything crazy here. If you install the app on your phone/Roku/whatever, it's on you to understand how to use it/customize it.
halJordan
I disagree with the implication that plex is Just Another LLC trying to make a buck. If Plex were another netflix, then ads wouldn't be silly.
cchance
I have 0 issue against plex monitization, except for TRANSCODING, wtf am i being charged to use my own GPU?!?!?!
Zircom
Out of all the things to take issue with about their monetization model that is such a wild take. Do you also have issues about paying for a videogame that uses your GPU? Probably not.
Any paid software you can run on your own hardware by definition is paying to use "your own" resources(CPU, GPU, storage, etc), what you're paying for is their effort in creating and maintaining the software. If they want a gatekeep features for a premium version that's their right, if you have a problem with it find something else or make it yourself.
slily
Both Plex and Jellyfin refused to import my fairly standard and accurately tagged music library last time I tried, and Plex is definitely opinionated about structure in video libraries.
petepete
Jellyfin wasn't happy with my music library either until I realised wanted the ReleaseGroup field to be set. I set Picard to work and an hour later it imported perfectly.
Modified3019
That jellyfin is that nitpicky with a prerequisite just to get a music library to work is horrifying.
gosub100
Nobody has mentioned Emby yet. I switched from jellyfin to Emby and I am overall happier with the UX. I don't know if your specific grievance will be addressed but it's worth looking into.
I wish they would add a feature to clone the metadata database (including pictures of movie covers and actors). My fear is that imdb will disallow scraping especially for people like "my friend" who has thousands of movies.
buggeryorkshire
Had exactly the same issue. Jellyfish was very opinionated, Plex doesn't care.
jwells89
Looks nice. One thing I’ve noticed is that media server projects seem to have a disposition towards C# specifically, which I find interesting. Is there a technical reason for this or is more of a big project setting norms situation?
kyriakos
Most related software too (the *arr family) are written in .net. It's a decent platform offers good performance without sacrificing developer experience.
zoriya
c# shines for webserver stuff so it's no wonders, I like it less and less tho Kyoo also uses python/golang for some of it's components (and typescript for the frontend)
CBarkleyU
> I like it less and less
Would you mind eloborating?
zoriya
I don't like the closed environment where you are not a first-class citizen if you are not using vs or rider. I always work on vim and linux, and I am getting tired of fighting with whatever new stuff microsoft makes that does not work out of the box (their latest LSP that does not follow the spec they created themselves as my latest example).
zamalek
Rust has ruined every other programming language for me.
HumblyTossed
This one looks like it's written in several different languages. I see some C#, Go, Python. Maybe there's some front end stuff too, but I'm allergic to that.
mdaniel
Having both postgres and rabbitmq strikes me as overkill - I wonder if they'd be open to a PR to harmonize to just PG, slimming down the ops burden. I'll have to dig into it when I'm back on my desktop to see what exactly RMQ is doing for a media server
zoriya
rabbitmq is used to communicate between services. I just introduced it but it will be used to: - handle websockets communication with the client - create workqueues for new items creation/rescan requests - Watch list syncing with external services - and to synchronize different replicas when deployed on k8s (still need work on this point tho)
JeremyNT
I'm not here to talk you out of rabbitmq now that you've already added it for this project, but IMO it's worth taking a look at PG notify/listen and keeping it in mind for simple use cases.
It's not nearly as powerful but it can be a pretty good starting point before pulling in more dependencies.
roomey
Rabbit mq is great. I found it particularly useful when some parts of a program are inherently slower than other parts.
It offers a very robust and tested queuing system, and is pretty tiny to run. It lets you keep things very simple.
NortySpock
How tiny is "pretty tiny" in your opinion?
I've been playing around with NATS, which is hovering at just under 10MB of RAM on each of 3 nodes, while passing an average of 1 message per second.
I am liking it, though NATS clearly has a less strict queue ordering policy when I throw a burst of messages at it.
Edit: actually another node is at 22MB, so take what you will from that.
undefined
lyu07282
Interesting project, the only question i have is about this:
> seek effortlessly without waiting for the transcoder
Depending on the container and codec this was always an issue. How did you solve that problem? are you not using libav?
zoriya
I run ffmpeg on small segments of video and when you seek too far from the current transcoded position, i create another ffmpeg process. The hard part is making sure those segments can be watched without gaps or issues and no audio/video segment is repeated. If there is enough interest about it I might make a blog post explaining this in details
hruzgar
I'm using the time skip/seek functions more than I should and Plex, Jellyfin, Emby are really not good in that department. I was WAITING for somebody to fix this problem. Plex, Jellyfin, etc. None of them came close to the youtube experience. It always felt very slow and clunky. I can't thank you enough for this really. Thank you very much for addressing this issue and creating this amazing project!
zoriya
Thanks for the nice words, I must say I was not expecting that many people to like kyoo. That's really heartwarming <3
jzb
Pity that they don’t handle music. That’s my primary use of Plex: managing a music library. I feel like that’s a secondary focus for Plex, too, but it’s good enough.
aloer
Just the other day I was setting up Jellyfin and tailscale on an n100.
It worked fine locally but sharing via tailscale with a family member across the world somehow broke things. It took about a minute for the stream to start despite a fast enough upload speed. Might be ping related?
I will give this a try
napkin
I had this problem too! Jellyfin behind a reverse proxy over Wireguard. For intercontinental visitors (high latency), there would be an initial burst of reasonable transfer speed, but within seconds, slow to an unusable crawl. It took a long time to identify the problem as relating to packet congestion.
Try changing Linux's default congestion control (net.ipv4.tcp_congestion_control) on your Jellyfin & reverse proxy servers to 'bbr'. I don't understand the details- there might be negative consequences [1]- there might be better congestion algos- but for me, this completely solved the issue. Before, connections would stall out to <10%, sometimes even 1% line rate. In quiet/optimal network conditions.
Also, Caddy enables HTTP/3 by default. I force it to HTTP/2.
I should probably investigate using later versions of bbr, though.
cchance
My issue ended up being the auto-bandwidth negotiation being sorta shitty in jellyfin, i set my remote over headscale web browser to 10mbit and the tv shows play very quick though could maybe be a bit faster.
overbytecode
Curious, what was your process debugging/diagnosing this? How did you reach the conclusion that it was packet congestion?
napkin
Wish I could say it was more sophisticated than slow trial and error. I tried changing many different aspects: MTU, forcing different routes/peering through different VPSs, various reverse proxy configurations.
I guess what started leading me down the right path was a more methodical approach to benchmarking different legs of the route with iperf: Client <-> reverse proxy, reverse proxy <-> jellyfin server. I started testing those legs separately, w/ and w/o Wireguard, both TCP and UDP. The results showed that the problem exhibited at the host level (nothing to do with Jellyfin or the reverse proxy), only for high latency TCP. The discrepencies between TCP and UDP were weird enough that I started researching Linux sysctl networking tuneables.
There might be something smart to say about the general challenges of achieving stable high throughput over high-latency TCP connections, but I don't have the knowledge to articulate it.
nyolfen
it looks very good! is it possible to cast to a tv? this is the only thing that has me stuck on plex, which i otherwise do not like
zoriya
Not yet, I plan on having that available in the next 6 months since it's pretty important, but I want to have most client features finished before that
beepbooptheory
Casting used to be pretty bad on Jellyfin but is a lot better these days. Don't remember the last time I had any friction with it.
t0mas88
The Jellyfin Android TV app had a lot of improvements over the last year or so. But they're still working on a new playback approach that works better with transcoding of audio and HDR/4k for compatibility with devices. Because it works now maybe 95%, but that really annoys users when they try to watch some of that 5%...
unstatusthequo
Load on Mac browser, Airplay to AppleTV. Same idea with Windows and *cast.
nyolfen
alas, i am the guy on a linux desktop
xk3
You might want to look into catt for Chromecast:
- https://github.com/skorokithakis/catt/
But I'm not aware of what the equivalent would be for Amazon-type casting
I wrote a wrapper around catt for playing music to my house speaker-groups. It also works with video but I don't cast video as often so that part might be buggy--in that case better to use catt directly
maxglute
I'm glad more options are cropping up with the direction plex is heading. I'd like to see someone build a hook/connect straight into SONARR/RADARR where you can just click on a calendar entry and jump to a player. They're probably weary of doing it themselves due to legality. But combining self hosted media with... pirate management into one interface would be convenient.
onedr0p
You might be interested in https://github.com/midarrlabs/midarr-server, that has integrations into Sonarr/Radarr.
ALittleLight
Looks good. I went to the demo page and clicked on a few movies and scrubbed through at random. Everything worked flawlessly.
I'm curious to know about scaling. How many users does a server (and of what kind) support? What's backing your demo page and how many users would overload it?
zoriya
Thanks a lot. The demo is the docker-compose from the README on an oracle's VPS always free tier. I never tried to benchmark the server, but the limiting factor will certainly be the encode speed of the machine. If your clients all needs transcoding of different h265 8K movies at the same time, you would need vastly different GPU/CPU power than for the same amount of users with direct play.
ALittleLight
I'm impressed you can host it on the Oracle free tier. Great project, thanks.
doublerabbit
Meanwhile I just host locally a Minidlna.
Ripped from DVD the night before, Make snacks, scroll down list of filenames, series and watch.
Never understood why I've needed a whole Netflix interface when I just want to watch a movie.
zoriya
it's good when you watch things from outside your home network. you can transcode things to watch on the train/subway or somewhere you don't have stable internet access.
gosub100
You don't realize the use case until you try it.
BeetleB
Nice, but ... will it ever have OTA/DVR support? Plex does it better than any other service (unless you pay large $$$).
Get the top HN stories in your inbox every day.
I started working on Kyoo almost 5 years ago because I did not like the options at the time. It started as a "sandbox" project where I could learn about tech I was interested in, and slowly became more than that.