Jellyfin Sync
Direct Jellyfin sync for scenes with Jellyfin URLs; safe fallback search when a scene has no Jellyfin URL. Performer sync remains direct-URL-only. Syncs favorites, optional reliable Stash resume position, optional generated Jellyfin covers with configurable upload delay, local saving and manual re-upload task, performer Career Start/End metadata, and adds Open in Jellyfin / Generate cover buttons. Includes bulk cover generation and automatic cover directory exclusions.
Not reviewed yet
No reviewer has approved this plugin yet. Read the source before installing, or review it for the community.
sha256 5eca8a1c2282f88742a9086bd8f85c7c4f8409bbb682b9bdb9cfde918c506a97
- Last updated
Oct 6, 2026- First created
- Version
0.3.26-c10cb44- Package id
JellyfinSync- Commits
- 3
- Repo stars
- 2
Tasks
- Generate covers for all Stash videosManual bulk task. Generates/saves/uploads an 800x1200 cover for each eligible scene without refreshing Jellyfin metadata or waiting. Respects excluded directories and organized-only setting. Existing posters for eligible videos are replaced.
- Upload saved generated covers to JellyfinManual task. Scans pluginDir/generated for scene_<id>.jpg/png/webp posters previously created by this plugin and uploads them to the matching Jellyfin items.
Hooks
- Scene updateUse the exact Jellyfin URL when present; otherwise find the video with the original fallback search, refresh it, store its Jellyfin URL, and sync 5-star rating to Jellyfin favorite Runs on Scene.Update.Post.
- Performer syncSync performer favorite independently; metadata/image are updated only for non-favorite performer changes and only when a Jellyfin URL already exists Runs on Performer.Create.Post, Performer.Update.Post.
Settings
- Jellyfin base URL
stringExample: http://192.168.1.201:3096 (no trailing slash) - Jellyfin API key
stringJellyfin API key (Dashboard -> API Keys). - Jellyfin user ID
stringFavorites in Jellyfin are per-user. Enter the 32-character Jellyfin user ID. If the server has exactly one user, it can be detected automatically. - Verify TLS certificates
booleanEnable for a valid HTTPS certificate. Disable for local/self-signed HTTPS. - Process only organized scenes
booleanIf enabled, scenes with Organized=false are ignored. Does not affect performers. - Update performer information in Jellyfin
booleanUpdate the exact Jellyfin Person linked in the Stash performer URLs. No name or alias search is used. - Update performer image in Jellyfin
booleanUpload the Stash performer image as Primary image for the exact Jellyfin Person linked in performer URLs. - Sync playback position to Jellyfin
booleanWhen enabled, pausing or finishing a video in the Stash web player copies the exact player/Stash resume position to Jellyfin PlaybackPositionTicks for the configured Jellyfin user. Watched state and play count are not changed. - Generate and upload Jellyfin covers
booleanWhen enabled, Scene.Update.Post creates an 800x1200 poster from the Stash scene screenshot, overlays the Stash studio logo at the bottom-right when available, and uploads it as the Primary image of the exact Jellyfin item already resolved by this plugin. - Cover upload delay seconds
numberHow long to wait after queuing a Jellyfin metadata refresh before uploading a generated cover. Helps prevent Jellyfin from replacing the uploaded poster with refreshed artwork. Default 5 seconds. - Exclude directories from automatic cover generation
stringStash media directories where Jellyfin Sync must not automatically apply its generated 800x1200 covers. Enter full paths as seen in Stash (not Jellyfin), separated by semicolons; subdirectories are also excluded. The exclusion applies to automatic generated covers, Generate covers for all Stash videos, and Upload saved generated covers to Jellyfin. Normal Jellyfin metadata/image refresh still works, and the single-scene manual cover button can override the exclusion. Example: /data/movies;/data/anime - Detailed logging
booleanOff (default): log only actual sync changes, cover uploads, task progress, warnings and errors. On: additionally log IDs, unchanged values, skipped operations and refresh requests for troubleshooting.
More from Druidblack/stash-plugin
- Filename Title CheckerChecks scene titles against video filenames, compares configured GraphQL/Stash-box metadata sources, applies chosen metadata to Stash scenes, and can rename/move selected mismatches.