Claude-skill-registry jellyfin

install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/jellyfin" ~/.claude/skills/majiayu000-claude-skill-registry-jellyfin && rm -rf "$T"
manifest: skills/data/jellyfin/SKILL.md
source content

Jellyfin - Media Server Management

Overview

The

jellyfin
command manages Jellyfin media server instances using Podman Quadlet containers. It supports hardware transcoding and FUSE filesystem compatibility for network mounts.

Key Concept: Multi-instance support allows running multiple media libraries. FUSE compatibility enables rclone/sshfs mounts for cloud or remote storage.

Quick Reference

ActionCommandDescription
Config
ujust jellyfin config
Configure Jellyfin
Delete
ujust jellyfin delete
Remove instance config and container
Logs
ujust jellyfin logs [--lines=N]
View container logs
Restart
ujust jellyfin restart
Restart server
Shell
ujust jellyfin shell [-- CMD]
Open shell or execute command in container
Start
ujust jellyfin start
Start Jellyfin media server
Status
ujust jellyfin status
Show instance status
Stop
ujust jellyfin stop
Stop Jellyfin media server
URL
ujust jellyfin url
Show web UI access URL

Configuration

Parameters

ParameterLong FlagShortRequiredDescription
Config Dir
--config-dir
-c
YesConfiguration directory
Cache Dir
--cache-dir
-YesCache directory (transcoding)
Media Dir
--media-dir
-YesMedia library path
Instance
--instance
-n
NoInstance number (default: 1)
GPU Type
--gpu-type
-g
NoGPU: nvidia, amd, intel, auto
Image
--image
-i
NoContainer image
Tag
--tag
-t
NoImage tag (default: stable)
Workspace
--workspace-dir
-w
NoOptional mount to /workspace
Bind
--bind
-b
NoBind address
Port
--port
-p
NoService port
Lines
--lines
-l
NoLog lines to show

Configuration Examples

# Basic installation (long form)
ujust jellyfin config --config-dir=~/jellyfin/config --cache-dir=~/jellyfin/cache --media-dir=~/media

# With NVIDIA GPU for transcoding
ujust jellyfin config -c ~/jellyfin/config --cache-dir=~/jellyfin/cache --media-dir=~/media --gpu-type=nvidia

# Second instance for different library
ujust jellyfin config -c ~/jellyfin2/config --cache-dir=~/jellyfin2/cache --media-dir=~/videos --instance=2

# With short forms
ujust jellyfin config -c ~/config --cache-dir=~/cache --media-dir=~/media -n 1 -g nvidia

Update Existing Configuration

Running

config
when already configured will update the existing configuration, preserving values not explicitly changed.

Shell Access

# Interactive bash shell
ujust jellyfin shell

# Run specific command (use -- separator)
ujust jellyfin shell -- df -h

# Shell in specific instance
ujust jellyfin shell --instance=2 -- ls /media

Lifecycle Commands

Start/Stop

# Single instance
ujust jellyfin start --instance=1
ujust jellyfin stop --instance=1

# Short form
ujust jellyfin start -n 1
ujust jellyfin stop -n 1

# All instances
ujust jellyfin start --instance=all
ujust jellyfin stop --instance=all

View Logs

# Follow logs
ujust jellyfin logs

# Specific instance with line count
ujust jellyfin logs --instance=1 --lines=100

# Short form
ujust jellyfin logs -n 1 -l 100

Get URL

ujust jellyfin url
# Output: http://localhost:8096

# Specific instance
ujust jellyfin url --instance=2

Port Allocation

InstancePort
18096
28097
38098
N8095+N

Hardware Transcoding

GPU Types

GPUFlag ValueTranscoding
NVIDIA
--gpu-type=nvidia
or
-g nvidia
NVENC/NVDEC
AMD
--gpu-type=amd
or
-g amd
VAAPI
Intel
--gpu-type=intel
or
-g intel
QuickSync

Enable GPU

ujust jellyfin config -c ~/config --cache-dir=~/cache --media-dir=~/media --gpu-type=nvidia

Verify GPU

# Check inside container
ujust jellyfin shell -- nvidia-smi  # or vainfo for AMD/Intel

FUSE Filesystem Support

Jellyfin containers support FUSE mounts (rclone, sshfs) for remote storage.

Mount Before Starting

# Mount cloud storage
rclone mount gdrive:media ~/media --daemon

# Then start Jellyfin
ujust jellyfin start 1

Why Host Networking?

Jellyfin uses host networking for:

  • DLNA discovery
  • mDNS/Bonjour
  • Chromecast

Configuration Files

FilePurposeLocation
Quadlet unitService definition
~/.config/containers/systemd/jellyfin-1.container
Instance configSettings
~/.config/jellyfin/instance-1.env
Jellyfin dataLibraries, users
<CONFIG>/
Transcoding cacheTemp files
<CACHE>/

Common Workflows

Initial Setup

# 1. Create directories
mkdir -p ~/jellyfin/{config,cache}

# 2. Configure Jellyfin
ujust jellyfin config -c ~/jellyfin/config --cache-dir=~/jellyfin/cache --media-dir=~/media --gpu-type=nvidia

# 3. Start it
ujust jellyfin start

# 4. Access web UI
ujust jellyfin url
# Open http://localhost:8096

Multiple Libraries

# Movies library
ujust jellyfin config -c ~/jellyfin-movies/config --cache-dir=~/jellyfin-movies/cache --media-dir=~/movies -n 1

# TV library
ujust jellyfin config -c ~/jellyfin-tv/config --cache-dir=~/jellyfin-tv/cache --media-dir=~/tv -n 2

# Start both
ujust jellyfin start --instance=all

Cloud Storage

# 1. Mount cloud storage
rclone mount gdrive:media ~/cloud-media --daemon --vfs-cache-mode writes

# 2. Configure Jellyfin pointing to mount
ujust jellyfin config -c ~/jellyfin/config --cache-dir=~/jellyfin/cache --media-dir=~/cloud-media

# 3. Start
ujust jellyfin start

Initial Configuration

First-time setup via web UI:

  1. Open
    http://localhost:8096
  2. Create admin user
  3. Add media libraries
  4. Configure transcoding (if GPU)
  5. Set up remote access

Troubleshooting

Jellyfin Won't Start

Check:

ujust jellyfin status
ujust jellyfin logs --lines=50

Common causes:

  • Port conflict (8096 in use)
  • Invalid paths
  • GPU driver issues

Transcoding Fails

Check:

# View logs for transcoding errors
ujust jellyfin logs | grep -i transcode

Common causes:

  • GPU not passed through
  • Missing codec support

Fix:

# Reconfigure with GPU
ujust jellyfin delete
ujust jellyfin config -c ~/config --cache-dir=~/cache --media-dir=~/media --gpu-type=nvidia

Media Not Found

Check:

  • Media directory exists
  • Correct path in config
  • Permissions

Fix:

# Verify path
ls ~/media

# Reconfigure with correct path
ujust jellyfin delete
ujust jellyfin config -c ~/config --cache-dir=~/cache --media-dir=/correct/path

DLNA Not Working

Cause: Network isolation

Jellyfin uses host networking, but ensure:

  • Firewall allows mDNS (5353/udp)
  • Same network as clients

Cross-References

When to Use This Skill

Use when the user asks about:

  • "install jellyfin", "setup media server"
  • "jellyfin not working", "jellyfin transcoding"
  • "jellyfin GPU", "hardware transcoding"
  • "multiple jellyfin", "jellyfin instances"