Integrations
Integrations can be used to continuously update your media progress or inform external services about changes. They can be of following types:
- Sink: An external client publishes progress updates to the Ryot server.
- Yank: Progress data is downloaded from an externally running server at a periodic interval.
- Push: Ryot sends data to an external service when an event occurs.
Sink integrations
These work via webhooks wherein an external service can inform Ryot about a change. All webhook URLs follow this format:
https://<instance_url>/backend/_i/<slug>
https://pro.ryot.io/backend/_i/int_a6cGGXEq6KOI # example
Warning
Keep your webhook urls private to prevent abuse.
Jellyfin
Automatically add new Jellyin movie and show plays to Ryot. It will work for all the media that have a valid TMDb ID attached to their metadata.
Info
Requires the unofficial webhook plugin to be installed and active in Jellyfin.
- Generate a slug in the integration settings page. Copy the newly generated webhook Url.
- 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
,Stop
andProgress
- Webhook Url =>
Emby
Automatically add new Emby movie and show plays to Ryot. It will work for all the media that have a valid TMDb ID attached to their metadata.
- Generate a slug in the integration settings page. Copy the newly generated webhook Url.
- In the Emby notification settings page, add a new notification using the
Webhooks option:
- Name =>
ryot
- Url =>
<paste_url_copied>
- Request Content Type =>
application/json
- Events =>
Play
,Pause
,Resume
,Stop
andProgress
- Limit user events to => Choose your user
- Name =>
Warning
Since Emby does not send the expected TMDb ID for shows, progress will only be synced if you already have the show in the Ryot database. To do this, simply add the show to your watchlist.
Plex
Automatically add Plex show and movie plays to Ryot. It will work for all the media that have a valid TMDb ID attached to their metadata.
- Generate a slug in the integration settings page using the following settings:
- Username => Your Plex
Fullname
. If you have noFullname
specified in Plex, fallback to your PlexUsername
. This will be used to filter webhooks for the specified Plex account only.
- Username => Your Plex
- In your Plex Webhooks settings, add a new webhook using the following settings:
- Webhook Url =>
<paste_url_copied>
- Webhook Url =>
Warning
Since Plex does not send the expected TMDb ID for shows, progress will only be synced if you already have the show in the Ryot database. To do this, simply add the show to your watchlist.
Kodi
The Kodi integration allows syncing the current movie or TV show you are watching. It will work for all the media that have a valid TMDb ID attached to their metadata.
- Generate a slug in the integration settings page. Copy the newly generated webhook Url.
- Download the addon from github releases.
The file will have a name of
script.ryot.zip
. - Install the zipped addon to your Kodi instance. Once installed, it will be visible under the "Services" sub category named "Ryot".
- Click on "Configure" to fill in the correct details.
Generic Json
The "Generic Json" can be used to import all possible data using a generic JSON data
format. The format of the JSON file should be CompleteExport
as described in the
exporting documentation.
You can use this to build integrations with other services that Ryot does not support natively.
Yank integrations
You can configure the interval at which the data is fetched from the external source using
the INTEGRATION_SYNC_EVERY_MINUTES
environment variable. Defaults to 5
.
Audiobookshelf
Warning
This will only import media that are in progress. Perform an import if you want to import media that are finished.
The Audiobookshelf integration can sync all media if they have a valid provider ID (Audible, ITunes or ISBN).
- Obtain an API token as described in the Audiobookshelf authentication docs.
- Go to your Ryot user settings and add the correct details as described in the yank section.
Komga
The Komga integration can sync all media if they have a valid metadata provider.
Steps
If you use Komf or some similar metadata provider these urls will be populated automatically. If you don't, you will either need to manually add the manga to your collection or you can perform the following steps.
- Navigate to the manga and open the Edit tab
- Navigate to the Links tab
- Create a link named
AniList
orMyAnimeList
providing the respective url (not case-sensitive)
Then perform these steps on Ryot
- Create an integration and select Komga as the source
- Provide your Base URL. It should look something like this
http://komga.acme.com
orhttp://127.0.0.1:25600
- Provide your Username and Password.
- Provide your preferred metadata provider. Ryot will attempt the others if the preferred is unavailable and will fallback to title search otherwise.
Push integrations
You can enable the following push integrations:
Radarr
Events: Item added to collection
- Obtain your Radarr API key by going to the Radarr general settings page.
- Fill the inputs in the integration settings page with the correct details.
Sonarr
Events: Item added to collection
- Obtain your Sonarr API key by going to the Sonarr general settings page.
- Fill the inputs in the integration settings page with the correct details.
Jellyfin
Events: Item marked as completed
- While creating the integration, you will be asked to provide your Jellyfin username and password.
- Every time you mark a movie or show as watched in Ryot, the integration will mark it as watched in Jellyfin.