# đŸș Lycostorrent **Version 1.0.0** | Interface de recherche de torrents multi-sources ![Version](https://img.shields.io/badge/version-1.0.0-blue) ![Python](https://img.shields.io/badge/python-3.11+-green) ![Docker](https://img.shields.io/badge/docker-ready-blue) --- ## 📋 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)**