Skip to content

csims/Yamtrack

 
 

Repository files navigation

Yamtrack

This is a fork of FuzzyGrim's Yamtrack - go show support there!

Warning

I forked this for personal use to add features I wanted. I'm vibe coding a lot of python here since I'm not really intending my changes to be used by anyone else.

App Tests Docker Image GitHub

Yamtrack is a self hosted media tracker for movies, tv shows, anime, manga, video games and books.

✨ Features

  • 🎬 Track movies, tv shows, anime, manga, games, books and comics.
  • 📺 Track each season of a tv show individually and episodes watched.
  • ⭐ Save score, status, progress, repeats (rewatches, rereads...), start and end dates, or write a note.
  • 📈 Keep a tracking history with each action with a media, such as when you added it, when you started it, when you started watching it again, etc.
  • ✏️ Create custom media entries, for niche media that cannot be found by the supported APIs.
  • 📂 Create personal lists to organize your media for any purpose, add other members to collaborate on your lists.
  • 📅 Keep up with your upcoming media with a calendar, which can be subscribed to in external applications using a iCalendar (.ics) URL.
  • 🔔 Receive notifications of upcoming releases via Apprise (supports Discord, Telegram, ntfy, Slack, email, and many more).
  • 🐳 Easy deployment with Docker via docker-compose with SQLite or PostgreSQL.
  • 👥 Multi-users functionality allowing individual accounts with personalized tracking.
  • 🔑 Flexible authentication options including OIDC and 100+ social providers (Google, GitHub, Discord, etc.) via django-allauth.
  • 🦀 Integration with Jellyfin, Plex and Emby to automatically track new media watched.
  • 📥 Import from Trakt, Simkl, MyAnimeList, AniList and Kitsu with support for periodic automatic imports.
  • 📊 Export all your tracked media to a CSV file and import it back.

🐳 Installing with Docker

Copy the default docker-compose.yml file from the repository and set the environment variables. This would use a SQlite database, which is enough for most use cases.

To start the containers run:

docker-compose up -d

Alternatively, if you need a PostgreSQL database, you can use the docker-compose.postgres.yml file.

🌊 Reverse Proxy Setup

When using a reverse proxy, if you see a 403 - Forbidden error, you need to set the URLS environment variable to the URL you are using for the app.

services:
  yamtrack:
    ...
    environment:
      - URLS=https://yamtrack.mydomain.com
    ...

Note that the setting must include the correct protocol (https or http), and must not include the application / context path. Multiple origins can be specified by separating them with a comma (,).

⚙️ Environment variables

For detailed information on environment variables, please refer to the Environment Variables wiki page.

💻 Local development

Clone the repository and change directory to it.

git clone https://github.com/csims/Yamtrack.git
cd Yamtrack

Install Redis or spin up a bare redis container:

docker run -d --name redis -p 6379:6379 --restart unless-stopped redis:8-alpine

Create a .env file in the root directory and add the following variables.

TMDB_API=API_KEY
MAL_API=API_KEY
IGDB_ID=IGDB_ID
IGDB_SECRET=IGDB_SECRET
STEAM_API_KEY=STEAM_API_SECRET
SECRET=SECRET
DEBUG=True

Then run the following commands.

npm install
python -m pip install -U -r requirements-dev.txt && lefthook install
pushd src && python manage.py migrate && popd
honcho start

Go to: http://localhost:8000

Tests

Initial setup:

playwright install chromium

To run tests:

pytest src

About

A self hosted media tracker.

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages

  • Python 75.1%
  • HTML 14.4%
  • CSS 9.0%
  • JavaScript 1.4%
  • Dockerfile 0.1%
  • Shell 0.0%