pym3u8downloader
M3U8 Downloader est une classe Python conçue pour télécharger et concaténer des fichiers vidéo à partir de listes de lecture M3U8, y compris les listes de lecture principales. Cette classe offre des fonctionnalités complètes pour gérer les fichiers de playlist M3U8, télécharger des segments vidéo, éventuellement les combiner en un seul fichier vidéo et gérer diverses conditions d'erreur.
M3U8Downloader peut être installé en utilisant pip :
pip install pym3u8downloader
from pym3u8downloader import M3U8Downloader
# Initialize the downloader
downloader = M3U8Downloader (
input_file_path = "http://example.com/video.m3u8" ,
output_file_path = "output_video"
)
# Download and concatenate the playlist
downloader . download_playlist ()
# Download and concatenate the master playlist
downloader . download_master_playlist ( name = '720' )
# Output
# Verify : [##################################################] 100%
# Download: [##################################################] 100%
# Build : [##################################################] 100%
pym3u8downloader
M3U8Downloader
M3U8Downloader(input_file_path: str, output_file_path: str, skip_space_check: Optional[bool] = False, debug: Optional[bool] = False, debug_file_path: Optional[str] = 'debug.log', max_threads: Optional[int] = 10, verify_ssl: Optional[bool] = True)
: initialise l'objet M3U8Downloader avec le spécifié paramètres. download_playlist(merge: bool = True)
: Télécharge les fichiers vidéo à partir d'une playlist M3U8. Le paramètre facultatif merge
détermine le traitement des segments téléchargés. Lorsque merge
est définie sur True
, la méthode télécharge et concatène tous les segments vidéo en un seul fichier de sortie. Si merge
est False
, il télécharge uniquement les segments sans les concaténer, conservant chaque segment comme un fichier individuel.download_master_playlist(name: Optional[str] = None, bandwidth: Optional[str] = None, resolution: Optional[str] = None, merge: bool = True)
: Télécharge des fichiers vidéo à partir d'une liste de lecture principale M3U8, avec la variante spécifique sélectionnée basé sur des paramètres facultatifs tels que name
, bandwidth
et resolution
. Le paramètre facultatif merge
détermine le traitement des segments téléchargés. Lorsque merge
est définie sur True
, la méthode télécharge et concatène tous les segments vidéo en un seul fichier de sortie. Si merge
est False
, il télécharge uniquement les segments sans les concaténer, conservant chaque segment comme un fichier individuel. input_file_path
: propriété Getter/setter pour le chemin du fichier d'entrée.output_file_path
: propriété Getter/setter pour le chemin du fichier de sortie.skip_space_check
: propriété Getter/setter pour l'indicateur de vérification de l'espace ignoré.debug
: propriété Getter/setter pour l'indicateur de débogage.debug_file_path
: propriété Getter/setter pour le chemin du fichier de débogage.max_threads
: propriété Getter/setter pour le nombre maximum de threads pouvant être exécutés en parallèle.is_download_complete
: propriété Getter pour l'état d'achèvement du téléchargement.verify_ssl
: propriété Getter/setter pour l'indicateur de vérification SSL. Cela permet d'ignorer les avertissements SSL pour les URL basées sur HTTPS. La valeur par défaut est True.M3U8DownloaderError
Cette classe d'erreur est utilisée pour signaler tout problème ou erreur rencontré lors de l'exécution des méthodes M3U8Downloader
.
M3U8DownloaderError(message: str)
: Initialise un M3U8DownloaderError.M3U8DownloaderWarning
Cette classe d'avertissement est utilisée pour signaler tout problème rencontré lors de l'exécution de la méthode download_master_playlist
de la classe M3U8Downloader
, notamment lorsqu'aucun paramètre n'est transmis. Avec le message d'avertissement, la variable json_data
est renvoyée avec tous les formats de résolution (variantes) disponibles au format structuré JSON.
M3U8DownloaderWarning(message: str, json_data: Optional[list] = None)
: initialise un M3U8DownloaderWarning.Pour un guide de dépannage détaillé, veuillez vous référer à DÉPANNAGE.
Veuillez vous référer à la licence MIT dans le projet pour plus d'informations.
Nous apprécions les contributions de la communauté ! Que vous ayez des idées de nouvelles fonctionnalités, de corrections de bugs ou d'améliorations, n'hésitez pas à ouvrir un ticket ou à soumettre une pull request sur GitHub.