Jellyfin
Automatically log watches from Jellyfin.
Sofa can automatically log movies and episodes when you finish watching them on Jellyfin.
Requirements
- The Webhook plugin installed from the Jellyfin plugin catalog
Setup
- Install the Webhook plugin: Dashboard → Plugins → Catalog → Webhook and restart Jellyfin
- In Sofa, go to Settings → Integrations and click Connect next to Jellyfin
- Copy the generated webhook URL
- In Jellyfin, go to Dashboard → Plugins → Webhook
- Click Add Generic Destination
- Paste the webhook URL
- Enable the Playback Stop notification type
- Save
The webhook URL looks like:
https://sofa.example.com/api/webhooks/{token}How It Works
When you finish watching something on Jellyfin, the Webhook plugin sends a PlaybackStop event to Sofa. Sofa only processes events where PlayedToCompletion is true — partially watched content is ignored.
Sofa resolves titles using TMDB, IMDB, or TVDB IDs from Jellyfin's provider metadata.
Deduplication
Duplicate events within 5 minutes are automatically ignored.
Troubleshooting
Check the event log in Settings → Integrations → Jellyfin:
- No events appearing — make sure the Webhook plugin is installed and the Playback Stop notification type is enabled.
- Events show as "ignored" — the content wasn't played to completion. Jellyfin only reports
PlayedToCompletion: truewhen the full runtime is watched. - "Could not resolve TMDB ID" — ensure the title has provider IDs configured in Jellyfin (TMDB, IMDB, or TVDB).