Files
Trakt-Rater/README.md

154 lines
4.5 KiB
Markdown
Raw Normal View History

# 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](https://trakt.tv) avec une application OAuth configurée
- Une clé API [TMDB](https://www.themoviedb.org/settings/api) (gratuite)
### Créer l'application Trakt
1. Aller sur [trakt.tv/oauth/applications/new](https://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
```bash
# 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 :
```bash
docker logs -f trakt-rater
```
Puis ouvrir [http://localhost:8000](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) :
```bash
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 :
```yaml
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 :
```bash
cd /mnt/user/appdata/trakt-rater-src
git pull
docker build -t trakt-rater:latest .
docker restart trakt-rater
```
---
## Sans Docker
```bash
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