Showing posts with label jellyfin. Show all posts
Showing posts with label jellyfin. Show all posts

25 June 2025

Kodi and Jellyfin Intro Skipper

 I wanted to be able to skip the longer intro sequences like you can on many streaming services. In my search, I found a plugin and addon to accomplish the task.


Installation

  • Add Intro-Skip Plugin to Jellyfin
    • Add the Repository
      • Jellyfin Web Interface -> Hamburger menu -> Dashboard
      • Click on "Catalog" under Plugins
      • Click on the settings wheel at the top
      • Click on the "+"
      • https://intro-skipper.org/manifest.json
    • Install the Addon
      • On the Catalog page scroll down to the Intro-Skipper section and install "Intro Skipper"
      • Restart Jellyfin to finish the installation
  • Add the Jellyskip Addon to Kodi

    Appendix

    Sources


    03 May 2025

    Reverse Proxy for Jellyfin

     As I wanted to be able to access Jellyfin on the go, I needed to put it behind my reverse proxy.


    Jellyfin Changes

    Tell Jellyfin that it is behind a proxy so it will ignore the proxy ip and log the correct ip
    • https://jellyfin.home.arpa:8920
      • hamburger menu -> Networking
        • Add the IP of your reverse proxy to "Known Proxies"
      • Restart Jellyfin


    Reverse Proxy

    • Add the below to your NGINX config:

        location = /jellyfin {
            return 301 $scheme://$http_host/jellyfin/ ;
        }
        location /jellyfin/ {
            auth_basic off;
            proxy_pass https://jellyfin.home.arpa:8920/;
            proxy_buffering off;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_set_header X-Forwarded-Host $http_host;
            proxy_set_header X-Forwarded-Port $server_port;
        }
        location /jellyfin/socket {
            # Proxy Jellyfin Websockets traffic
            auth_basic off;
            proxy_pass https://jellyfin.home.arpa:8920/socket;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            # proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_set_header X-Forwarded-Protocol $scheme;
            proxy_set_header X-Forwarded-Host $http_host;
            proxy_set_header X-Forwarded-Port $server_port;
        }
    • Restart NGINX


    Appendix

    Sources


    14 September 2024

    Setting up a Jellyfin media server

    I wanted to install a media server to help manage my growing library. The top two options that I found are Plex and Jellyfin. I have used Plex in the past, but disliked when they started requiring an account so I went with Jellyfin.


    Create the container

    • bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/jellyfin.sh)"


    Set Static IP and hostname

    • Proxmox -> jellyfin -> Network -> net0 -> Edit
      • set static ip
    • Restart the container
    • Proxmox -> jellyfin -> Console
      • ping 192.168.1.1
        • this ensures that the container will show up on Unifi's list of clients
    • Unifi -> Clients -> Select the jellyfin -> Settings
      • give it a memorable name
      • check "Fixed IP Address"
        • it should auto-populate with current IP
      • check "Local DNS Record"
        • jellyfin.home.arpa


    Setup Jellyfin

    • Self signed SSL certificate:
      • https://jellyfin.org/docs/general/networking/
      • jellyfin -> Console
        • mkdir -p /home/jellyfin
        • cd /home/jellyfin
        • openssl req -x509 -days 3650 -newkey rsa:4096 -keyout ./privkey.pem -out cert.pem -nodes -subj '/CN=jellyfin.home.arpa'
          • -subj '/' can work if you can override ssl verification on the client, but Kodi doesn't have that option
          • -subj '/CN=localhost' was causing jellyfin to crash here are some keywords from the crash:
            • Error occurred during a cryptographic operation
            • MapOpenSsl30Code
        • openssl pkcs12 -export -out jellyfin.pfx -inkey privkey.pem -in cert.pem -passout pass:
        • chown -R jellyfin /home/jellyfin
        • chgrp -R jellyfin /home/jellyfin
    • http://jellyfin.home.arpa:8096
      • create user/pass
      • hamburger menu -> Dashboard -> Networking
        • Check "Enable HTTPS"
        • Check "Require HTTPS"
        • Custom SSL certificate path -> /home/jellyfin/jellyfin.pfx
        • Save
    • Restart the jellyfin container
    • Test the self-signed certificate
      • curl --cacert cert.pem https://jellyfin.home.arpa:8920
    • https://jellyfin.home.arpa:8920
      • hamburger menu -> Dashboard -> Users
        • Add User
        • Name
        • Password
        • Check "Enable access to all libraries"
      • hamburger menu -> Dashboard -> Plugin -> Catalog -> Kodi Sync Queue
        • Install
      • Restart jellyfin


    Add to Kodi on Google TV

    • Have Kodi trust the self signed certificate
    • Enable adb (Android Debug Bridge)
      • Determine IP of the Google TV
        • Settings -> System -> About -> Status
      • Enable Developer mode
        • Settings -> System -> About -> Build Number -> Click 10 times or until developer mode is unlocked
      • Enable USB debugging (also enables remote debugging)
      • install adb onto a computer to be able to modify the Google TV remotely
        • sudo apt install android-tools-adb
    • Used adb to add new certs file to existing
      • adb pull /sdcard/Android/data/org.xbmc.kodi/files/.kodi/addons/script.module.certifi/lib/certifi/cacert.pem
      • cat cacert.pem cert.pem > updatedcacert.pem
      • adb push updatedcacert.pem /sdcard/Download/
      • echo -e '<advancedsettings version="1.0">\n<network>\n<catrustfile>special://masterprofile/updatedcacert.pem</catrustfile>\n</network>\n</advancedsettings>' >advancedsettings.xml
      • adb push advancedsettings.xml /sdcard/Download/
    • Have Kodi use the new certs
      • Google TV -> Settings -> Apps -> Kodi -> Permissions -> Files and Media -> Allow management of all files
      • Kodi -> Settings -> File Manager
        • Left Side
          • Add Source -> Browse -> External Storage -> Download -> OK
          • Open Download
        • Right Side
          • Profile directory
        • Long press the files one at a time in the Left pane and select copy
      • Restart Kodi
    • Install Jellyfin on Kodi
      • Kodi -> Settings -> File Manager -> Add Source
        • https://kodi.jellyfin.org
      • Kodi -> Settings -> AddOn Browser
        • Allow install from unknown sources when prompted
        • Install from zipfile -> jellyfin -> repository.jellyfin.kodi.zip
        • Install from Repository -> Kodi Jellyfin Add-ons -> Video Add-ons
        • Select Jellyfin add-on and install
      • Cancel adding the server
      • Disable "Verifiy connection" -> OK
      • Restart Kodi
      • Select Manual server add (as auto does it by IP)
        • https://jellyfin.home.arpa:8920
        • sign in using user/pass
        • Playback -> Addon (default)
        • Choose which libraries you want to sync
          • click "All"
          • click "OK"
      • After Syncing is complete restart Kodi
      • Settings -> Add-ons -> My add-ons -> Video add-ons -> Jellyfin
        • Configure -> Sync -> Enable Kodi Sync Queue -> OK


    Appendix

    Sources