a684237725967788d1f1f45cd6ab3d1d87b9ef2a
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 :
- Catalogues (Anime/Series Sites) : Extraction des listes d'épisodes et métadonnées.
- Players Vidéo (Video Players) : Extraction des liens de téléchargement direct depuis les embeds (VidMoly, DoodStream, etc.).
- 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
# 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é
# 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_KEYen production.
Version actuelle : 2.3
Dernière mise à jour : Mars 2026
Développé avec ❤️ pour la communauté anime
Description
Languages
Python
75.8%
HTML
10.6%
JavaScript
8.7%
TypeScript
2.5%
CSS
2.3%