Additionally, Plex tends to revise their UI and inner workings in a way that favors everything but the core media sharing platform. They add TV stations, they mix in their streaming ad-supported channels with your search results, and push them before the friends and family stuff, making it tough to help other navigate to shared libraries.
I think, overall, Plex is a good shepherd for their product, but everyone knows the enshitificaiton process is inevitable. It's just a question of how long the timeline between "Plex is usable" and "Plex is sold to private equity and is now utter shit." I've been pleasantly surprised with the length, so far. But having an escape hatch is always a good idea, and Jellyfin seems to be nearing a parity.
Plex been swinging in the wrong direction for a number of years now.
I pointed out that Plex should do ebooks. It is a natural fit. They keep track of how far in a series or a show you are, they could keep track of where you are in a book. Many of the Plex idioms transfer well. It has a clear visual style that helps you to pick out the shows you might try, or shows like those you've already watched.
BUT IT'S NOT EVEN MEDIA, YOU'RE STUPID
Books were the first media, you must be illiterate.
WHY WOULD I WANT TO READ BOOKS ON MY BIGSCREEN TV!
Plex runs on my iPhone. And on yours too.
[banhammered]
But if you need more than one feature, I'm sure that in 10 or 15 minutes I could come up with a 90 page list of features. Without even trying.
>I would think the only thing I can think of is fully self-hosted login instead of their cloud option
Well shit. Even you can come up with one thing. Plex was awesome, and then Plex wanted to be the shittiest version of whatever CBS is calling their streaming service.
Also, they could handle audiobooks since they already stream music.
Instead, they want to sell me on streaming services when I started using Plex because I pirate my media.
I do see one issue with books that other media doesn't have. That is the ability to interact. When I use my e-reader, I like features like highlighting, taking notes, dictionaries, and other features that are more complicated that just streaming rendered images from a book.
That's just a book format issue, but I'm on board.
>They already let you steam libraries of photos.
Well, about that... they're kind of shit at it. Photos have always been their least favorite supported media. Not much in the way of metadata support, unable to organize them. But it brings me to another problem... they don't understand what media types are.
They support audio, but call it music. This means, just for instance, that there's a shitty icon for the library... I made a comedy album library, Plex. Steve Martin the banjo player and Steven Martin the comedian are the same human, but I don't want one album recommended as related to the other. And I don't want to see the little music note icon for the library either. Think of audio as "audio that can have many types" rather than music. It's the same with images... what if I want to have a library full of van Gogh's works? Why are you trying to mix these in with pictures of my nieces?
>Also, they could handle audiobooks since they already stream music.
But they can't, not really. Because they think all audio is music, their interface doesn't handle it... no one wants to randomize the play order of the chapters of a book. And they'd actually like to keep a bookmark of where they stopped listening. But because "all audio is music" their model is fundamentally broken.
>When I use my e-reader, I like features like highlighting, taking notes, dictionaries, and other features that are more complicated that just streaming rendered images from a book.
Well, if they implemented it correctly, it wouldn't be exactly "streaming images from a book". And they already do stuff with related media in a sophisticated fashion. If you want to see the trailers and making-ofs for a a movie, those are available right from the menu. Dictionaries or highlighting or note-taking just isn't that big of a deal. They could do it, they don't want to. They'd rather be a streaming service.
I do agree that Plex doesn't seem like a good fit for books and comics. The first major hurdle is the lack of a singular metadata source that Plex can hook into for metadata - although this year has shifted with Hardcover and MangaBaka. Plex also uses a filename parsing mechanism (like Kavita does) which has drawbacks since books and comics have an extremely wide variety of naming conventions and lack of good tooling.
>which has drawbacks since books and comics have an extremely wide variety of naming conventions
I actually have that part figured out. For periodicals too, like comics. The real trick with those is that it's often not that easy to find the ISSNs for them, they mostly don't list them on the inside cover.
Despite the creator having strong views on coding style and UI/UX, Calibre is still by far the best tool to manage ebooks.
I was furious when they removed podcasts as they are a fit for the platform and it seems like they just didn't want to maintain them anymore.
Plex handling anime/tv/movies is fine. I can kinda-sorta accept music too because PlexAmp is pretty good.
Audiobooks and podcasts require a very different experience. Books even more so.
Books specifically are an issue because getting a reliable metadata source for them is a pain in the ass. I know, I've built a tool for myself to grab my book reviews locally and enrich the data. There are SO MANY variants of a single book that the process ends up being manual way too often.
* Better iOS/tvOS/OSX video playback (just buy Infuse because it can play so many titles the Plex player cannot)
* Add full context menus everywhere. Playlists are virtually useless for anything other than playback in order or randomly. Why can't I multi-select items on a playlist and move them to another playlist?
* Subtitle settings turn off between episodes
* Let me sort by file size so I can watch the disk gobbling files first
Thank God for python-plexapi and a bunch of scripts I use to organize an unwieldy library.
There is actually a way to fix this! Log in and navigate to: https://app.plex.tv/desktop/#!/settings/account
On this page, scroll down past the Security section to Audio & Subtitle Settings under Settings, and edit the account-wide language settings there.
One caveat; any movies or shows you’ve already watched with subtitles not enabled will still have subtitles not enabled.
> or any real db
sqlite is literally the state of the art database. I suspect you mean "database server" or something
you can enable global subtitles in settings.
Let me sort by file size so I can watch the disk gobbling files first
you can kinda deduce that if you sort by bitrate.
it sounds like you figured out a solution for yourself, already, but there's a lot of existing utilities like tinyMediaManager, WebTools-NG, Raddarr, Sonarr, etc. for doing media management. Plex is just a media server/player.
Ackshually file size isn't it, it's the runtime / size ratio. A 3 hour 4k movie being 20GB is fine. A 45 minute tv show episode with 10GB+ file size isn't.
You can pretty much vibe code a tool to create a playlist sorted by that ratio from worst to best in a 30 minutes.
Ideally keep it behind a VPN and give your family members access to it that way, and let local devices on your LAN connect to it without a VPN.
But I'm not all about getting something like Tailscale to work with my elderly mother's Roku device, nor teaching her how to use it.
I dunno if Tailscale works on Roku but otherwise that would indeed be entirely viable too, last I saw Jellyfin’s app on there is really good. Likely need a server powerful enough to transcode, though, lots of (all?) Roku devices don’t have hardware decoding for newer codecs like h.265. That’s one big benefit of an Apple TV, it can hardware decode damn near everything.
Y'all (collectively) have some good ideas.
But she likes the Roku. She's even got silicone skins for the remotes (plural; spares!), and two of them are tethered near the chairs that her and dad tend to sit in.
Also: The Roku stuff already exists, and is paid for, and it works with Plex (without a VPN, because my local Plex container didn't come with the caveat to avoid exposing it to the world).
Buying them one or more Apple TV devices to use instead seems expensive and likely to fail somehow.
Switching them to (cheap? linux?) PCs also sounds expensive and bad, particularly with my dad. He's certainly had more years to learn how to use a computer than I have, but he's spent most of the recent decades deliberately avoiding them. He hates them, and he doesn't want to learn them. He'd fall apart and give up on television entirely if I gave him a PC with a slick Logitech K400 to run it with. (He can drive a Roku with Youtube TV and Plex like a pro, but that's mostly only a D-pad and a back button.)
---
But since you and others have mentioned it: Transcoding. That's really not a big problem for many vaguely-recent PCs. With Plex, at least: The quite old i7-6700k desktop box I use for this transcodes to h.264 like a beast using its paltry iGPU, and does h.265 just fine with an old nVidia RTX 2080 if I elect to use that instead. Either way works well and never breaks a sweat.
It may have been a powerful machine a decade ago, but a used computer with a 6700k (or so) to serve media with is cheap these days. (And a brand-new power-sipping N150 box does transcoding waaaay better, even in credit-card form factor.)
By the way, I switched from Jellyfin to plain SMB + Nova Player (Android), which has basically the same interface, but no user profiles, and works over SMB, obviously. No transcoding, best format support, and best performance for large files I've found yet for my TCL Android TV.
It's silent, reasonably self-contained, and is appliance-like to get going (just dump OpenELEC onto an SD card, plug everything in, and then simply begin using it).
Plus, there's two HDMI outputs: One that connects directly to the the dumb TV and sends only video, while the other sends only lossless PCM audio to the once-rather-high-end AV receiver (that gets choked up on more-modern HDMI bitrates).
And that's great for me at my house, with my pile of gear, and with my technical proclivities.
But I'm not my mom, and this isn't my mom's house. :)
If their router supports it, configure the VPN there so it's available for the entire network.
Set up a Raspberry Pi (or similar) on their network that is configured with the VPN and runs a reverse proxy to expose the Jellyfin instance.
But yeah, either of those is going to increase your support burden.
Just mind your ACLs
One thing is when it can’t see the server it doesn’t just say it can’t see it, it acts like the issue is you’re not logged in and then when you log in (having to type your password manually each time, on a TV) it then fails.
This is only really diagnosable if you can access both the client and server and is a complete failure and very tedious experience if you only have client access.
Feels like I experience this at least once a month so couldn’t ever set this up for family members remotely.
"Bothering" with client-side password hashing, in the absence of TLS, is security theater. It provides only the most trivial protection against eavesdroppers.
If someone can steal an unhashed password, then they can also steal whatever hash you send instead. If you try to fix this with some kind of ad-hoc challenge-response protocol, then the attacker can just steal your session cookie after login.
There shouldn't even be a question of using insecure HTTP for anything that requires authentication.
Filtering out unsophisticated attackers I would not classify as "theater".
Read this, and let me know if the implications of port forwarding your server (or putting it on IP6) is readily apparent:
https://jellyfin.org/docs/general/post-install/networking/#s...
A lot of these users are not very sophisticated themselves. The least sophisticated attackers are likely to be the most numerous.
This is bad. People who say it's not bad (or worse, suggesting anyone dumb enough to publicly expose their server without TLS) are engaging in security snobbery.
What’s your threat model?
As far as I can remember that is more or less what is usually suggested by Jellyfin's devs, and I have yet to see something that convinces me about its inadequacy.
Everything else looks to me like unimportant issues, that would provide someone who's already logged in as a user minor details about your server.
Which means that the paths are pretty damn uniform.
Very few consumer connections can manage, say, 100 clients downloading a massive video file simultaneously.
However:
- This is EVEN MORE complex than "just" a reverse proxy.
- I'm not really sure it wins much security, because...
- at least I'm not relying on Jellyfin's built-in auth but I'm now relying on its/the plugin's OIDC implementation to not be completely broken.
- attackers can still access unauthenticated endpoints.
Overall I really wish I could just do dumb proxy auth which would solve all these issues. But I dunno how that would work with authing from random clients like Wii (and more importantly for me, WebOS).
VPN is one solution, and actually the only real solution for app-based jellyfin (TV, phone apps) I found so far.
Another is to host Jellyfin behind reverse proxy, and have a completely independent authgatein front of it (authentik, authelia). Jellyfin even supports LDAP (trough plugin), so you dont have to login twice per visit. The downside is only web interface can be hidden this way, as apps will break expecting jellyfin auth page and finding something else.
services:
jellyfin:
build:
dockerfile: jellyfin.Dockerfile
container_name: jellyfin
group_add:
- 44
- 993
environment:
- TZ=<redacted>
- JELLYFIN_PublishedServerUrl=<redacted>
- DOMAIN_NAME=<redacted>
ports:
- 8096:8096
- 8920:8920
- "7359:7359/udp"
volumes:
- ./config:/config
- ./cache:/cache
- ./config/index.html:/jellyfin/jellyfin-web/index.html
- type: bind
source: /mnt/storage/Video
target: /media
restart: always
devices:
- /dev/dri:/dev/dri
the device and group_add were for integrated graphics passthrough for transcoding (very highly recommend if you're containerized)i also recommend seerr to pair with jellyfin: https://seerr.dev/
my wife logs into the seerr ui with her jellyfin account, makes requests, they get grabbed by sonarr/radarr, which in turn place them in the correct library, and they're identified & labeled correctly on import
It's not a true self-hosted software. It just depends on what matters most to you.
With open-source software, this just isn't a problem. Even if the company behind it decides to turn evil, the community can fork it and continue on. Just look at Emby for example: it did a rugpull and changed to a proprietary license, so the community forked it and made Jellyfin.