# Ohm Stream Downloader **Application web complète pour rechercher, streamer et télécharger des animes, séries TV et films.** Interface moderne (SPA-like) avec recherche unifiée, watchlist automatique, métadonnées enrichies, téléchargements parallèles et intégration Sonarr. ## ✨ Fonctionnalités ### 🎬 Recherche & Streaming - **Recherche unifiée** : Recherchez animes et séries TV simultanément. - **Providers Anime** : Anime-Sama, Neko-Sama, Anime-Ultime, Vostfree, French-Manga. - **Providers Séries** : FS7 (French-Stream). - **Métadonnées riches** : Synopsis, genres, notes, studio via intégration Kitsu. - **Streaming vidéo** : Lecteur intégré supportant divers hébergeurs. - **Téléchargement flexible** : Épisode par épisode ou saison complète. ### 📋 Watchlist & Automatisation - **Suivi intelligent** : Ajoutez des animes à votre watchlist pour ne rater aucun épisode. - **Auto-Download** : Téléchargement automatique des nouveaux épisodes dès leur sortie. - **Planificateur (Scheduler)** : Vérification périodique configurable (1h à 168h). - **Filtres avancés** : Visualisation par statut (Actif, En pause, Terminé). - **Intégration Sonarr** : Support des webhooks pour une automatisation complète du homelab. ### 🚀 Gestionnaire de Téléchargements - **Multi-threading** : Jusqu'à 5 téléchargements simultanés avec gestion de file d'attente. - **Pause/Reprise** : Support du protocole HTTP Range pour reprendre les téléchargements interrompus. - **Progression Temps Réel** : Vitesse (Mo/s), pourcentage et estimation du temps restant. - **Sanitisation** : Nettoyage automatique des noms de fichiers pour une compatibilité maximale. ## 🏗️ Architecture (Three-Tier System) L'application repose sur un système à trois couches pour une robustesse maximale : 1. **Catalogues (Anime/Series Sites)** : Extraction des listes d'épisodes et métadonnées. 2. **Players Vidéo (Video Players)** : Extraction des liens de téléchargement direct depuis les embeds (VidMoly, DoodStream, etc.). 3. **Manager (Download Manager)** : Orchestration asynchrone des transferts de fichiers. ## 📁 Hébergeurs Supportés | Type | Services Supportés | | :--- | :--- | | **Catalogues** | Anime-Sama, Neko-Sama, Anime-Ultime, Vostfree, French-Manga, FS7 | | **Players/Hosts** | VidMoly, DoodStream, 1fichier, Uptobox, SendVid, Sibnet, Lplayer, Uqload, Rapidfile, LuLuvid, Smoothpre, Vidzy | ## 📋 Configuration Requise - **Python 3.11+** - **Node.js** (pour les tests frontend uniquement) - **Playwright** (pour l'extraction dynamique sur certains sites) ## 🚀 Installation Rapide ```bash # Cloner le repository git clone https://git.lanro.eu/Roman/ohm_streaming.git cd ohm_streaming # Environnement Python python3 -m venv venv source venv/bin/activate pip install -r requirements.txt # Initialisation Playwright (requis pour VidMoly) playwright install chromium # Lancer l'application uvicorn main:app --reload --host 0.0.0.0 --port 3000 ``` Accès Web : `http://localhost:3000/web` ## 🧪 Tests & Qualité ```bash # Backend (Pytest) pytest # Tous les tests pytest -m "unit" # Tests unitaires rapides # Frontend (Vitest & Playwright) npm test # Tests unitaires JS npx playwright test # Tests E2E ``` ## 🏗️ Structure du Projet ``` Ohm_streaming/ ├── main.py # Point d'entrée & API FastAPI ├── app/ │ ├── downloaders/ # Logique d'extraction (Scraping) │ │ ├── anime_sites/ # Catalogues Anime │ │ ├── series_sites/ # Catalogues Séries │ │ └── video_players/ # Extracteurs de liens directs │ ├── routers/ # Routes API modulaires (Auth, Watchlist, etc.) │ ├── download_manager.py # Moteur de téléchargement asynchrone │ ├── watchlist.py # Logique métier du suivi │ └── scheduler.py # Planificateur de tâches ├── static/ # Frontend (JS Vanilla, CSS) ├── templates/ # Vues Jinja2 └── config/ # Données persistantes (JSON) ``` ## 🗺️ Plan d'Évolution Global (Modernisation) ### ✅ Phase 1 : Restructuration (Terminé) - Migration vers une architecture modulaire pour les downloaders. - Séparation stricte entre catalogues et hébergeurs vidéo. - Amélioration de la gestion des erreurs et des retries. ### ✅ Phase 2 : Consolidation & SQL (Terminé) - Migration complète des fichiers JSON vers **SQLModel** (SQLite). - Mise en place d'**Alembic** pour les migrations de base de données. - Centralisation des métadonnées et persistance robuste. ### 🏗️ Phase 3 : UX & Modernisation Frontend (En cours) - Adoption de **HTMX/Alpine.js** pour dynamiser l'interface. - Intégration du lecteur vidéo avancé **Plyr.io**. - Amélioration de la réactivité de la recherche et de la watchlist. ## 📝 Licence & Sécurité - Ce projet est à usage **éducatif et personnel** uniquement. - Respectez les droits d'auteur et les conditions d'utilisation des sites sources. - Ne partagez jamais votre `JWT_SECRET_KEY` en production. --- **Version actuelle : 2.3** **Dernière mise à jour : Mars 2026** **Développé avec ❤️ pour la communauté anime**