pym3u8downloader
M3U8 Downloader es una clase de Python diseñada para descargar y concatenar archivos de vídeo de listas de reproducción M3U8, incluidas listas de reproducción maestras. Esta clase ofrece una funcionalidad integral para administrar archivos de listas de reproducción M3U8, descargar segmentos de video, combinarlos opcionalmente en un solo archivo de video y manejar diversas condiciones de error.
M3U8Downloader se puede instalar usando 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)
: Inicializa el objeto M3U8Downloader con el especificado parámetros. download_playlist(merge: bool = True)
: descarga archivos de vídeo de una lista de reproducción M3U8. El parámetro merge
opcional determina el manejo de los segmentos descargados. Cuando merge
se establece en True
, el método descarga y concatena todos los segmentos de vídeo en un único archivo de salida. Si merge
es False
, solo descarga los segmentos sin concatenarlos, manteniendo cada segmento como un archivo individual.download_master_playlist(name: Optional[str] = None, bandwidth: Optional[str] = None, resolution: Optional[str] = None, merge: bool = True)
: Descarga archivos de video de una lista de reproducción maestra M3U8, con la variante específica seleccionada basado en parámetros opcionales como name
, bandwidth
y resolution
. El parámetro merge
opcional determina el manejo de los segmentos descargados. Cuando merge
se establece en True
, el método descarga y concatena todos los segmentos de vídeo en un único archivo de salida. Si merge
es False
, solo descarga los segmentos sin concatenarlos, manteniendo cada segmento como un archivo individual. input_file_path
: Propiedad getter/setter para la ruta del archivo de entrada.output_file_path
: Propiedad getter/setter para la ruta del archivo de salida.skip_space_check
: Propiedad getter/setter para el indicador de verificación de omisión de espacio.debug
: Propiedad getter/setter para el indicador de depuración.debug_file_path
: Propiedad getter/setter para la ruta del archivo de depuración.max_threads
: Propiedad getter/setter para el número máximo de subprocesos que se pueden ejecutar en paralelo.is_download_complete
: propiedad getter para el estado de finalización de la descarga.verify_ssl
: Propiedad getter/setter para el indicador de verificación SSL. Esto ayuda a omitir las advertencias de SSL para las URL basadas en HTTPS. El valor predeterminado es Verdadero.M3U8DownloaderError
Esta clase de error se emplea para señalar cualquier problema o error encontrado durante la ejecución de los métodos M3U8Downloader
.
M3U8DownloaderError(message: str)
: inicializa un M3U8DownloaderError.M3U8DownloaderWarning
Esta clase de advertencia se emplea para señalar cualquier problema encontrado durante la ejecución del método download_master_playlist
de la clase M3U8Downloader
, especialmente cuando no se pasan parámetros. Junto con el mensaje de advertencia, se devuelve la variable json_data
con todos los formatos de resolución disponibles (variantes) en formato estructurado JSON.
M3U8DownloaderWarning(message: str, json_data: Optional[list] = None)
: inicializa un M3U8DownloaderWarning.Para obtener una guía detallada de solución de problemas, consulte SOLUCIÓN DE PROBLEMAS.
Consulte la licencia MIT dentro del proyecto para obtener más información.
¡Agradecemos las contribuciones de la comunidad! Ya sea que tenga ideas para nuevas funciones, correcciones de errores o mejoras, no dude en abrir un problema o enviar una solicitud de extracción en GitHub.