Background: I’ve been writing a new media server like Jellyfin or Plex, and I’m thinking about releasing it as an OSS project. It’s working really well for me already, so I’ve started polishing up the install process, writing getting started docs, stuff like that.
I’m interested in how other folks have set up their media libraries. Especially the technical details around how files are encoded and organized.
My media library currently has about 1,100 movies and just shy of 200 TV shows. I’ve encoded everything as high quality AV1 video with Opus audio, in a WebM container. Subtitles and chapters are in a separate WebVTT file alongside the video. The whole thing is currently about 9TB. With few exceptions, I sourced everything directly from Blu-ray or DVD using MakeMKV. It’s organized pretty close to how Jellyfin wants it.
What about you?
~70TB, ~2500 movies, and ~250 series with , varying quality, I’m still trying to replace lower quality stuff with better versions
My library is almost cracking 18TB. Backing up all documents, pictures, videos and profile/settings dumps for apps and laptops. Also have plenty of moving Linux ISOs, 1359 longer isos and 269 smaller iso series.
My Linux ISO collection take up around 12TB, 268 of smaller ISOs, and 751 big boi ISOs.
Nowhere near as big as yours. I haven’t bothered checking, but probably something like 100 movies and about the same number of TV shows (only a handful of series). It consists pretty much only of what I’ve ripped from physical media, plus a handful of things my SO uploaded. Total storage is about 2TB, and mostly DVDs w/ a handful of Blurays. Rips are full quality, and mostly ripped from MakeMKV, with a handful ripped w/ Handbrake.
We don’t watch a ton, but I do order new stuff periodically, so it slowly grows (most recent addition is Adventure Time).
About 18 TB.
150 shows, 4000 movies. 25k songs. Tightly curated, playlists, mostly 1080p with truly important stuff 4k.
Like 7
Why start anew instead of forking or contributing to Jellyfin?
The short answer is because it’s a fun project, and I wanted to see if I had it in me to make exactly the media server I want.
The longer answer is that I wanted something dramatically and fundamentally different from what either Jellyfin or Plex have to offer.
- Can run without breaking a sweat on junk/old/cheap hardware like a Raspberry Pi or old laptop.
- Can be safely Internet-facing – no anonymous access, and no web-based admin features or API.
- Hyper-lean and minimal. All-in, I wanted something on the order of 1MB for client app, server, all dependencies, everything.
I don’t see either of those goals happening with a contribution or fork, because achieving them would require some dramatic feature deprecation.
Does it not need to transcode then if it runs on cheap hardware?
Yep, transcoding is the main reason I had to buy any new hardware when getting my library going with Jellyfin.
For me, the main draw of Jellyfin wasn’t the transcoding. It was being able to browse and stream my library from anywhere. My partner and I would alternate weekends hanging out at each other’s places, and we just wanted access to the library from wherever we were and whatever device we were using.
I was willing to put up with weeks of encoding to get everything into a web-compatible format. But that’s just me and I know it’s not for everyone. I’m curious where the palatibility for that is on the spectrum more broadly.
All-in, I wanted something on the order of 1MB for client app, server, all dependencies, everything.
Okay that’s gotta be radically different!
Mine is sitting around 10TB, mostly podcasts and a few videos like graduations.
650 shows, 1400 movies, 1450 anime. Take up like 130TB or something
You got them all in uncompressed 8K or something!? How on earth does it take up that much space?
1450 anime
Since you listed them separately from shows does the count also include anime movies?
Still, if I add up both my shows and movie I’m at 1447. Damn you!
13200 movies 1200 shows
Over a 1/4 PB of data.
OK Netflix, you don’t count 🤣
Haha. Thanks. I really didn’t want to pay Netflix or any other streaming service. But it might have been cheaper than hdds and electricity.
This is something I’ve been building for over 10 years at this point. I’ve gone through so many iterations of servers and storage architecture. I’ve lost my entire TV and movie library multiple times. (I don’t back it up because a. It’s expensive at this scale and b. this data is easy to rebuild over time.)
It’s been a part of learning about hosting and data management that I’ve brought to/from my work.
and b. this data is easy to rebuild over time.
You say that, but some shows and movies are getting very hard to find these days. I lost one show to an external HDD that died, and I have never been able to find it again :(. That’s part of the reason I recently went to a DAS in my setup instead of a NAS - backblaze backs the entire 40TB DAS up for ~$90 a year!
What did you lose?
And there are plenty of shows that I’ve had to manually recover at times. And plenty more that I can’t find a copy of at all. I don’t get too attached to much, and those I’ll usually be seeding on multiple machines myself at that point.
I’m in a similar place with books and comics. Of course, nowhere near the Jupiter size collection of media you have, but easily 2.5TB+ of just books and comics.
My wife, my kids and I are all avid readers, so we are always sharing some book or comic arc. We’re all rerunning all of Lobo’s arcs, it was Deadpool a couple of weeks ago (that should tell you all anyone needs to know about our family 😜)
2.71Tb/515 series for TV, 6.28Tb/1176 titles in Movies.
Almost everything in MKV because that’s what I prefer.
I use Plex so it’s organized according to their requirements.
Everything is stored with a redundant backup on a Synology NAS with 6/9 HDD bays filled, totaling 48Tb in total storage space.
I run two servers (one on the Synology, one on a NUC-type Asus box) along with all my other systems.
Oh, and I have dual antenna tuners connected as well for live TV, DVR and playback.
My Jellyfin library:
1,152 - Movies
552 - Shows
37, 062 - Episodes
491 - Albums
6,558 - Songs
362 - Music Videos
14 - Concert Films
Files are a mix of 1080p and 4K. 264 and 265. Standard and REMUX.
Total space used is currently 149.90TiB
Ahh, I like how you split Concert Films and Music Videos. I’ve been pigeon-holing my Short Films, Mini-Series, and TV Movies into just the two categories: Shows and Movies. Makes way more sense having separate categories.
Kinda unrelated to OOP, but out of curiosity, what does your storage setup look like? Do you keep stuff reasonably backed up with that much data?
Ah yes. My storage system is 2 x Supermicro CSE-846 cases. Only one has a CPU and motherboard, the other is acting as a plain Jane JBOD.
Hard drives I have 21 x 8TB 7200RPM mix of Seagate and Western Digital and 4 x 16TB 7200RPM from Seagate. I use mergerfs and snapraid. Mergerfs presents all the 21 8TB drives as one mount point. Snapraid uses the 4 16TB drives to provide 4 parity drives. Note that snapraid is not live and the parity is only updated after running a “snapraid sync” which I run nightly.
I only backup my songs and music videos. The rest is easy to get again. I have a script that generates a list of every single file I have each night. So if the day comes it wouldn’t take too long to get back to where I was. The other reason I use mergerfs is if 1 drive dies, I only lose the files on that one drive and not the entire array. The truely important stuff such as tax documents, mortgage details, family pictures, will & estate documents are stored on a 2 x 8TB RAID1 and all backed up nice a safe using Proxmox PBS. The PBS datastore is synced to 2 remote locations as well as to external drives that I keep offline and rotate.
Nice write-up. I thought I had a large library (24TB) and my off site backup is starting to get full. I backup everything though but I have long debated on if there’s a point of keeping movies and TV since they’ll likely always be available. Anyway, I never thought of generating a list of files and eliminating the stuff that’s not particularly important. Good idea.
I used to back everything up before I broke the 50TB mark. Just can’t justify it now. I even looked at LTO drives for backing up the multimedia but they’re still to expensive for the higher capacity drives. And then you need tapes…
All the truely good content will always be out there somewhere on the net.
The script I use to generate the file lists is very very basic. Nothing special no formatting the lists or anything since it’s just for that oh balls, everything is gone scenario.
ls -alR /mnt/volume1/media > /mnt/volume2/backups/file_lists/media.txt
ls -alR /mnt/snapraid/data* > /mnt/volume2/backups/file_lists/snapraid.txt
Those text files are also part of the files backed up with PBS so I can always go back and restore previous versions of them. You may ask why I generate the list twice? The first is just everything inside the media folder on the volume1 mount point. The second let’s me see what files are on each individual drive so if only 1 drive dies I can just grep the text file and output to another text file and show me what is on that 1 drive.
Thanks for the detailed write up!
About the same here, minus the music videos (only a few dozen there for the kids), plus a fitness library, so I’d say it evens out to roughly equal.
Mostly HEVC but I still have some h.264 floating around that I have no interest in reencoding.
No AV1 at all until I get a new Intel GPU or newer Intel CPU to handle transcoding it nicely.
There’s some relatively inexpensive NVIDIA cards now with AV1 hardware encoding. I’m on my third round of re-encoding my whole library (HEVC, then VP9, now AV1). For 1080p NTSC, I get about 13x speeds on NVENC AV1, whereas with VP9 I was CPU-bound at around 4x. Definitely worth the upgrade, in case you’re on the fence.
You do realize that you lose quality with wach encode, right?
It’s not AS bad when bitrates are high, but it’s still there.
True.
When I migrated off of Jellyfin, I re-encoded everything up to that point directly from the Blu-ray rips wherever possible. Because I’d already started culling those for space, I did end up just doing another pass on the first round of encoding for a portion of the library. There’s some noticable degradation on those, and I’ll want to re-rip those at some point.
Fortunately, I’ve got my process pretty dialed in for ripping and I actually enjoy it, so if I ever have a quality issue, it’s not a huge ordeal to re-rip and encode.
So what card are you using?
I went with a GeForce RTX 4060. Cost was about $300.
Cool, thanks!
Yeah I just dont have a need with no devices to handle it natively, while the rest of my library can be. Building a new htpc media player for the living room next, new server after that.
New because I’m using a lenovo tiny as the server, which means either I build a new box completely, or I find the right used workststion tiny/mini/micro that can handle av1. Complete build will do a lot more (well, the t/m/m does too, but not to the extent my big box builds are set up for).
Nice try FBI Agent.
Nice try Universal Studios!