Une application web moderne pour télécharger et enregistrer automatiquement des flux Twitch en temps réel avec détection automatique et mode faible consommation.
- Enregistrement en temps réel : Capturez les streams Twitch pendant qu'ils sont diffusés
- Détection automatique : Vérification automatique du statut en live des streamers
- Gestion multiple de streams : Ajoutez et gérez plusieurs streams simultanément
- Formats vidéo multiples : Support MP4 et MKV
- Mode faible consommation : Enregistrement en segments avec traitement différé
- Traitement intelligent : Fusion automatique des segments quand aucun stream n'est actif
- Interface web intuitive : Interface utilisateur moderne et responsive
- Qualité configurable : Choisissez la qualité d'enregistrement (de 160p à 1080p60)
- Réplication automatique : Sauvegarde automatique vers serveurs FTP ou SMB/CIFS
- Historique des enregistrements : Visualisez et téléchargez vos enregistrements passés
- Aperçu vidéo : Prévisualisez vos enregistrements directement dans le navigateur
- Gestion des segments : Interface dédiée pour le traitement des segments
- Python 3.6 ou supérieur
- Streamlink (pour l'enregistrement des streams)
- FFmpeg (pour le mode faible consommation)
- Connexion Internet stable
-
Cloner le projet
git clone <url-du-repo> cd twitch-ui-dowload
-
Installer les dépendances Python
pip install -r requirements.txt
-
Installer Streamlink
pip install streamlink
Ou suivez les instructions officielles : https://streamlink.github.io/install.html
-
Installer FFmpeg (requis pour le mode faible consommation)
- Windows : Téléchargez depuis https://ffmpeg.org/download.html
- Linux :
sudo apt install ffmpeg - macOS :
brew install ffmpeg
-
Lancer l'application
python app.py
-
Accéder à l'interface web Ouvrez votre navigateur et allez à : http://localhost:5000
- Allez dans la section "Streams"
- Cliquez sur "Ajouter un Stream"
- Entrez le nom du stream et l'URL Twitch
- Cliquez sur "Ajouter"
- Dans la liste des streams, cliquez sur l'icône satellite pour vérifier manuellement
- Le statut s'affiche automatiquement : "En Live" (vert) ou "Hors ligne" (rouge)
- La vérification automatique se fait toutes les 2 minutes
- Dans la liste des streams, cliquez sur "Enregistrer" pour le stream souhaité
- L'enregistrement démarre automatiquement
- Le statut passe à "En cours d'enregistrement" avec un indicateur rouge clignotant
- Activez le mode dans "Paramètres" > "Mode faible consommation"
- Les streams sont enregistrés en segments dans le dossier
temp_segments/ - Les segments sont traités automatiquement selon la configuration :
- Manuel : Via la page "Traitement"
- Programmé : À l'heure configurée
- Intelligent : Quand aucun stream n'est actif
- Allez dans "Traitement"
- Visualisez la file d'attente et le statut du système
- Traitez manuellement les segments en attente
- Surveillez les enregistrements actifs et les segments temporaires
- Allez dans "Paramètres"
- Configurez :
- Qualité d'enregistrement : Choisissez la résolution souhaitée
- Format vidéo : MP4 ou MKV
- Détection automatique : Vérification automatique des streams
- Mode faible consommation : Enregistrement en segments
- Réplication automatique : Sauvegarde FTP/SMB
L'application utilise un fichier config.json :
{
"quality": "best",
"video_format": "mp4",
"auto_check_live": true,
"check_interval": 5,
"low_power_mode": false,
"auto_process_time": "03:00",
"smart_processing": true,
"ftp_enabled": false,
"ftp_host": "",
"ftp_port": 21,
"ftp_username": "",
"ftp_password": "",
"ftp_path": "/recordings",
"smb_enabled": false,
"smb_host": "",
"smb_share": "",
"smb_username": "",
"smb_password": "",
"smb_path": "/recordings"
}- video_format : Format de sortie (mp4 ou mkv)
- auto_check_live : Vérification automatique du statut en live
- check_interval : Intervalle de vérification en minutes (1-60)
- low_power_mode : Mode faible consommation avec enregistrement en segments
- auto_process_time : Heure de traitement automatique des segments (format HH:MM)
- smart_processing : Traitement intelligent quand aucun stream n'est actif
best: Meilleure qualité disponible (recommandé)1080p60: 1080p à 60fps1080p: 1080p à 30fps720p60: 720p à 60fps720p: 720p à 30fps480p: 480p360p: 360p160p: Audio seulementworst: Qualité la plus basse
twitch-ui-dowload/
├── app.py # Application Flask principale
├── requirements.txt # Dépendances Python
├── README.md # Documentation
├── config.json # Configuration (généré automatiquement)
├── streams.json # Liste des streams (généré automatiquement)
├── recordings/ # Dossier des enregistrements finaux
├── temp_segments/ # Segments temporaires (mode faible consommation)
└── templates/ # Templates HTML
├── base.html
├── index.html
├── streams.html
├── recordings.html
├── processing.html
└── settings.html
GET /: Page d'accueilGET /streams: Gestion des streamsGET /recordings: Visualisation des enregistrementsGET /processing: Traitement des segmentsGET /settings: Configuration
GET|POST|DELETE /api/streams: API des streamsGET /api/check_live/<stream_name>: Vérifier le statut en live
POST /api/start_recording: Démarrer un enregistrementPOST /api/stop_recording: Arrêter un enregistrementGET /api/recordings: Liste des enregistrementsDELETE /api/recordings/<filename>: Supprimer un enregistrementGET /api/download/<filename>: Télécharger un enregistrement
POST /api/process_segments: Traiter manuellement les segmentsGET /api/processing_queue: État de la file d'attenteGET /api/system_status: Statut du système
GET|POST /api/settings: Gestion de la configuration
# Vérifiez l'installation
streamlink --version
# Réinstallez si nécessaire
pip install --upgrade streamlink# Vérifiez l'installation
ffmpeg -version
# Ajoutez FFmpeg au PATH si nécessaire- Assurez-vous que les dossiers
recordings/ettemp_segments/sont accessibles en écriture - Vérifiez les permissions du répertoire de travail
- Vérifiez la connectivité Internet
- Augmentez l'intervalle de vérification si nécessaire
- Consultez les logs de l'application
- Vérifiez que FFmpeg est installé et accessible
- Consultez la page "Traitement" pour voir les erreurs
- Vérifiez l'espace disque disponible
- Les enregistrements sont sauvegardés au format MP4 ou MKV selon la configuration
- Le mode faible consommation réduit l'utilisation CPU/mémoire pendant l'enregistrement
- La détection automatique vérifie le statut des streamers à intervalles réguliers
- Le traitement intelligent optimise l'utilisation des ressources
- L'application fonctionne en arrière-plan pendant les enregistrements
- Les fichiers de configuration sont créés automatiquement au premier lancement
Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.