# 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`.