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. 
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.

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

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
git clone https://github.com/dsync89/reciperr2traktGenerate Trakt API Token â
Login to Trakt.TV then click on your Profile on the top right, then select Settings.

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

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.

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

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.

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

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.

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

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.


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

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

Run the Script â
Run the following command, and you should see the list created in Trakt.
python3 app.pyMy 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.

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.
- 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.jsonfile 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.jsonis not found.
- 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
- Create the list if it doesn't exist, and get the created list
- Parse Reciperr movie list JSON and format it according to Trakt expected
movieJSON structure. - Add the Trakt formatted
movieJSON structure array to the user list. - Profit!
Troubleshooting â
Sometimes you might get Error 401 Rate Limit error, in that case simply re-run the script again.