I watch a lot of TV, and for a few years now I’ve been using some of those tracking applications where you can follow shows, mark them as watch, comment and rate episodes and follow any newer releases and release calendars. I started using TV Time a while ago and whilst the application is not bad, it had a few irks that I did not enjoy.
One of the biggest issues is the fact that they don’t allow to export any data, so if they were to close their services tomorrow, I would not have any easy way of migrating my historic data to a different service – I do not enjoy closed systems.
My goal was to migrate to a more open platform with more flexible integrations, and that’s when I found Trakt. Trackt offers some cool integrations with media apps (such as Plex), as well as a cool API to migrate your data across.
And whilst there’s no easy way to export your data from the TV Time app or website, we can obtain a copy of all our data through a GDPR Access Request and then use this cool Python script (TvTimeToTrakt) developed by lukearran to migrate all this data to Trakt through their API. And whilst this import is not perfect, it is the best alternative I’ve seen to automating this migration.
Step 1 – Obtain your personal data
While TV Time API is not open, you can request your profile data via a GDPR request by contacting their support team. As per GDPR legislation, you have a right to access the personal data stored and processed on you by companies and other organisations (so-called controllers).
You can copy and customize the GDPR request template provided by https://www.datarequests.org/blog/sample-letter-gdpr-access-request/ and send it to TV Time Support at [email protected]
They may take a few days to process your details, but you should receive an email containing a copy of all your personal information including profile details, watch history and more.
You will need to download this file and extract it somewhere on your local machine.
Step 2 – Sign up for a Trakt account (if you haven’t already)
Step 3 – Register your API Access in Trakt
- Go to “Settings” under your profile
- Select “Your API Applications”
- Select “New Application“
- Provide a name into “Name” e.g. TV Time Profile Import
- Paste “
urn:ietf:wg:oauth:2.0:oob
” into “Redirect uri:“ - Click “Save App“
- Make note of your details to be used later.
Step 4 – Setup TvTimeToTrakt
First you will need to install the required components, included in the requirements.txt
file in TvTimeToTrakt:
python -m pip install -r requirements.txt
After installing the required components, you will need to create a new json file called config.json
and save it in the same directory where TimeToTrakt.py
is. You will need to use the following JSON contents (replacing the values for the ones you obtained in Steps 1,2 and 3):
{
"CLIENT_ID": "YOUR_CLIENT_ID",
"CLIENT_SECRET": "YOUR_CLIENT_SECRET",
"GDPR_WORKSPACE_PATH": "DIRECTORY_OF_YOUR_GDPR_REQUEST_DATA",
"TRAKT_USERNAME": "YOUR_TRAKT_USERNAME"
}
Step 5 – Start the import
Now you can save and close the config.json
file and start with the actual import by launching the following command
python TimeToTrakt.py
Please note: This import is not perfect, as the script includes a delay of 1 second between each episode or movie to ensure a fair use of the Trakt API. Additionally, there can be multiple shows or movies with the same name, in which case you will need to provide manual feedback to confirm which show should be marked as watched:
Due to this rate limiting and all my watch history, this migration took me a few hours to complete, but it was probably my fault as I didn’t check it as often to see if there was any name collisions or manual imput required.
If you end up migrating to Trakt and want to see what I’m up to or what crap am I watching, you can follow me here.