198 lines
4.9 KiB
Markdown
198 lines
4.9 KiB
Markdown
# 🐺 Lycostorrent
|
|
|
|
**Version 1.0.0** | Interface de recherche de torrents multi-sources
|
|
|
|

|
|

|
|

|
|
|
|
---
|
|
|
|
## 📋 Description
|
|
|
|
Lycostorrent est une interface web unifiée pour rechercher des torrents sur plusieurs sources :
|
|
- **Jackett** - Agrégateur d'indexers
|
|
- **Prowlarr** - Gestionnaire d'indexers
|
|
- **Flux RSS** - Sources personnalisées
|
|
|
|
L'application enrichit automatiquement les résultats avec les métadonnées de **TMDb** (films/séries) et **Last.fm** (musique).
|
|
|
|
---
|
|
|
|
## ✨ Fonctionnalités
|
|
|
|
### Recherche
|
|
- 🔍 Recherche multi-trackers simultanée
|
|
- 🏷️ Parsing intelligent des titres (qualité, codec, langue, HDR)
|
|
- 🔄 Filtres dynamiques côté client
|
|
- 📊 Tri par seeders, taille, date, nom
|
|
- 📱 Interface responsive (mobile-friendly)
|
|
|
|
### Nouveautés
|
|
- 🎬 Dernières sorties Films/Séries avec affiches TMDb
|
|
- 🎵 Dernières sorties Musique avec pochettes Last.fm
|
|
- 🎌 Catégorie Anime dédiée
|
|
- 📦 Regroupement intelligent des versions
|
|
|
|
### Administration
|
|
- ⚙️ Configuration des catégories par tracker
|
|
- 🏷️ Gestion des tags de parsing
|
|
- 📡 Gestion des flux RSS avec Flaresolverr
|
|
|
|
---
|
|
|
|
## 🚀 Installation
|
|
|
|
### Prérequis
|
|
- Docker & Docker Compose
|
|
- Jackett et/ou Prowlarr configurés
|
|
- Clés API : TMDb, Last.fm (optionnel)
|
|
|
|
### Docker Compose
|
|
|
|
```yaml
|
|
version: '3.8'
|
|
|
|
services:
|
|
lycostorrent:
|
|
build: .
|
|
container_name: lycostorrent
|
|
ports:
|
|
- "5555:5000"
|
|
environment:
|
|
# Sources (au moins une requise)
|
|
- JACKETT_URL=http://jackett:9117
|
|
- JACKETT_API_KEY=votre_api_key
|
|
- PROWLARR_URL=http://prowlarr:9696
|
|
- PROWLARR_API_KEY=votre_api_key
|
|
|
|
# Enrichissement (optionnel mais recommandé)
|
|
- TMDB_API_KEY=votre_api_key
|
|
- LASTFM_API_KEY=votre_api_key
|
|
|
|
# Flaresolverr pour RSS protégés (optionnel)
|
|
- FLARESOLVERR_URL=http://flaresolverr:8191
|
|
|
|
# Logs
|
|
- LOG_LEVEL=INFO
|
|
volumes:
|
|
- ./config:/app/config
|
|
- ./logs:/app/logs
|
|
restart: unless-stopped
|
|
```
|
|
|
|
### Lancement
|
|
|
|
```bash
|
|
docker-compose up -d
|
|
```
|
|
|
|
Accéder à : `http://votre-ip:5555`
|
|
|
|
---
|
|
|
|
## 📁 Structure
|
|
|
|
```
|
|
lycostorrent/
|
|
├── app/
|
|
│ ├── main.py # Application Flask
|
|
│ ├── config.py # Configuration
|
|
│ ├── indexer_manager.py # Gestion Jackett/Prowlarr
|
|
│ ├── jackett_api.py # API Jackett
|
|
│ ├── prowlarr_api.py # API Prowlarr
|
|
│ ├── tmdb_api.py # API TMDb
|
|
│ ├── lastfm_api.py # API Last.fm
|
|
│ ├── torrent_parser.py # Parsing des titres
|
|
│ ├── rss_source.py # Gestion flux RSS
|
|
│ ├── templates/ # Templates HTML
|
|
│ └── static/ # CSS, JS
|
|
├── config/ # Configuration persistante
|
|
├── logs/ # Logs applicatifs
|
|
├── Dockerfile
|
|
├── docker-compose.yml
|
|
├── requirements.txt
|
|
├── VERSION
|
|
├── CHANGELOG.md
|
|
└── README.md
|
|
```
|
|
|
|
---
|
|
|
|
## 🔧 Configuration
|
|
|
|
### Variables d'environnement
|
|
|
|
| Variable | Requis | Description |
|
|
|----------|--------|-------------|
|
|
| `JACKETT_URL` | * | URL de Jackett |
|
|
| `JACKETT_API_KEY` | * | Clé API Jackett |
|
|
| `PROWLARR_URL` | * | URL de Prowlarr |
|
|
| `PROWLARR_API_KEY` | * | Clé API Prowlarr |
|
|
| `TMDB_API_KEY` | Non | Clé API TMDb (enrichissement) |
|
|
| `LASTFM_API_KEY` | Non | Clé API Last.fm (enrichissement) |
|
|
| `FLARESOLVERR_URL` | Non | URL Flaresolverr (RSS protégés) |
|
|
| `LOG_LEVEL` | Non | Niveau de log (INFO, DEBUG, WARNING) |
|
|
|
|
\* Au moins Jackett OU Prowlarr requis
|
|
|
|
### Obtenir les clés API
|
|
|
|
- **TMDb** : https://www.themoviedb.org/settings/api
|
|
- **Last.fm** : https://www.last.fm/api/account/create
|
|
|
|
---
|
|
|
|
## 📱 Pages
|
|
|
|
| Route | Description |
|
|
|-------|-------------|
|
|
| `/` | Page de recherche |
|
|
| `/latest` | Nouveautés (films, séries, anime, musique) |
|
|
| `/admin/latest` | Config catégories par tracker |
|
|
| `/admin/parsing` | Config tags de parsing |
|
|
| `/admin/rss` | Config flux RSS |
|
|
|
|
---
|
|
|
|
## 🔒 Sécurité
|
|
|
|
- ✅ Headers HTTP de sécurité
|
|
- ✅ Validation des entrées
|
|
- ✅ Protection XSS
|
|
- ✅ Protection SSRF
|
|
- ✅ Masquage des secrets
|
|
|
|
Voir [SECURITY_AUDIT.md](SECURITY_AUDIT.md) pour les détails.
|
|
|
|
---
|
|
|
|
## 📝 Changelog
|
|
|
|
Voir [CHANGELOG.md](CHANGELOG.md) pour l'historique des versions.
|
|
|
|
---
|
|
|
|
## 🐛 Dépannage
|
|
|
|
### Aucun tracker trouvé
|
|
- Vérifier les URLs et clés API
|
|
- Vérifier que Jackett/Prowlarr sont accessibles
|
|
|
|
### Pas d'enrichissement TMDb
|
|
- Vérifier la clé API TMDb
|
|
- Les logs montrent les erreurs de recherche
|
|
|
|
### RSS retourne 403
|
|
- Activer Flaresolverr
|
|
- Ajouter les cookies de session
|
|
|
|
---
|
|
|
|
## 📄 Licence
|
|
|
|
Projet personnel - Usage privé uniquement.
|
|
|
|
---
|
|
|
|
**Développé avec ❤️ et l'aide de Claude (Anthropic)** |