PyTubeFix - Téléchargez des vidéos YouTube en Python

par Korben -

PyTubeFix est une bibliothèque particulièrement élégante qui va vous permettre de télécharger des vidéos Youtube directement via vos scripts Python, sans a avoir recours avec un programme tiers comme yt-dlp.

Cette bibliothèque, qui fait honneur à la philosophie Python « batteries included », ne nécessite aucune dépendance externe. Un simple pip install pytubefix et vous voilà prêt à télécharger vos premières vidéos.

Commençons par le B.A.-BA.

Pour télécharger une vidéo en qualité maximale, quelques lignes de code suffisent :

from pytubefix import YouTube 
from pytubefix.cli import on_progress
url = "https://www.youtube.com/watch?v=votre_video" 
yt = YouTube(url, on_progress_callback=on_progress) 
print(f"Téléchargement de : {yt.title}") 
ys = yt.streams.get_highest_resolution() 
ys.download()

La fonction on_progress est particulièrement cool puisqu’elle affiche une barre de progression dans votre terminal. Plus besoin de regarder dans le vide en se demandant si le téléchargement avance !

Vous préférez récupérer uniquement l’audio, par exemple pour extraire la musique d’un clip ? PyTubeFix a pensé à tout :

ys = yt.streams.get_audio_only()ys.download()

Les mélomanes apprécieront particulièrement la possibilité de télécharger des playlists entières, comme ça, si vous tombez sur une compilation géniale de morceaux des années 80, et en quelques lignes de code, vous pouvez tout récupérer :

from pytubefix import Playlist
pl = Playlist("https://www.youtube.com/playlist?list=votre_playlist") 
for video in pl.videos: 
ys = video.streams.get_audio_only() 
ys.download()

La bibliothèque brille également par ses fonctionnalités avancées. Vous pouvez par exemple spécifier un dossier de destination personnalisé :

ys.download(output_path="chemin/vers/dossier")

Les sous-titres ne sont pas en reste puisque PyTubeFix permet de récupérer et sauvegarder les captions au format SRT :

yt = YouTube('http://youtube.com/watch?v=votre_video')caption = yt.captions['a.en'] # 'a.en' pour l'anglaiscaption.save_captions("sous-titres.srt")

Pour les utilisateurs plus avancés, la bibliothèque propose même une intégration OAuth pour accéder aux vidéos nécessitant une authentification :

yt = YouTube(url, use_oauth=True, allow_oauth_cache=True)

Mais ce n’est pas tout car PyTubeFix permet également d’explorer les chaînes YouTube de manière programmatique :

from pytubefix import Channel
c = Channel("https://www.youtube.com/@NomDeLaChaine") 
print(f'Chaîne : {c.channel_name}') 
for video in c.videos: video.streams.get_highest_resolution().download()

Et pour les cas où vous cherchez du contenu spécifique, la fonction de recherche s’avère redoutablement efficace :

from pytubefix import Search
results = Search('Python Tutorial') 
for video in results.videos: print(f'Titre : {video.title}') print(f'URL : {video.watch_url}')

Vous pouvez même affiner vos recherches avec des filtres sophistiqués :

from pytubefix.contrib.search import Search, Filter

filtres = { 'upload_date': Filter.get_upload_date('Today'), 'type': Filter.get_type("Video"), 'duration': Filter.get_duration("Under 4 minutes") }

En termes de bonnes pratiques, voici quelques astuces pour optimiser votre utilisation de PyTubeFix :

  • Gérez systématiquement les exceptions pour éviter les interruptions inattendues
  • Vérifiez l’espace disque disponible avant de lancer des téléchargements massifs
  • Utilisez des noms de fichiers compatibles avec votre système d’exploitation
  • Pensez à implémenter des temporisations entre les requêtes pour éviter le throttling

Un dernier conseil : n’oubliez pas que le téléchargement de vidéos YouTube doit se faire dans le respect des droits d’auteur et des conditions d’utilisation de la plateforme, COMME TOUJOURS, HEIN !

Découvrez PyTubeFix sur GitHub

Merci à Lorenper pour cette excellente découverte !