TraktRater: a Windows desktop tool for moving ratings into trakt.tv
TraktRater is a tool written in C# to help users transfer user episode, show and movie user ratings and watchlists from multiple media database sites around the web.
At a glance
- What is it?
- TraktRater is a C# desktop application that reads ratings, watchlists and watched data from IMDb, TVDb, TMDb, Letterboxd, Listal, Criticker and Flixster and writes them into trakt.tv, and can also erase your trakt data. It suits a person consolidating scattered media histories, and it is a poor fit for anyone who wants their data back on their own schedule.
- Who is it for?
- Adopt TraktRater when you have a decade of ratings scattered across IMDb, Letterboxd and similar sites and want them in one place on trakt.tv, and when you are comfortable with a Windows desktop application that authenticates against your accounts. Do not adopt it as a headless pipeline or as a way to sync two accounts continuously, since the transfer is a one-shot import driven from a GUI.
- Can I use it commercially?
- Not without permission. GitHub finds no licence file in the repository, and without a licence all rights are reserved by default: you may read the code but not reuse it. Check the README, or ask the authors, before using it.
- Is it still maintained?
- Yes. The repository last received commits 56 days ago.
- What is it written in?
- Mainly C#, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 24, 2026, and from our analysis. They are not legal advice.
Editorial analysis
A WinForms desktop tool, not a service
TraktRater is described as a tool written in C# that helps users transfer episode, show and movie ratings from multiple media database sites to trakt.tv. Everything about the implementation points at a desktop application rather than a service.
The runtime requirement is explicit. You need to be running on a Windows platform with .NET Framework 4.7.2 installed. The tool can run on Mac OS and Linux, but only by executing it through Mono, which is a compatibility path rather than a first class one. The distribution is a Windows executable: download the latest release from the repository downloads section and run TraktRater.exe from the download location.
The repository layout is a classic Windows Forms application. TraktRater.cs and TraktRater.Designer.cs are the form and its generated designer file, TraktRater.csproj and TraktRater.sln are the project and solution, and there is an app.config alongside a packages.config for the era of NuGet packages.config restore. The feature code is organised into folders that map to the workflow: Export.cs, Maintenance.cs, a Sites/ directory for the per-provider implementations, a TraktAPI/ directory, a Web/ directory, a Logger/, a Settings/ directory and a UI/ directory.
That last set of folders is the clearest statement of the architecture. Each media site is a provider behind an interface, the trakt.tv side is a separate API client, and the data removal and export features live in their own files rather than being bolted onto the import path.
The authorisation dance with trakt.tv and its 15 minute pin window
The first thing the tool asks for is permission to act on your trakt.tv account, and the mechanics of that are worth understanding before you start an import.
You authorise TraktRater from the Login tab. The authorisation happens on trakt.tv itself, and the site returns an 8-digit code that you type into the textbox in the application. You then have up to 15 minutes to start an import before the pin code expires. If you start the import within that window and the login succeeds, the application will no longer require authorisation from you for that account. Requesting authorisation for a different account is done by clicking the link again.
The TMDb side uses a different, more conventional OAuth style flow. You click Start Request Process in the application, a valid request token arrives from TMDb and your browser opens so you can approve or deny, you click Allow in the browser, and then you come back to the application. There is a 60 minute window: if you do not start importing within 60 minutes, or if you restart the application before importing, you have to repeat the process. Access can be revoked at any time with the Disable TMDb Support link.
So there are two separate trust relationships, with two different expiry rules, and both of them are annoying if you are not ready when you click. The 15 minute trakt window is the tighter of the two and is the one that catches people out.
Seven providers, each with a different export ritual
The provider list is the core of the tool, and the interesting thing about it is that every source is handled differently, because every site exports differently.
IMDb supports show, episode and movie ratings plus watchlist import, either through a CSV export, which the documentation calls recommended, or by scraping online with your user id. The scrape route requires your IMDb profile to be marked as Public, otherwise it fails. Your IMDb user id is the ur-prefixed number in the address bar. Custom list import by web scrape is not supported, and the documentation recommends the CSV mode if you hit issues. The CSV procedure is a manual click path through the Ratings page, the Export option in the table menu, and a second export for Watchlist.csv and any custom lists.
TVDb supports show and episode ratings, and it needs your Account Identifier rather than your username, a 16 character string found on the account page. Criticker supports movie ratings through a CSV export from the Full Rankings List. Listal supports shows and movies and converts a wanted list into a trakt watchlist, using XML exports downloaded from the site.
Letterboxd supports movie ratings and watched data, using the Export your Data option to produce a zip archive that you extract and then pick individual files from, namely watched, ratings and diary. Flixster supports movie ratings from multiple sources such as Facebook and Rotten Tomatoes.
TMDb supports movie and show ratings and watchlists, with ratings enabled by default and a separate toggle for the watchlist sync.
The practical consequence is that a full import is a multi-site clerical task before it is a software task. You are exporting from six or seven different sites by hand, and then feeding a pile of CSV, XML and zip files into one window.
TVDb caching and the import rules for rated but unwatched items
Two behaviours will affect how an import feels.
The first is caching. TraktRater caches any data it gets from TVDb so that subsequent retries do not take as long. The series cache expires every 7 days and the user ratings cache every 1 day. The cache folder depends on the Windows version, and the paths are given explicitly:
WinVista/Windows7 : C:\Users\$(username)\AppData\Roaming\TraktRater
WinXP : C:\Documents and Settings\Application Data\$(username)\TraktRaterThe one day expiry on user ratings is worth noting, because it means a rating you just added on TVDb may not be visible to the tool until the cache clears.
The second is the option to mark items as watched. There is a checkbox for marking episodes and movies as watched if you have rated them. The documentation is precise about the consequence: keep the corresponding option checked, otherwise uncheck it. The default behaviour, marking rated items as watched, is right for a user whose ratings and watched state agree, and wrong for a user who rates films they have not seen, which is exactly the behaviour of some rating sites.
The import itself is triggered by pressing the Start Import button. Any details you leave blank for a third party data source are ignored on import, so a partial import is a supported workflow rather than an error.
Removing your trakt data and exporting it to CSV
The tool is not only an import path. The readme states that users can also use it to remove any user data from their account at trakt.tv, or to export their personal data to CSV files.
That is a meaningful capability in both directions and it cuts both ways. On the useful side, it gives you a way to take your trakt.tv history out of a hosted service and into files you own, which is the sort of exit strategy that matters when a service changes its terms or shuts down.
On the other side, the same capability is a warning to read carefully. The application authenticates with write access to your account, and a tool that can clear your data is a tool that can clear your data by mistake. The readme does not document a dry run, a confirmation step, a backup prompt or a partial delete granularity for the removal feature, and it does not say what happens to the local CSV export if the removal is interrupted. If you use the removal path, the sensible order is to export first and confirm the export looks right, which the repository does not enforce for you.
The separate Export.cs file at the repository root is where that functionality lives, and Maintenance.cs is where the removal side sits, so the two are separate code paths rather than one combined operation.
Where TraktRater is the wrong choice
Several cases rule it out, and they are structural rather than fixable.
The first is automation. This is a Windows Forms application with a Start Import button, driven by a person clicking through a wizard. There is no command line interface, no documented API, no headless mode and no scheduling mechanism in the repository layout. If you want a nightly sync between two accounts, or an automated export for a media server, this is the wrong shape entirely.
The second is a media server workflow. Letterboxd and IMDb export zips and CSVs for a human to unpack and upload by hand. There is no direct read from a Jellyfin or Plex library, and no import of files or local watch history. The tool moves ratings between tracking sites, not between tracking sites and your own media collection.
The third is anything that requires a service account. Both the trakt and the TMDb authorisation flows are tied to a person approving in a browser, and the trakt pin expires in 15 minutes, so there is no unattended path even if you wanted one.
The fourth is the web scrape path for IMDb. It requires a public profile, which most people would rather not have, and the documentation itself recommends the CSV route instead. The scrape is a fallback, not a feature to build on.
The fifth is cross platform work. Running through Mono is possible, but the project describes .NET Framework 4.7.2 on Windows as the supported case, and the cache paths given in the readme are Windows specific, so a Linux or macOS user is running a compatibility path.
Maintenance state and an unstated licence
The repository is not archived, and the last push was on 2026-08-30, which is the same day as release 2.4.0.
The release history is lumpy. Version 2.4.0 came on 2026-08-30, before it 2.3.15 on 2024-09-30 and 2.3.14 on 2024-08-22. So there was a gap of roughly two years between 2.3.15 and 2.4.0, followed by a burst of development at the end of that gap. Read that as a project maintained by one person in bursts rather than on a schedule, which is a fair description of most desktop utilities of this kind.
The licence field for the repository is recorded as unknown, and the readme does not state a licence either. It does carry a donation link and asks that you consider donating to encourage continued development. For a personal tool that is fine, but for anyone considering redistributing it, modifying it, or reading its source as a reference, the absence of a stated licence is a real obstacle. A repository with no licence grants no rights to reuse the code, and that is a legal question for your own counsel rather than something this article can settle.
There is also no changelog file and no issue tracker policy in the readme, so the release notes on the GitHub releases page are the only record of what changed in a given version.
Editorial conclusion
Adopt TraktRater when you have a decade of ratings scattered across IMDb, Letterboxd and similar sites and want them in one place on trakt.tv, and when you are comfortable with a Windows desktop application that authenticates against your accounts. Do not adopt it as a headless pipeline or as a way to sync two accounts continuously, since the transfer is a one-shot import driven from a GUI. Before you run it, download the release rather than building from source, note that the IMDb web scrape path needs a public profile, and confirm the trakt authorisation window, since the pin code expires after 15 minutes and the TMDb token after 60.
Frequently asked questions
What operating system and runtime does TraktRater need?
The readme says you need to be running on Windows with .NET Framework 4.7.2 installed. It can also run on Mac OS and Linux, but only by executing it through Mono.
Which media sites can TraktRater import ratings from?
IMDb for shows, episodes and movies, TVDb for shows and episodes, TMDb for movies and shows with watchlists, Listal for shows and movies, Criticker for movies, Letterboxd for movies with watched data, and Flixster for movie ratings.
How long does the trakt.tv authorisation code stay valid?
You have up to 15 minutes to start an import after entering the 8-digit authorisation code. The TMDb request token has a different window of 60 minutes, and restarting the application before importing also requires repeating the TMDb request.
Can TraktRater import my IMDb watchlist?
Yes, either through CSV export, which the documentation calls recommended, or by scraping online using your user id, which requires your IMDb profile to be set to Public. Custom list import by web scrape is not supported.
Can TraktRater remove my data from trakt.tv or export it?
Yes, the readme states users can remove any user data from their trakt.tv account or export their personal data to CSV files. The readme does not document a dry run or a confirmation step for the removal, so export before removing.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/damienhaynes-traktrater)Was this useful?