root 6168e9ed60 docs: Enhance README with comprehensive feature documentation
Add detailed documentation for:
- Anime search and download features (4 providers)
- File host and video host support
- Download management and web interface
- Complete API endpoints reference
- Usage examples and configuration guide
- Provider addition guide
- Detailed roadmap for future versions

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
2026-01-23 10:00:37 +00:00
2026-01-23 08:17:10 +00:00

Ohm Stream Downloader

Application web complète pour télécharger des animes et fichiers depuis divers hébergeurs.

Interface moderne avec recherche d'anime, métadonnées enrichies, téléchargements parallèles et streaming vidéo.

Fonctionnalités

🎬 Recherche et Téléchargement d'Animes

  • Recherche unifiée : Recherchez sur 4 providers simultanément (Anime-Sama, Neko-Sama, Anime-Ultime, Vostfree)
  • Métadonnées riches : Synopsis, genres, notes, année de sortie, studio, nombre d'épisodes, statut
  • Téléchargement par épisode : Sélectionnez et téléchargez des épisodes individuels
  • Téléchargement de saison complète : Téléchargez tous les épisodes d'un coup
  • Streaming vidéo : Regardez vos animes directement dans le navigateur
  • Recherche floue : Gestion des fautes de frappe et variations de noms

📁 Hébergeurs de Fichiers Supportés

  • 1fichier (1fichier.com, 1fichier.fr)
  • Uptobox (uptobox.com, uptobox.fr)
  • Doodstream (doodstream.com, dood.to, dood.lol, etc.)
  • Rapidfile (rapidfile.net, rapidfile.com)

🎥 Hébergeurs Vidéo Supportés

  • VidMoly (vidmoly.to, vidmoly.com)
  • SendVid (sendvid.com)

🚀 Gestion des Téléchargements

  • Téléchargements parallèles : Jusqu'à 3 téléchargements simultanés
  • Pause/Reprise : Contrôle total sur vos téléchargements
  • Progression en temps réel : Vitesse, progression, taille
  • Reprise automatique : Support des HTTP Range pour reprendre les téléchargements interrompus

🌐 Interface Web

  • Design moderne : Interface sombre avec gradients et animations
  • Responsive : Fonctionne sur desktop et mobile
  • Mise à jour automatique : Rafraîchissement chaque seconde
  • Métadonnées visuelles : Affichage des informations anime avec icônes

🔌 API REST

  • Endpoints REST : Intégration facile avec d'autres applications
  • Documentation automatique : Swagger UI disponible

📋 Configuration Requise

  • Python 3.8+
  • pip

🚀 Installation

# Cloner le repository
git clone https://github.com/votre-user/Ohm_streaming.git
cd Ohm_streaming

# Créer l'environnement virtuel
python3 -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate

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

# Lancer le serveur de développement
uvicorn main:app --reload --host 0.0.0.0 --port 3000

Accédez à l'interface : http://localhost:3000/web

📖 Utilisation

Interface Web

  1. Onglet Recherche d'Anime :

    • Entrez le nom d'un anime (ex: "Naruto", "One Piece")
    • Sélectionnez la langue (VOSTFR ou VF)
    • Cochez "Inclure les métadonnées" pour plus d'informations
    • Cliquez sur "Rechercher"
    • Sélectionnez un épisode et cliquez sur "Télécharger"
    • Ou utilisez "Toute la saison" pour tout télécharger
  2. Onglet Lien Direct :

    • Collez un lien de téléchargement direct
    • Cliquez sur "Télécharger"
  3. Onglet Providers :

    • Utilisez les onglets spécifiques à chaque provider
    • Chaque onglet a ses propres options de recherche

API Endpoints

Téléchargements

Méthode Endpoint Description
POST /api/download Créer un nouveau téléchargement
GET /api/downloads Lister tous les téléchargements
GET /api/download/{task_id} Statut d'un téléchargement
POST /api/download/{task_id}/pause Mettre en pause
POST /api/download/{task_id}/resume Reprendre
DELETE /api/download/{task_id} Annuler/Supprimer
GET /api/download/{task_id}/file Télécharger le fichier terminé

Anime

Méthode Endpoint Description
GET /api/anime/search Rechercher un anime (paramètres: q, lang, include_metadata)
GET /api/anime/metadata Obtenir les métadonnées d'un anime (paramètre: url)
GET /api/anime/episodes Liste des épisodes d'un anime (paramètres: url, lang)
POST /api/anime/download Télécharger un épisode
POST /api/anime/download-season Télécharger toute une saison

Streaming Vidéo

Méthode Endpoint Description
GET /video/{task_id} Stream une vidéo (support Range/seeking)
GET /stream/{filename} Stream par nom de fichier
GET /player/{task_id} Lecteur vidéo pour un téléchargement
GET /watch/{filename} Lecteur vidéo par nom de fichier

Système

Méthode Endpoint Description
GET / Informations sur l'API
GET /api/providers Liste des providers supportés
GET /health Vérifier l'état du serveur
GET /web Interface web

Exemples API

Rechercher un anime avec métadonnées :

curl "http://localhost:3000/api/anime/search?q=naruto&lang=vostfr&include_metadata=true"

Obtenir les épisodes d'un anime :

curl "http://localhost:3000/api/anime/episodes?url=https://anime-sama.si/catalogue/naruto/saison1/vostfr/&lang=vostfr"

Télécharger une saison complète :

curl -X POST "http://localhost:3000/api/anime/download-season?url=https://anime-sama.si/catalogue/naruto/saison1/vostfr/&lang=vostfr"

Créer un téléchargement direct :

curl -X POST http://localhost:3000/api/download \
  -H "Content-Type: application/json" \
  -d '{"url": "https://1fichier.com/?xxxxx"}'

🏗️ Structure du Projet

Ohm_streaming/
├── main.py                      # Application FastAPI & endpoints API
├── app/
│   ├── models/                  # Modèles Pydantic
│   │   └── __init__.py         # DownloadTask, AnimeMetadata, etc.
│   ├── downloaders/             # Downloaders par provider
│   │   ├── base.py              # Classe BaseDownloader
│   │   ├── animesama.py         # Anime-Sama (avec métadonnées)
│   │   ├── animeultime.py       # Anime-Ultime (avec métadonnées)
│   │   ├── nekosama.py          # Neko-Sama (avec métadonnées)
│   │   ├── vostfree.py          # Vostfree (avec métadonnées)
│   │   ├── unfichier.py         # 1fichier
│   │   ├── uptobox.py           # Uptobox
│   │   ├── doodstream.py        # Doodstream
│   │   ├── rapidfile.py         # Rapidfile
│   │   ├── vidmoly.py           # VidMoly
│   │   ├── sendvid.py           # SendVid
│   │   └── __init__.py          # Registry des downloaders
│   ├── providers.py             # Configuration des providers
│   └── download_manager.py      # Gestionnaire de file d'attente
├── downloads/                   # Fichiers téléchargés
├── templates/
│   ├── index.html               # Interface web principale
│   └── player.html              # Lecteur vidéo
├── static/                      # Fichiers statiques (CSS, JS, images)
└── requirements.txt             # Dépendances Python

⚙️ Configuration

Modifiez ces paramètres dans main.py :

download_manager = DownloadManager(
    download_dir="downloads",  # Répertoire de stockage
    max_parallel=3              # Téléchargements simultanés
)

🔧 Ajouter un Provider

Ajouter un Hébergeur de Fichiers

  1. Créez app/downloaders/myhost.py :
from .base import BaseDownloader
from bs4 import BeautifulSoup

class MyHostDownloader(BaseDownloader):
    def can_handle(self, url: str) -> bool:
        return "myhost.com" in url.lower()

    async def get_download_link(self, url: str) -> tuple[str, str]:
        # Extraire le lien de téléchargement direct
        response = await self.client.get(url)
        soup = BeautifulSoup(response.text, 'lxml')
        # ... logique d'extraction ...
        return download_url, filename
  1. Ajoutez-le dans app/providers.py :
FILE_HOSTS = {
    # ...
    "myhost": {
        "name": "MyHost",
        "domains": ["myhost.com"],
        "icon": "📁",
        "color": "#4ecdc4"
    }
}

Ajouter un Provider Anime avec Métadonnées

  1. Créez le downloader avec les méthodes requises :
class MyAnimeDownloader(BaseDownloader):
    async def search_anime(self, query: str, lang: str = "vostfr", include_metadata: bool = False):
        # Implémenter la recherche

    async def get_anime_metadata(self, anime_url: str) -> dict:
        # Extraire: synopsis, genres, rating, release_year, studio, etc.
        return {
            'synopsis': '...',
            'genres': ['Action', 'Aventure'],
            'rating': '8.5/10',
            'release_year': 2023,
            'studio': 'Studio Name',
            # ...
        }

    async def get_episodes(self, anime_url: str, lang: str = "vostfr"):
        # Retourner la liste des épisodes
  1. Enregistrez-le dans app/providers.py et main.py

🗺️ Roadmap / Plans Futurs

Version 2.2 - Améliorations des Métadonnées

  • Affichage des posters : Afficher les images de couverture dans les résultats de recherche
  • Filtrage avancé : Filtrer par genre, année, studio, statut
  • Tri des résultats : Par popularité, date, note
  • Favoris : Sauvegarder les animes favoris
  • Historique : Voir les animes récemment consultés

Version 2.3 - Gestion de Bibliothèque

  • Bibliothèque personnelle : Gérer sa collection d'anime téléchargés
  • Statistiques : Temps de visionnage, espace disque utilisé
  • Listes de lecture : Créer des playlists personnalisées
  • Marquage : Marquer les épisodes comme vus/non vus
  • Notes personnelles : Noter les animes et laisser des commentaires

Version 2.4 - Qualité et Formats

  • Sélection de qualité : Choisir entre 1080p, 720p, 480p
  • Conversion automatique : Convertir en différents formats
  • Compression : Réduire la taille des fichiers
  • Extraction de sous-titres : Télécharger les subs automatiquement
  • Multi-audio : Gérer les versions VF/VOSTFR

Version 2.5 - Fonctionnalités Sociales

  • Partage de listes : Partager ses playlists avec amis
  • Recommandations : Suggestions basées sur l'historique
  • Notes et avis : Système de commentaires
  • Intégration Discord/Telegram : Notifications de nouveaux épisodes

Version 2.6 - Mobile et Applications

  • Application mobile : App native iOS/Android
  • PWA : Progressive Web App pour offline
  • Cast : Chromecast/AirPlay support
  • Download sur mobile : Interface optimée mobile

Version 3.0 - Fonctionnalités Avancées

  • Sauvegarde cloud : Sync avec Google Drive/Dropbox
  • Streaming distant : Regarder partout
  • Multi-utilisateurs : Profils et permissions
  • API publique : API pour développeurs tiers
  • Plugins : Système d'extensions

Améliorations Continues

  • Performance : Optimisation du chargement et de l'interface
  • Accessibilité : Support lecteur d'écran, clavier
  • Tests automatisés : Suite de tests E2E
  • Documentation : Guides d'utilisation et API
  • Internationalisation : Support multilingue complet

🤝 Contribution

Les contributions sont les bienvenues !

  1. Fork le projet
  2. Créez une branche (git checkout -b feature/AmazingFeature)
  3. Commit (git commit -m 'Add some AmazingFeature')
  4. Push (git push origin feature/AmazingFeature)
  5. Ouvrez une Pull Request

📝 Licence

Ce projet est à usage éducatif uniquement. Respectez les droits d'auteur et les lois locales.

⚠️ Avertissement

Ce logiciel est destiné à un usage personnel et éducatif. Les utilisateurs sont responsables de vérifier qu'ils ont le droit de télécharger du contenu protégé par des droits d'auteur dans leur juridiction.

📧 Support

Pour les bugs et suggestions :

  • Ouvrez une issue sur GitHub
  • Discutez avec la communauté

Développé avec ❤️ pour la communauté anime

Version actuelle : 2.1 Dernière mise à jour : Janvier 2026

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%