Some checks failed
Docker / docker (push) Failing after 26s
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>
154 lines
4.5 KiB
Markdown
154 lines
4.5 KiB
Markdown
# 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 (1–10) — 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
|