pym3u8downloader
M3U8 Downloader ist eine Python-Klasse zum Herunterladen und Verketten von Videodateien aus M3U8-Wiedergabelisten, einschließlich Master-Wiedergabelisten. Diese Klasse bietet umfassende Funktionen zum Verwalten von M3U8-Wiedergabelistendateien, zum Herunterladen von Videosegmenten, optional zum Kombinieren dieser in einer einzigen Videodatei und zum Behandeln verschiedener Fehlerbedingungen.
M3U8Downloader kann mit pip installiert werden:
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)
: Initialisiert das M3U8Downloader-Objekt mit den angegebenen Parametern. download_playlist(merge: bool = True)
: Lädt Videodateien von einer M3U8-Wiedergabeliste herunter. Der optionale merge
-Parameter bestimmt die Behandlung der heruntergeladenen Segmente. Wenn merge
auf True
gesetzt ist, lädt die Methode alle Videosegmente herunter und verkettet sie in einer einzigen Ausgabedatei. Wenn merge
False
hat, werden nur die Segmente heruntergeladen, ohne sie zu verketten, wobei jedes Segment als einzelne Datei erhalten bleibt.download_master_playlist(name: Optional[str] = None, bandwidth: Optional[str] = None, resolution: Optional[str] = None, merge: bool = True)
: Lädt Videodateien von einer M3U8-Master-Wiedergabeliste herunter, wobei die spezifische Variante ausgewählt ist basierend auf optionalen Parametern wie name
, bandwidth
und resolution
. Der optionale merge
-Parameter bestimmt die Behandlung der heruntergeladenen Segmente. Wenn merge
auf True
gesetzt ist, lädt die Methode alle Videosegmente herunter und verkettet sie in einer einzigen Ausgabedatei. Wenn merge
False
hat, werden nur die Segmente heruntergeladen, ohne sie zu verketten, wobei jedes Segment als einzelne Datei erhalten bleibt. input_file_path
: Getter/Setter-Eigenschaft für den Eingabedateipfad.output_file_path
: Getter/Setter-Eigenschaft für den Ausgabedateipfad.skip_space_check
: Getter/Setter-Eigenschaft für das Skip-Space-Check-Flag.debug
: Getter/Setter-Eigenschaft für das Debug-Flag.debug_file_path
: Getter/Setter-Eigenschaft für den Debug-Dateipfad.max_threads
: Getter/Setter-Eigenschaft für die maximale Anzahl von Threads, die parallel ausgeführt werden können.is_download_complete
: Getter-Eigenschaft für den Download-Abschlussstatus.verify_ssl
: Getter/Setter-Eigenschaft für das Verifizierungs-SSL-Flag. Dies hilft, SSL-Warnungen für HTTPS-basierte URLs zu überspringen. Der Standardwert ist True.M3U8DownloaderError
Diese Fehlerklasse wird verwendet, um alle Probleme oder Fehler zu melden, die während der Ausführung von M3U8Downloader
-Methoden auftreten.
M3U8DownloaderError(message: str)
: Initialisieren Sie einen M3U8DownloaderError.M3U8DownloaderWarning
Diese Warnklasse wird verwendet, um alle Probleme zu melden, die während der Ausführung der download_master_playlist
-Methode der M3U8Downloader
-Klasse auftreten, insbesondere wenn keine Parameter übergeben werden. Zusammen mit der Warnmeldung wird die Variable json_data
mit allen verfügbaren Auflösungsformaten (Varianten) im JSON-strukturierten Format zurückgegeben.
M3U8DownloaderWarning(message: str, json_data: Optional[list] = None)
: Initialisieren Sie eine M3U8DownloaderWarning.Eine ausführliche Anleitung zur Fehlerbehebung finden Sie unter FEHLERBEHEBUNG.
Weitere Informationen finden Sie in der MIT-Lizenz innerhalb des Projekts.
Wir freuen uns über Beiträge aus der Community! Unabhängig davon, ob Sie Ideen für neue Funktionen, Fehlerbehebungen oder Verbesserungen haben, können Sie jederzeit ein Problem eröffnen oder eine Pull-Anfrage auf GitHub einreichen.