cb3ea8d926
Add complete support for SendVid video hosting service used by Anime-Sama for anime series like Hell's Paradise. Changes: - Create SendVidDownloader class with proper headers to avoid 403 errors - Add SendVid detection and handling in AnimeSamaDownloader - Update download_manager to include SendVid-specific headers - Support custom episode naming (e.g., "Hells Paradise - Episode 01.mp4") Technical details: - SendVid embed pages require User-Agent and Referer headers - Direct MP4 URLs extracted from <source> tags with IP/time-based parameters - Tested with Hell's Paradise Episode 01 (7MB, 24min, 1280x720) 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>
3.1 KiB
3.1 KiB
Ohm Stream Downloader
Web application pour télécharger des fichiers depuis divers hébergeurs (1fichier, Doodstream, Rapidfile, etc.).
Fonctionnalités
- Multi-hébergeurs : Support pour 1fichier, Doodstream, Rapidfile et plus
- Téléchargements parallèles : Jusqu'à 3 téléchargements simultanés
- Pause/Reprise : Mettez en pause et reprenez vos téléchargements
- Interface web moderne : Interface intuitive avec progression en temps réel
- API REST : Intégration facile avec d'autres applications
Installation
# 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
uvicorn main:app --reload --host 0.0.0.0 --port 8000
Utilisation
Interface Web
Ouvrez votre navigateur sur : http://localhost:8000/web
Collez simplement un lien de téléchargement et cliquez sur "Télécharger".
API
Créer un téléchargement :
curl -X POST http://localhost:8000/api/download \
-H "Content-Type: application/json" \
-d '{"url": "https://1fichier.com/?xxxxx"}'
Lister les téléchargements :
curl http://localhost:8000/api/downloads
Mettre en pause :
curl -X POST http://localhost:8000/api/download/{task_id}/pause
Reprendre :
curl -X POST http://localhost:8000/api/download/{task_id}/resume
Annuler :
curl -X DELETE http://localhost:8000/api/download/{task_id}
API Endpoints
| 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é |
| GET | /web |
Interface web |
Structure du Projet
Ohm_streaming/
├── main.py # Application FastAPI
├── app/
│ ├── models/ # Modèles de données
│ ├── downloaders/ # Extracteurs de liens par hébergeur
│ └── download_manager.py # Gestionnaire de téléchargements
├── downloads/ # Fichiers téléchargés
├── templates/
│ └── index.html # Interface web
└── static/ # Fichiers statiques
Ajouter un Hébergeur
Pour ajouter le support d'un nouvel hébergeur :
- Créez un fichier dans
app/downloaders/(ex:myhost.py) - Héritez de
BaseDownloader - Implémentez
can_handle(url)etget_download_link(url) - Ajoutez le downloader dans
app/downloaders/__init__.py
Configuration
max_parallel: Nombre maximum de téléchargements simultanés (défaut: 3)download_dir: Répertoire de stockage (défaut: "downloads")
Modifiez ces paramètres dans main.py.