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.
pip install yt-dlp
# ou, avec uv
uv pip install yt-dlpPetite 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.
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.
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.
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.
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.






