dev 26808fc2b0
Some checks failed
Docker / docker (push) Failing after 26s
Initial commit
Interface web pour noter rapidement les films non notés sur Trakt.
Enrichissement TMDB (titres/résumés FR), notation 1-10 en un clic,
bouton passer, filtres, tri, pagination.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-04 13:33:58 +00:00
2026-03-04 13:33:58 +00:00
2026-03-04 13:33:58 +00:00
2026-03-04 13:33:58 +00:00
2026-03-04 13:33:58 +00:00
2026-03-04 13:33:58 +00:00
2026-03-04 13:33:58 +00:00
2026-03-04 13:33:58 +00:00
2026-03-04 13:33:58 +00:00
2026-03-04 13:33:58 +00:00
2026-03-04 13:33:58 +00:00
2026-03-04 13:33:58 +00:00

trakt-rater

Interface web pour noter rapidement les films non notés sur Trakt.

Affiche tous les films de ton historique Trakt qui n'ont pas encore de note (ou notés 10/10 à revoir), enrichis avec les titres et résumés en français via TMDB. Un clic suffit pour noter et passer au suivant.


Fonctionnalités

  • Films filtrés depuis ton historique Trakt : non notés et notés 10/10
  • Titres français, jaquettes et résumés via TMDB (fallback anglais si traduction absente)
  • Note en un clic (110) — le film disparaît immédiatement
  • Bouton « Passer » pour ignorer un film sans le noter (persistant dans le navigateur)
  • Filtres : tous / non notés / 10/10
  • Tri : date de visionnage / titre / année
  • Pagination

Prérequis

  • Un compte Trakt avec une application OAuth configurée
  • Une clé API TMDB (gratuite)

Créer l'application Trakt

  1. Aller sur trakt.tv/oauth/applications/new
  2. Remplir le nom (ex. trakt-rater)
  3. Mettre comme Redirect URI : http://localhost:8000/auth/callback (ou l'URL publique de ton instance si derrière un reverse proxy)
  4. Récupérer le Client ID et le Client Secret

Docker

La méthode recommandée.

Démarrage rapide

# 1. Copier le compose et remplir les variables
cp docker-compose.yml docker-compose.local.yml
$EDITOR docker-compose.local.yml

# 2. Build de l'image
docker build -t trakt-rater:latest .

# 3. Démarrer
docker compose -f docker-compose.local.yml up -d

Logs :

docker logs -f trakt-rater

Puis ouvrir http://localhost:8000 et se connecter avec Trakt.

Variables d'environnement

Variable Défaut Description
TRAKT_CLIENT_ID (requis) Client ID de l'application Trakt
TRAKT_CLIENT_SECRET (requis) Client Secret de l'application Trakt
TRAKT_REDIRECT_URI http://localhost:8000/auth/callback Doit correspondre exactement à l'URI configurée sur Trakt
TMDB_API_KEY (requis) Clé API TMDB
SECRET_KEY change-me Clé de signature des sessions (à changer)

Unraid

Méthode 1 — Docker Compose Manager (recommandée)

Important : le Compose Manager d'Unraid pipe le fichier via stdin, donc build: . ne fonctionnera pas. Il faut builder l'image manuellement d'abord.

Étape 1 — Builder l'image sur Unraid (terminal, à refaire après chaque mise à jour) :

cd /mnt/user/appdata
git clone <url-du-dépôt> trakt-rater-src
docker build -t trakt-rater:latest /mnt/user/appdata/trakt-rater-src/

Étape 2 — Ajouter le stack dans le Docker Compose Manager, coller :

services:
  trakt-rater:
    image: trakt-rater:latest
    container_name: trakt-rater
    restart: unless-stopped
    ports:
      - "8000:8000"
    environment:
      TRAKT_CLIENT_ID: "ton_client_id"
      TRAKT_CLIENT_SECRET: "ton_client_secret"
      TRAKT_REDIRECT_URI: "http://unraid.local:8000/auth/callback"
      TMDB_API_KEY: "ta_clé_tmdb"
      SECRET_KEY: "une-chaine-aléatoire"

Note : penser à mettre à jour le TRAKT_REDIRECT_URI avec l'adresse de ton Unraid, et à l'ajouter dans les paramètres de l'application Trakt.

Mettre à jour l'image après un changement de code :

cd /mnt/user/appdata/trakt-rater-src
git pull
docker build -t trakt-rater:latest .
docker restart trakt-rater

Sans Docker

python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

cp .env.example .env
# Remplir .env avec tes clés

uvicorn main:app --reload

Structure du projet

main.py              Application FastAPI (routes, cache, OAuth)
trakt.py             Client Trakt API
tmdb.py              Client TMDB API (enrichissement FR)
static/
  index.html         Interface web
  style.css          Thème sombre
  app.js             Logique frontend
requirements.txt     Dépendances Python
Dockerfile           Image Docker
docker-compose.yml   Stack Docker Compose
.env.example         Template de configuration

License

MIT

Description
No description provided
Readme 67 KiB
Languages
Python 33.9%
JavaScript 29.8%
CSS 28.4%
HTML 6.9%
Dockerfile 1%