feat: Add SendVid downloader support
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>
This commit is contained in:
@@ -0,0 +1,106 @@
|
||||
# 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
|
||||
|
||||
```bash
|
||||
# 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 :**
|
||||
```bash
|
||||
curl -X POST http://localhost:8000/api/download \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"url": "https://1fichier.com/?xxxxx"}'
|
||||
```
|
||||
|
||||
**Lister les téléchargements :**
|
||||
```bash
|
||||
curl http://localhost:8000/api/downloads
|
||||
```
|
||||
|
||||
**Mettre en pause :**
|
||||
```bash
|
||||
curl -X POST http://localhost:8000/api/download/{task_id}/pause
|
||||
```
|
||||
|
||||
**Reprendre :**
|
||||
```bash
|
||||
curl -X POST http://localhost:8000/api/download/{task_id}/resume
|
||||
```
|
||||
|
||||
**Annuler :**
|
||||
```bash
|
||||
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 :
|
||||
|
||||
1. Créez un fichier dans `app/downloaders/` (ex: `myhost.py`)
|
||||
2. Héritez de `BaseDownloader`
|
||||
3. Implémentez `can_handle(url)` et `get_download_link(url)`
|
||||
4. 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`.
|
||||
Reference in New Issue
Block a user