shinkro Configuration

Configure shinkro so it can work it's magic!

Connect your MyAnimeList Account

Go to Settings -> MyAnimeList Page

  • Open the shinkro WebUI

  • Go to Settings -> MyAnimeList

Copy the App Redirect URL

Create a client for accessing the MAL API on MyAnimeList.net

  • Go to MAL API to create an ID.

  • Click on Create ID.

App Information can be entered as follows:

App Name:

<Any that you wish>

App Type:

web

App Description:

Sync watch status between Plex and MAL using the former's webhook and the latter's API. The goal is to not have to manually update how many episodes have been watched etc.

App Redirect URL:

The App Redirect URL you copied previously, should be pasted here.

Example: https://shinkro.domain.com/malauth/callback

Homepage URL:

https://github.com/varoOP/shinkro

App Logo URL:

https://raw.githubusercontent.com/varoOP/shinkro/main/.github/images/logo.png

Commercial / Non-Commercial:

non-commercial

Name/ Company Name:

<Any that you wish>

Purpose of Use:

hobbyist

Agree to the API License and Developer agreement, if you wish to.

Then, click on Submit.

Return to the list of your API clients, and click on Edit for the one that you just created to get the Client ID and Client Secret.

Enter the Client ID and Client Secret & Login

Allow shinkro to access your MAL Account

Authentication Success

Connect your Plex Media Server

Go to Settings -> Plex

Authenticate with Plex

  • Click on Authenticate with Plex to login using your Plex Account

  • Select your Plex Server from the dropdown

  • Choose an available Host

  • Pick your Anime Libraries from the list of libraries

  • Edit your Plex Username if required

  • Test the connection, then Save

Connection Successful

Setup either Plex or Tautulli to send webhooks to shinkro

Create an API Key for your Plex Media Server

  • Go to Settings -> General -> API Keys

Create the URL you need to enter on Plex / Tautulli

This URL is basically the URL to your shinkro instance which can be accessed by Plex Media Server or Tautulli along with the API Key you created for authentication.

It follows the following format:

Without Reverse Proxy

http(s)://<ip_address>:<shinkro_port>/api/plex?apiKey=<apiKey created for Plex>

With Reverse Proxy

http(s)://shinkro.domain.com/api/plex?apiKey=<apiKey created for Plex>

Examples

shinkro & Plex / Tautulli on same machine

http://127.0.0.1:7011/api/plex?apiKey=cb91c65f823b18d83f15477a856834fa

shinkro & Plex / Tautulli on same machine with BaseURL set to /shinkro

http://127.0.0.1:7011/shinkro/api/plex?apiKey=cb91c65f823b18d83f15477a856834fa

shinkro & Plex / Tautulli not on same machine

http://46.123.11.2:7011/api/plex?apiKey=cb91c65f823b18d83f15477a856834fa
https://shinkro.domain.com/api/plex?apiKey=cb91c65f823b18d83f15477a856834fa

shinkro & Plex / Tautulli not on same machine with BaseURL set to /shinkro

http://46.123.11.2:7011/shinkro/api/plex?apiKey=cb91c65f823b18d83f15477a856834fa
https://domain.com/shinkro/api/plex?apiKey=cb91c65f823b18d83f15477a856834fa

This URL needs to be the URL to your shinkro instance along with the correct API Key for authentication so that your Plex Media Server or Tautulli instance can successfully communicate with shinkro.

Setup Plex Webhooks or Tautulli

  • Only pick one of the two

  • Plex Webhooks is preferred but requires Plex Pass

  • Tautulli is the free alternative but has the limitation of not being able to update ratings

Plex Webhooks Setup

  • Login to your Plex Server

  • Go to the web client of your Plex server at Plex.tv.

  • Go to Settings

  • Select Webhooks from the left sidebar.

  • Click on Add webhook

  • Enter the shinkro URL you created earlier.

  • Then, click on Save Changes.

Confirmation that shinkro is receiving payloads from Logs

  • Head to Logs

  • Check for this entry - it will say Received empty paylod from Plex, webhook added successfully.

If you chose Plex Webhooks, that's it! shinkro is setup and ready to go.

Tautulli Setup

  • Go to Settings

  • Click on Notification Agents

  • Next, click on Add a new notification agent

  • Choose Webhook from the list

Webhook Settings

Configuration

Webhook URL: The shinkro URL you created earlier

Webhook Method: POST

Triggers: Watched

Conditions: Leave default.

Data:

Only need to enter data for Watched. JSON Headers: Leave empty

JSON Data:

Copy paste the json given below:

{
    "Account": {
        "title": "{username}"
    },
    "event": "media.scrobble",
    "Metadata": {
        "title": "{title}",
        "type": "{media_type}",
        "parentIndex": "{season_num}",
        "index": "{episode_num}",
        "guid": "{guid}",
        "Guid": [
            {
                "id": "imdb://{imdb_id}"
            },
            {
                "id": "tmdb://{themoviedb_id}"
            },
            {
                "id": "tvdb://{thetvdb_id}"
            }
        ],
        "grandparentKey": "/library/metadata/{grandparent_rating_key}",
        "grandparentTitle": "<episode>{show_name}</episode><movie>{title}</movie>",
        "librarySectionTitle": "{library_name}"
    }
}

Click on Save.

Confirming shinkro is receiving webhooks from Tautulli

  • Set shinkro's log level to DEBUG from Settings -> General -> Logs

  • In Tautulli, go back to your Notification Agent and select the Test Notification Tab

  • Copy-paste the same json structure found above into the JSON data field, leave JSON headers blank.

  • Click on Test Webhook.

  • If everything went well, you will get the exact same Raw Payload in shinkro's logs. It can be viewed in the Logs section.

  • Here is an example:

  • This confirms that Tautulli is successfully sending webhooks to shinkro.

That's it shinkro is configured and ready to go!

Last updated