Skip to content

Export Reciperr List to Trakt ​

Overview ​

Reciperr is a web service that allow you to generate various movie list based on filters such as year, genre. In my opinion, what make it differs is the ability to generate movie list based on criteria that are not present in other service like listrr.pro or mdblist, such as mood, theme and keyword. Imagine being able to generate all movie list from 1990-2020 that has alien theme and has the keyword alien invasion, but exclude Animation and Documentary genre.

Can I see your Trakt List generated from Reciperr List?

See https://trakt.tv/users/d-sync/lists for a list of Trakt list that I had generated using Reciperr and exported to Trakt list. alt text

Under the hood, Reciperr generate StevenLu compatible JSON list, so you can import it directly to *app like Radarr using Steven Lu Custom List. However it doesn’t quite meet my purpose. Yes I could import the list to Radarr without having to use Trakt List, but I am also running ErsatzTV scheduler and would like to generate a series of Channels (TV stations) based on different theme such as Aliens, Robots, Monsters, Creatures, Wizards, etc. Currently ErsatzTV only support Trakt List, which motivates me to write this program.

What is ErsatzTV?

💡 ErsatzTV is a full fledged IPTV Live TV server/scheduler that allow you to generate custom EPG (Electronic Program Guide) using your media.

TIP

💡 You can import Reciperr list to Radarr StevenLu Custom import list.

Untitled

Why export Reciperr List to Trakt?

  • Generate Smart Collection in ErsatzTV that uses these exported Trakt List to create theme based TV stations, e.g. Aliens, Robots, Monsters, Creatures, Wizards

    Example of my Trakt List imported to ErsatzTV

    Untitled

  • Import to Radarr. Although this is not a strong reason because you can import list as Steven Lu Custom List. But at least this standardize the way you import list from external source to Radarr.

By now you should have an overall idea on the purpose of using Recipearr list, if you are still interested to generate one yourself and export to your Trakt list, continue reading on!

Prerequisite

Trakt VIP account is required to create Trakt personal list and adding items to the list, which is used by reciperr2trakt program that I wrote. See https://trakt.docs.apiary.io/introduction/vip-methods for more details.

Clone reciperr2trakt Repo ​

Clone the repo from https://github.com/dsync89/reciperr2trakt

bash
git clone https://github.com/dsync89/reciperr2trakt

Generate Trakt API Token ​

Login to Trakt.TV then click on your Profile on the top right, then select Settings.

Untitled

Click on Your API Apps from the horizontal menu bar, then click the New Application button.

Untitled

Fill in the numbered fields (1-3) and click the Save App button (4) when done.

Should I care about Redirect URI?

💡 The Redirect URI is the URL that the user is redirected to after successful OAuth authentcation.

In this case, this can be any URI. This is irrelevant because the reciperr2trakt program uses Device Code Authentication to get OAuth instead of the standard user interactive way.

Untitled

Copy both Client ID and Client Secret as we will need to paste it to the reciperr2trakt python script later.

Untitled

Open up app.py using your favorite text editor, and replace the variable CLIENT_ID and CLIENT_SECRET with the values you copied from Trakt.

Untitled

Now all is ready, what’s left is to give it an input, which is a JSON file from Reciperr.

Create Reciperr List ​

Create an account in Reciperr (https://reciperr.com/) if you haven’t done so already.

Click the hamburger icon, then select Create Recipes

Untitled

As of current, unlike other similar services that provide movie export list feature such as listrr.pro or mdblist, Reciperr offers its own unique additional fields such as Mood, Theme and Keyword that allow you to further filter the movie selection based on these preference. You can even specify include and exclude criteria for all of the filters!

About Reciperr Filtering System

Reciperr Filtering system is perfect for those OCD movie connoisseur that have acquired a fine taste in their movie selection. Imagine generating a playlist just for Alien Invasion, Female Alien instead of the broader category aliens, to the niche seduction, escape room, magic pot, robot dog.

Untitled

An example of the Filters I used to generate the list Creatures (No Animation, No Aliens) .

Untitled

See https://trakt.tv/users/d-sync/lists/reciperr-creatures-theme-movies-1990-2030-no-animation-aliens?sort=released,asc for the exported Trakt List based on these entries.

Untitled

Untitled

After specifying the Filters, Save it and follow the numbered steps below to generate the JSON files containing the movie list.

Untitled

Finally, copy the URL and paste it to the MOVIE_URL variable in the python script.

Untitled

Run the Script ​

Run the following command, and you should see the list created in Trakt.

bash
python3 app.py

My Workflow to Generate Reciperr List ​

Since I was born in the late 1980’s, I prefer movies from 1990s that I saw and know of as I grow. I set it to 2030 so I don’t have to regenerate the list as the years go by. Reciperr will automatically refresh the list every X hours.

Untitled

I used a combination of theme and keyword depending on the amount of movies. If there is only a few movies after filtering by theme, I then add keyword to increase the hit ratio. Some movies might not associate with a theme but has the right keyword. One good example if wizard/magic/sorcery where filter by theme would only list 80+ movies, but specifying magic as the keyword will increase the amount to 700+.

How reciperr2trakt Work ​

WARNING

Trakt VIP account is required to create Trakt personal list and adding items to the list. See https://trakt.docs.apiary.io/introduction/vip-methods for more details.

  1. Get Device Code from Trakt (OAuth) to authenticate your device running the script.
    • If this is the first time, you will need to authenticate your PC running the script by entering the code shown in the script via https://trakt.tv/activate when asked to.
    • The access code is then save it to a local access_code.json file so that it won't ask again the next time.
    • You only need to authenticate and authorzie again if the code expired or the access_code.json is not found.
  2. Get all your Personal Lists from your Trakt account, and check if the list you wanted to create exist.
    • Create the list if it doesn't exist, and get the created list slug_id.
    • If the list already exist, then get the list slug_id
  3. Parse Reciperr movie list JSON and format it according to Trakt expected movie JSON structure.
  4. Add the Trakt formatted movie JSON structure array to the user list.
  5. Profit!

Troubleshooting ​

Sometimes you might get Error 401 Rate Limit error, in that case simply re-run the script again.