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
This step is important! It allows shinkro to see the watch status and rating updates from your Plex Server.
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.
The apiKey paramter is case-sensitive. Note that the K in apiKey is uppercase.
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