Jellyfin Sink
Automatically add new Jellyfin movie and show plays to Ryot. It will work for all the media that have a valid TMDb ID (or TVDB ID, if selected in the integration settings) attached to their metadata.
Two kinds of webhook plugins are supported and detected automatically:
- Official webhook plugin (available in the Jellyfin plugin catalog)
- Unofficial webhook plugin
Generate a slug in the integration settings page and copy the newly generated webhook URL. It looks like https://<instance_url>/_i/<slug>.
Official plugin
- Install the
Webhookplugin from the Jellyfin plugin catalog and restart Jellyfin. - Go to the plugin settings and add a new
Genericdestination with the following settings:- Webhook URL =>
<paste_url_copied> - Request method =>
POST - Request content type =>
application/json(add aContent-Typeheader if the destination does not set it automatically) - Notification types =>
PlaybackStartandPlaybackStop(PlaybackProgressis optional, for finer-grained progress) - Item types => Enable
MoviesandEpisodes - User filter => Optionally restrict to your user
- Webhook URL =>
- Enable the
Send all propertiesoption on the destination. Ryot reads the flat payload (NotificationType,ItemType,Provider_tmdb, ticks, ...) directly.
Unofficial plugin
- In the Jellyfin webhook plugin settings, add a new webhook using the following settings:
- Webhook URL =>
<paste_url_copied> - Payload format =>
Default - Listen to events only for => Choose your user
- Events =>
Play,Pause,Resume,StopandProgress
- Webhook URL =>
Behavior notes
- Only
MovieandEpisodeitems are processed, everything else is ignored. - A TMDb ID is required by default (or a TVDB ID if
TVDBis selected as the metadata provider in the integration settings). Supported playback notifications lacking the configured ID fail webhook processing rather than being skipped; this includes items with only an IMDb ID. - If
PlayedToCompletion/Playedis set, progress is recorded as 100%. MarkPlayedevents record 100% progress,MarkUnplayedevents are ignored.- If you configured a username in the integration settings, only payloads for that user are processed.