yt-dlp : télécharge n'importe quelle vidéo avec Python, sans cliquer sur les boutons louches

yt-dlp : télécharge n'importe quelle vidéo avec Python, sans cliquer sur les boutons louches

De quoi avez-vous besoin

Version de Python

3.x

Packages

  • {"nom":"yt-dlp","version":"2026.8.19"}

Difficulté

Débutant

Tu veux garder une conférence, un cours ou un clip pour le regarder dans l'avion, hors ligne ? Les sites de conversion en ligne sont une plaie : publicités à gogo, fichiers douteux, files d'attente, et une qualité qui laisse à désirer. yt-dlp fait tout ça proprement, en local, depuis ton terminal. C'est un fork de youtube-dl, maintenu activement, qui gère des centaines de sites : YouTube, Vimeo, Twitch, Twitter, TikTok et bien d'autres. Bonus : il s'utilise aussi comme bibliothèque Python, donc tu peux l'intégrer dans tes propres scripts d'automatisation. On y va.

Étape 1 — Installe yt-dlp

Rien de plus simple : un pip et c'est réglé. Si tu es passé à uv, c'est encore plus rapide.

python
pip install yt-dlp

# ou, avec uv
uv pip install yt-dlp

Petite précision pour la suite : si tu veux extraire l'audio en MP3 (étape 4), il te faudra aussi ffmpeg installé sur ta machine. On en reparle au bon moment.

Étape 2 — Ton premier téléchargement

Le minimum vital tient en trois lignes de Python. Ici, on télécharge une vidéo YouTube en utilisant le gestionnaire de contexte with, qui nettoie tout proprement même si le téléchargement plante.

python
import yt_dlp

url = "https://www.youtube.com/watch?v=dQw4w9WgXcQ"

with yt_dlp.YoutubeDL() as ydl:
    ydl.download([url])

Le fichier atterrit dans ton dossier courant, avec son titre comme nom et la meilleure qualité disponible par défaut. Aussi simple que ça.

Étape 3 — Choisir la qualité et le format

Par défaut, yt-dlp fusionne la meilleure vidéo et le meilleur audio. Mais tu peux imposer une limite, par exemple du 1080p maximum, et décider du nom du fichier de sortie.

python
options = {
    "format": "bv*[height<=1080]+ba/b[height<=1080]",
    "outtmpl": "%(title)s.%(ext)s",
    "noplaylist": True,
}

with yt_dlp.YoutubeDL(options) as ydl:
    ydl.download([url])

La clé format utilise un langage de filtres : bv* désigne la meilleure vidéo, ba le meilleur audio, et le /b sert de plan B si la fusion n'est pas possible. outtmpl définit le motif du nom de fichier — %(title)s est remplacé par le titre, %(ext)s par l'extension. Et noplaylist évite d'aspirer toute une playlist par accident quand tu ne visais qu'une vidéo.

Étape 4 — Extrais l'audio en MP3

Tu veux juste la bande-son d'une conférence ou d'un live pour l'écouter en podcast ? C'est là que ffmpeg entre en scène. yt-dlp télécharge la meilleure piste audio, puis la convertit.

python
options = {
    "format": "bestaudio/best",
    "postprocessors": [{
        "key": "FFmpegExtractAudio",
        "preferredcodec": "mp3",
        "preferredquality": "192",
    }],
    "outtmpl": "%(title)s.%(ext)s",
}

with yt_dlp.YoutubeDL(options) as ydl:
    ydl.download([url])

Sur Linux, installe ffmpeg avec sudo apt install ffmpeg (ou pacman -S ffmpeg, dnf install ffmpeg...). Sur macOS, brew install ffmpeg, et sous Windows, winget install ffmpeg. Une fois ffmpeg présent, tu obtiens un MP3 en 192 kbps, prêt pour ton lecteur.

Étape 5 — Suis la progression et télécharge en lot

Pour un script plus sérieux, branche un hook de progression et passe une liste d'URL d'un coup.

python
def hook(d):
    if d["status"] == "downloading":
        print(f"\r{d['_percent_str']} à {d['_speed_str']}", end="", flush=True)
    elif d["status"] == "finished":
        print(f"\nTerminé : {d['filename']}")

urls = [
    "https://www.youtube.com/watch?v=AAAA",
    "https://www.youtube.com/watch?v=BBBB",
]

options = {
    "format": "bv*+ba/b",
    "outtmpl": "videos/%(title)s.%(ext)s",
    "progress_hooks": [hook],
}

with yt_dlp.YoutubeDL(options) as ydl:
    ydl.download(urls)

Le hook reçoit un dictionnaire à chaque étape du téléchargement : downloading, finished ou error. Tu peux ainsi afficher le pourcentage et la vitesse en temps réel, écrire dans un journal, ou envoyer une notification quand tout est terminé.

Conclusion

yt-dlp est l'un de ces outils qui rendent un service énorme pour un effort minime : trois lignes pour un téléchargement propre, et toute la puissance de Python quand le besoin se précise. Garde-le sous le coude pour archiver des conférences, sauvegarder tes propres vidéos, ou alimenter un pipeline de traitement audio. Un dernier mot : respecte les conditions d'utilisation des plateformes et les droits d'auteur. L'outil est puissant, à toi d'en faire un usage correct.