root dd1365eff9
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
fix: episodes loading in dropdown
- Fix ZT get_episodes: find episode links by text pattern instead of URL
- Episodes now load into #player-container instead of tiny dropdown div
- Scroll to player container after episodes load
2026-03-28 01:04:32 +00:00
2026-03-28 01:04:32 +00:00

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. Propulsée par FastAPI, SQLModel et une interface dynamique HTMX/Alpine.js.

Fonctionnalités

🎬 Recherche & Streaming

  • Recherche unifiée : Recherchez animes et séries TV simultanément via plusieurs sources.
  • 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 Plyr.io intégré supportant plus de 15 hébergeurs.
  • Téléchargement flexible : Épisode par épisode ou saison complète.

📋 Watchlist & Automatisation

  • Suivi intelligent : Ajoutez des titres à votre watchlist pour ne rater aucun épisode.
  • Auto-Download : Téléchargement automatique des nouveaux épisodes dès leur parution.
  • 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 & Stack Technique

L'application repose sur une architecture moderne et robuste :

  • Backend : Python 3.11+, FastAPI pour l'API asynchrone.
  • Base de Données : SQLModel (SQLAlchemy + Pydantic) avec SQLite.
  • Migrations : Alembic pour la gestion évolutive du schéma de données.
  • Frontend : HTMX pour les interactions serveur, Alpine.js pour l'état client, Vanilla CSS.
  • Streaming : Plyr.io pour une expérience de lecture fluide et moderne.

📁 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, OneUpload

🚀 Installation & Configuration

1. Prérequis

  • Python 3.11+
  • Node.js (pour les tests optionnels)
  • Playwright (requis pour l'extraction de certains lecteurs comme VidMoly)

2. Installation

# Cloner le repository
git clone https://git.lanro.eu/Roman/ohm_streaming.git
cd ohm_streaming

# Créer et activer l'environnement virtuel
python3 -m venv venv
source venv/bin/activate

# Installer les dépendances
pip install -r requirements.txt

# Initialisation Playwright
playwright install chromium

3. Configuration

Créez un fichier .env à la racine du projet (voir .env.example). Note importante sur la sécurité : Générez une clé secrète JWT sécurisée.

# Commande pour générer une clé secrète
python3 -c "import secrets; print(secrets.token_urlsafe(32))"

4. Lancement

# Lancer l'application (Port 3000 par défaut)
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 complets

🏗️ Structure du Projet

Ohm_streaming/
├── main.py                  # Point d'entrée & Middleware FastAPI
├── app/
│   ├── downloaders/         # Logique d'extraction (Scraping 3-tier)
│   ├── models/              # Modèles SQLModel & Pydantic
│   ├── routers/             # Routes API modulaires
│   ├── download_manager.py  # Moteur de téléchargement asynchrone
│   ├── watchlist.py         # Logique métier du suivi
│   └── database.py          # Configuration de la base de données
├── alembic/                 # Migrations de base de données
├── static/                  # Frontend (JS, CSS, Img)
├── templates/               # Vues Jinja2 (avec HTMX & Alpine.js)
└── downloads/               # Répertoire par défaut des médias

📝 Licence & Sécurité

  • Ce projet est à usage éducatif et personnel uniquement.
  • Respectez les droits d'auteur et les conditions d'utilisation des sites sources.
  • L'utilisation de ce logiciel est sous votre entière responsabilité.

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

S
Description
No description provided
Readme 8.2 MiB
Languages
Python 75.8%
HTML 10.6%
JavaScript 8.7%
TypeScript 2.5%
CSS 2.3%