Skip to content


MediaTracker is a self hosted media tracker for movies, tv shows, video games, books and audiobooks


With docker compose:

version: "3"
    container_name: mediatracker
      - 7481:7481
      - /home/YOUR_HOME_DIRECTORY/.config/mediatracker/data:/storage
      - assetsVolume:/assets
      SERVER_LANG: en
      TMDB_LANG: en
      AUDIBLE_LANG: us
      TZ: Europe/London
    image: bonukai/mediatracker:latest

  assetsVolume: null

If you attach more than one docker network the container becomes unreachable :S.

Install the jellyfin plugin

They created a Jellyfin plugin so that all scrobs are sent automatically to the mediatracker

  • Add new Repository in Jellyfin (Dashboard -> Plugins -> Repositories -> +) from url
  • Install MediaTracker plugin from Catalogue (Dashboard -> Plugins -> Catalogue)


Some tips:

  • Add the shows you want to watch to the watchlist so that it's easier to find them
  • When you're ending an episode, click on the episode number on the watchlist element and then rate the episode itself.


You can create public lists to share with the rest of the users, the way to share it though is a bit archaic so far, it's only through the list link, in the interface they won't be able to see it.


I haven't found a way to see the api docs from my own instance. Luckily you can browse it at the official instance.

You can create an application token on your user configuration. Then you can use it with something similar to:

curl -s -H 'Content-Type: application/json'\?token\=your-token | jq

There is a python library although it's doesn't (yet) have any documentation and the functionality so far is only to get information, not to push changes.

Get list of tv shows

With /api/items?mediaType=tv you can get a list of all tv shows with the next interesting fields:

  • id: mediatracker id
  • tmdbId:
  • tvdbId:
  • imdbId:
  • title:
  • lastTimeUpdated: epoch time
  • lastSeenAt: epoch time
  • seen: bool
  • onWatchlist: bool
  • firstUnwatchedEpisode:
  • id: mediatracker episode id
  • episodeNumber:
  • seasonNumber
  • tvShowId:
  • seasonId:
  • lastAiredEpisode: same schema as before

Then you can use the api/details/{mediaItemId} endpoint to get all the information of all the episodes of each tv show.


Ryot has a better web design, it also has a jellyfin scrobbler, although it's not yet stable. There are other UI tweaks that is preventing me from migrating to ryot such as the easier media rating and the percentage over five starts rating system.