Files
ohm_streaming/README.md
T
root a684237725
CI / Test (Python 3.11) (push) Has been cancelled
CI / Test (Python 3.12) (push) Has been cancelled
CI / Lint (push) Has been cancelled
CI / Type Check (push) Has been cancelled
CI / Summary (push) Has been cancelled
Phase 2 Complete: SQL migration with SQLModel and Alembic
2026-03-25 13:46:15 +00:00

5.2 KiB

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

# 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_KEY en production.

Version actuelle : 2.3
Dernière mise à jour : Mars 2026 Développé avec ❤️ pour la communauté anime