Skip to content

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.

  1. Generate a slug in the integration settings page. Copy the newly generated webhook Url.
  2. 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 and Progress

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.

  1. Generate a slug in the integration settings page. Copy the newly generated webhook Url.
  2. 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 and Progress
    • Limit user events to => Choose your user

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.

  1. Generate a slug in the integration settings page using the following settings:
    • Username => Your Plex Fullname. If you have no Fullname specified in Plex, fallback to your Plex Username. This will be used to filter webhooks for the specified Plex account only.
  2. In your Plex Webhooks settings, add a new webhook using the following settings:
    • Webhook Url => <paste_url_copied>

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.

  1. Generate a slug in the integration settings page. Copy the newly generated webhook Url.
  2. Download the addon from github releases. The file will have a name of script.ryot.zip.
  3. Install the zipped addon to your Kodi instance. Once installed, it will be visible under the "Services" sub category named "Ryot".
  4. 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).

  1. Obtain an API token as described in the Audiobookshelf authentication docs.
  2. 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.

  1. Navigate to the manga and open the Edit tab
  2. Navigate to the Links tab
  3. Create a link named AniList or MyAnimeList providing the respective url (not case-sensitive)

Then perform these steps on Ryot

  1. Create an integration and select Komga as the source
  2. Provide your Base URL. It should look something like this http://komga.acme.com or http://127.0.0.1:25600
  3. Provide your Username and Password.
  4. 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

  1. Obtain your Radarr API key by going to the Radarr general settings page.
  2. Fill the inputs in the integration settings page with the correct details.

Sonarr

Events: Item added to collection

  1. Obtain your Sonarr API key by going to the Sonarr general settings page.
  2. Fill the inputs in the integration settings page with the correct details.

Jellyfin

Events: Item marked as completed

  1. While creating the integration, you will be asked to provide your Jellyfin username and password.
  2. Every time you mark a movie or show as watched in Ryot, the integration will mark it as watched in Jellyfin.