Jellyfin
@keeb/jellyfinv2026.07.18.1
Security Notice
This extension includes AI agent skills that can modify AI assistant behavior. Review the skill files before installing.
01README
Jellyfin media server integration — library inventory, audit, and unidentified media detection
02Models
@keeb/jellyfinv2026.07.14.1jellyfin.ts
Global Arguments
| Argument | Type | Description |
|---|---|---|
| jellyfinUrl | string | Jellyfin server URL |
| model | string | Source model to read recently-processed items from |
| spec | string | Resource spec on that model |
| mediaTypeField | string | Attribute holding the media type key that indexes libraryMap |
| timestampField | string | Attribute holding the per-item processed timestamp (ISO) |
| statusField? | string | Optional attribute to gate on (e.g. status) |
| statusValue? | string | Required value of statusField to count an item |
fn refresh()
Trigger a full library rescan on all Jellyfin libraries
fn reindex()
Re-scan a library to fill in missing metadata and artwork. By default uses Jellyfin's Default refresh mode, which only fetches items that are missing data — fast and cheap. Use force=true to re-query providers for every item (slow, hammers TMDB/AniDB). Library is resolved from existing inventory data — run `inventory` first if it's stale or missing.
fn reindex_recent()
Smart reindex: read recently-organized items from the configured organizeSource, map their mediaType to Jellyfin libraries via libraryMap, and Default-mode reindex only the touched libraries. Advances a watermark each run so the next run only sees items processed since. Use seedWatermark=true on first run to skip the backlog.
fn scan_status()
Wait for Jellyfin to settle after a reindex before auditing. If no reindex was queued in the last `recentMinutes` (no recent `scan` resource with status 'started'), returns immediately — nothing to wait for. Otherwise it truly waits out any running RefreshLibrary scheduled task (the `refresh`/full-scan path), then applies a bounded `settleSeconds` idle window. NOTE: Jellyfin exposes no completion signal for item-tree metadata refreshes (what `reindex`/`reindex_recent` trigger) — those never regi
fn inventory()
Query all Jellyfin libraries and return item counts per library
fn series()
List all series in a library with metadata (genres, tags, overview, provider IDs) for taste matching and cross-referencing with MAL/TMDB. Library is resolved from existing inventory data — run `inventory` first if stale.
fn unidentified()
Find items with no metadata provider match (no TMDB/TVDB/IMDB ID)
fn audit()
Full library audit: find duplicates, misplacements, and structural issues
fn identify(dryRun: boolean)
Search Jellyfin metadata providers and apply matches for unidentified items
| Argument | Type | Description |
|---|---|---|
| dryRun | boolean | Search only, don't apply matches |
fn encoding_config()
Read and optionally update Jellyfin's server-wide encoding/transcoding config (EncodingOptions). Without `patch`, just reads. With `patch`, shallow-merges the object into the current config and POSTs it back. Use this to enable subtitle burn-in (needed for Samsung Tizen, which can't render ASS/SSA) by setting fields like `EncodingThreadCount`, `HardwareAccelerationType`, or codec lists. The current config is always written as a resource so you can inspect field names via `swamp data query`.
Resources
inventory(infinite)— Library inventory snapshot
scan(7d)— Library scan result
reindexWatermark(infinite)— High-water mark for reindex_recent — timestamp of the last run and the libraries it reindexed
unidentified(infinite)— Items Jellyfin could not match to a metadata provider
audit(infinite)— Full library audit — duplicates, misplacements, structural issues
series(infinite)— Per-library listing of series with genres, tags, overview, and provider IDs
identification(infinite)— Result of identifying items via metadata search
encodingConfig(infinite)— Snapshot of Jellyfin's EncodingOptions (server-wide transcoding config)
03Reports
@keeb/library-auditworkflow
library_audit.ts
Hoarder's evaluation of Jellyfin library health — duplicates, misplacements, structural issues
jellyfinaudithoarder
@keeb/unidentified-mediaworkflow
unidentified_media.ts
Summarize Jellyfin items with no metadata provider match after library scan
jellyfinaudit
04Skills
jellyfin1 file
05Previous Versions
2026.05.06.1
Modified 1 models
2026.04.22.3
2026.04.22.2
Added 1 skills
2026.04.06.1
2026.04.02.1
06Stats
A
100 / 100
Downloads
20
Archive size
33.1 KB
- Has README or module doc2/2earned
- README has a code example1/1earned
- README is substantive1/1earned
- Most symbols documented1/1earned
- No slow types (deprecated)1/1earned
- Dependencies pass trust audit2/2earned
- Has description1/1earned
- Platform support declared (or universal)2/2earned
- License declared1/1earned
- Verified public repository2/2earned
Repository
https://github.com/keeb/swamp-jellyfin07Platforms
08Labels