~ / Blog / Télécharger des vidéos YouTube en Python
En ce moment je bosse sur Hyperclip, un petit SaaS pour les YouTubeurs qui veulent produire des clips de leurs vidéos YouTube. L'idée est simple : tu colles l'URL de ta vidéo, tu choisis les moments forts, et hop, tu récupères des clips prêts à poster sur TikTok, Instagram Reels ou YouTube Shorts.
La première brique du projet, c'est de télécharger la vidéo source. Et pour ça, il y a yt-dlp, un fork de youtube-dl qui est activement maintenu. Le truc cool, c'est qu'il a un binding Python natif. Pas besoin de subprocess, pas de shell. Tout se fait en quelques lignes.
J'utilise uv pour gérer mes projets Python. C'est rapide, c'est propre, je recommande.
uv init hyperclip
cd hyperclip
uv add yt-dlp
C'est tout. Le pyproject.toml généré ressemble à ça :
[project]
name = "hyperclip"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.12"
dependencies = [
"yt-dlp>=2026.3.13",
]
20 lignes, pas une de plus :
import sys
import yt_dlp
def download_video(url: str, output_dir: str = ".") -> None:
"""Download a YouTube video from the given URL."""
opts = {
"outtmpl": f"{output_dir}/%(title)s.%(ext)s",
"format": "bestvideo+bestaudio/best",
"merge_output_format": "mp4",
}
with yt_dlp.YoutubeDL(opts) as ydl:
ydl.download([url])
def main():
if len(sys.argv) < 2:
print("Usage: uv run main.py ")
sys.exit(1)
download_video(sys.argv[1])
if __name__ == "__main__":
main()
outtmpl : le template du nom de fichier. %(title)s sera remplacé par le titre de la vidéo, %(ext)s par l'extension.format : on demande la meilleure qualité vidéo + audio. Si les deux flux sont séparés (ce qui est souvent le cas sur YouTube), yt-dlp les merge automatiquement.merge_output_format : on force le résultat en MP4.uv run main.py https://www.youtube.com/watch?v=dQw4w9WgXcQ
Et voilà, la vidéo se télécharge dans le dossier courant.
Pas besoin d'activer un venv, uv run gère tout.
C'est la première étape. L'idée maintenant c'est d'enchaîner avec la détection des moments forts (transcription + analyse), puis le découpage automatique des clips. Stay tuned ;)