Skip to main content
🎤 Speaking at KubeCon EU 2026 Lessons Learned Orchestrating Multi-Tenant GPUs on OpenShift AI View Session
🎤 Speaking at Red Hat Summit 2026 GPUs take flight: Safety-first multi-tenant Platform Engineering with NVIDIA and OpenShift AI Learn More
AI

Automating Your Jellyfin Media Library with OpenClaw

Luca Berton 1 min read
#openclaw#jellyfin#self-hosted#media#automation#homelab

Self-Hosted Media + AI = Magic

I run Jellyfin on a Pi for my family’s media library. It’s great, but managing it — organizing files, checking what’s new, handling subtitles — is tedious. OpenClaw turns the tedium into conversation.

The Stack

Pi 5 (NAS):     Jellyfin + storage
Pi 5 (OpenClaw): Gateway + automation
Both on:        Local network, no cloud

What OpenClaw Does

1. Library Queries

“What movies do we have with Tom Hanks?” OpenClaw queries Jellyfin’s API and returns a list.

# Jellyfin API call
curl -s "http://jellyfin:8096/Items?SearchTerm=Tom+Hanks&IncludeItemTypes=Movie" \
  -H "X-Emby-Token: YOUR_API_KEY" | jq '.Items[].Name'

2. New Content Notifications

When new files appear in the media directory, OpenClaw notices and announces:

# In HEARTBEAT.md
# Check for new media files added in last 6 hours
# Notify via Discord with title and type

🎬 New in Jellyfin:

  • The Martian (2015) — Movie, 1080p
  • Planet Earth III E04 — TV, 4K Jellyfin library refreshed automatically.

3. Subtitle Management

“Download Dutch subtitles for The Martian”

OpenClaw uses the Jellyfin API to search for and download subtitles:

# Search subtitles
GET /Items/{id}/RemoteSearch/Subtitles/{language}

# Download subtitle
POST /Items/{id}/RemoteSearch/Subtitles/{subtitleId}

4. Storage Management

“How much space is left on the media drive?”

📊 Media storage: 1.8TB used / 4TB (45%) Movies: 1.2TB (142 titles) TV Shows: 450GB (23 series) Music: 150GB (3,200 albums)

Jellyfin API Integration

# OpenClaw configuration
tools:
  jellyfin:
    type: rest-api
    baseUrl: http://jellyfin.local:8096
    headers:
      X-Emby-Token: "YOUR_API_KEY"

Family-Friendly Commands

My kids use it too (via a family Discord channel):

  • “What can I watch?” → Age-appropriate suggestions from the library
  • “Put on something funny” → Random comedy from the library
  • “How long is Frozen 2?” → “1 hour 43 minutes”

The HandBrake Pipeline

When I rip Blu-rays (MakeMKV → HandBrake), OpenClaw monitors the output directory:

# Watch for new .mkv files in the rip directory
inotifywait -m /media/rips -e close_write |
while read dir action file; do
  # Notify OpenClaw
  curl -X POST http://openclaw:3000/api/webhook \
    -d "{\"message\": \"New rip completed: $file\"}"
done

OpenClaw then:

  1. Identifies the movie/show (from filename or API lookup)
  2. Moves it to the correct Jellyfin directory
  3. Triggers a library scan
  4. Sends a notification

Why Not Plex?

Plex wants cloud accounts, phone-home telemetry, and a subscription for basic features. Jellyfin is fully open source, fully local, and works perfectly with OpenClaw’s local-first philosophy.

My entire media setup: $0/month in subscriptions. Just electricity and the hardware I already own.

Share:

Luca Berton

AI & Cloud Advisor with 18+ years experience. Author of 8 technical books, creator of Ansible Pilot, and instructor at CopyPasteLearn Academy. Speaker at KubeCon EU & Red Hat Summit 2026.

Luca Berton Ansible Pilot Ansible by Example Open Empower K8s Recipes Terraform Pilot CopyPasteLearn ProteinLens TechMeOut