Bot Telegram de téléchargement vidéo/audio depuis les réseaux sociaux (YouTube, TikTok, etc.) via yt-dlp.
📦 Déployé via GitHub Container Registry · Multi-arch (linux/amd64, linux/arm64)
- 📥 Téléchargement vidéo –
/download <lien> - 🎵 Extraction audio MP3 –
/music <lien> - ⚡ Auto-détection – Envoie un lien directement, le bot télécharge automatiquement
- 📤 Upload intelligent – Envoi Telegram direct (< 35 Mo) ou upload externe via
curl.libriciel.fr - ♻️ Rétention configurable – Nettoyage automatique basé sur la taille et le type de fichier
- 🔁 Déduplication – Évite de retélécharger les mêmes URLs (hash SHA-256)
- 🗑️ Nettoyage périodique – Thread de fond qui libère l'espace disque
cp .env.example .env
# Éditer .env : renseigner BOT_TOKEN
docker compose up -d --buildLe token peut aussi être passé via variable d'environnement (prioritaire sur .env) :
BOT_TOKEN=123456:ABC... docker compose up -d --buildpython3.11 -m venv venv
venv/bin/pip install --upgrade pip setuptools wheel
venv/bin/pip install -r requirements.txt
venv/bin/python main.pyConstruire et lancer :
docker compose up -d --buildLogs :
docker compose logs -fArrêter :
docker compose downVolumes montés localement : logs/, downloads/, download_temp/.
| Branche | Tags Docker |
|---|---|
main |
latest, VERSION |
develop |
dev |
Toutes les images : ghcr.io/overstylefr/socialvideodownload.py
Copier le fichier modèle et éditer :
cp .env.example .env| Variable | Obligatoire | Description | Défaut |
|---|---|---|---|
BOT_TOKEN |
✅ Oui | Token Telegram du bot | — |
VERSION |
❌ Non | Version affichée dans /help et /stats |
unknown |
DEVELOPED_BY |
❌ Non | Crédit auteur | Tom V. | OverStyleFR |
FFMPEG_PATH |
❌ Non | Chemin vers le binaire FFmpeg | ffmpeg/ffmpeg-7.0.2-amd64-static/ffmpeg (→ fallback "ffmpeg") |
MIN_FREE_SPACE_MB |
❌ Non | Seuil d'espace disque minimal avant nettoyage d'urgence | 500 |
CLEANUP_INTERVAL_HOURS |
❌ Non | Intervalle entre les nettoyages périodiques | 24 |
SMALL_FILE_SIZE_MB |
❌ Non | Seuil pour considérer un fichier comme "petit" | 12 |
RETENTION_SMALL_HOURS |
❌ Non | Rétention des petits fichiers + MP3 | 24 |
RETENTION_LARGE_HOURS |
❌ Non | Rétention des gros fichiers | 2 |
Le fichier .env est la source unique de configuration, prioritaire sur les variables d'environnement système.
| Commande | Description |
|---|---|
/start |
Message d'accueil |
/help |
Aide détaillée |
/download <lien> |
Télécharge une vidéo |
/music <lien> |
Télécharge et convertit l'audio en MP3 |
| Lien direct | Téléchargement automatique (texte libre) |
├── main.py # Point d'entrée
├── config.py # Configuration (.env)
├── commands/
│ ├── start.py # /start
│ ├── help.py # /help
│ ├── download.py # /download
│ ├── music.py # /music
│ ├── stats.py # /stats
│ └── auto_download.py # Auto-détection de liens
└── utils/
├── cache.py # Cache de métadonnées
├── disk_manager.py # Nettoyage disque
├── file_manager.py # Déduplication (SHA-256)
├── logger.py # Logs console + fichier
├── progress_file.py # Wrapper de progression pour upload
├── retention.py # Politique de rétention
├── token_loader.py # Chargement du token
├── upload.py # Upload Telegram
└── curl_uploader.py # Upload externe (curl)
Voir DOCS.md pour les détails d'architecture, le flux applicatif, les notes de compatibilité et le dépannage.
Projet personnel développé par Tom V. | OverStyleFR.