Skip to content

Jellyfin

If you aren't allowed to own media anymore, then its impossible to steal it.

Jellyfin Setup

Readonly Shares and their Limitations

I give jellyfin read-only access to an NFS share. This has a functional caveat where you cannot store trickplay data etc. alongside media files. I've tried setting up a symlink thing where writes would get re-routed to another location but I never got anything that was working and stable. This also breaks the OnePace plugin so I have OnePace stored in my public folder that jellyfin has write access to. I also have OnePace stored in the AutoTV folder since it requires a folder set to be pure tv series instead of mixed content.

Jellyfin's Memory Problems

EDIT: This seems to be fixed now (10.11), for performance considerations I think I left these tweaks in, are they still relevant and good? who knows.

Lore here: https://github.com/jellyfin/jellyfin/issues/11588 https://github.com/jellyfin/jellyfin/issues/13165

You can see Jellyfin crashing because oom-killer killed it by journalctl | grep "oom-kill" Here's how I fixed it on a VM with 20GB of memory after adding a 40G swapfile

nano /etc/default/jellyfin

# comment out the MALLOC_TRIM_THRESHOLD i.e. disable it

# Tweaks
MALLOC_ARENA_MAX="2"
DOTNET_gcServer = "1"
DOTNET_GCConserveMemory = "9"
DOTNET_GCHeapHardLimitPercent = "0x5a"
DOTNET_GCHighMemPercent=48
NVIDIA_DRIVER_CAPABILITIES=all
NVIDIA_VISIBLE_DEVICES=all

General Configuration

  • General
    • Server name: ____
    • Custom CSS: see below
    • Parallel tasks and image encode limits: 1
  • Playback
    • Transcoding
      • Select All
      • Enable NVDEC
      • Enable hardware enc
      • Disable enc in HEVC or AV1
      • Enable Tone Mapping BT.2390
      • Transcode Thread # MAX
      • Transcode Path: your_caching_drive/transcodes (make sure parent dir exists)
      • Audio downmix boost: 2
      • Algorithm: RFC7845
      • Enc preset: fast
      • Allow sub extract on the fly
    • Resume
      • 5, 90, 5, 5, 300
    • Trickplay
      • Enable
      • Enable MJPEG
      • Enable keyframes
      • Non Blocking
      • High Priority
      • 10000ms interval
  • Plugins
    • Webhook
      • Generic
      • Name: Jellyseerr
      • URL: http://192.168.5.4:5055/api/v1/settings/jobs/jellyfin-recently-added-scan/run
      • Status: Enable
      • Item Added
      • Request Header: Key accept, Value application/json
      • Request Header: Key X-Api-Key, Value JELLYSEERR_API_KEY_HERE
  • Networking
    • Known Proxies: 0.0.0.0/0, 0.0.0.0/0 (yes, twice.)
  • Branding
    • Login disclaimer: Message me if there are any issues! Custom CSS:
    .homePage .emby-scrollbuttons {
        display: none;
    }
    .homePage .itemsContainer {
        flex-wrap: wrap;
                margin-right: -5em;
    }
    #indexPage, #moviesPage, #tvRecommendedPage {
    background-color: rgba(0, 0, 0, 0);
      background-image: https://keepalive.proxius.net/background.jpg;
      background-size: cover;
    }

Library Setup

  • Animated
  • Anime
  • Cartoons
  • Movies
  • Television
  • ┃AutoAnime┃
  • ┃AutoMovies┃
  • ┃AutoTV┃
  • Collections - created automatically when you begin creating collections.

-> <- Special character that doesn't piss Jellyfin off to use on "Auto" libraries so they're sorted into their own section. JF does not have library sorting beyond alphabetical atm.