pym3u8downloader
M3U8 Downloader é uma classe Python projetada para baixar e concatenar arquivos de vídeo de playlists M3U8, incluindo playlists master. Esta classe oferece funcionalidade abrangente para gerenciar arquivos de lista de reprodução M3U8, baixar segmentos de vídeo, combiná-los opcionalmente em um único arquivo de vídeo e lidar com várias condições de erro.
M3U8Downloader pode ser instalado 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 o objeto M3U8Downloader com o especificado parâmetros. download_playlist(merge: bool = True)
: Baixa arquivos de vídeo de uma lista de reprodução M3U8. O parâmetro opcional merge
determina a manipulação dos segmentos baixados. Quando merge
está definido como True
, o método baixa e concatena todos os segmentos de vídeo em um único arquivo de saída. Se merge
for False
, ele apenas baixa os segmentos sem concatená-los, mantendo cada segmento como um arquivo individual.download_master_playlist(name: Optional[str] = None, bandwidth: Optional[str] = None, resolution: Optional[str] = None, merge: bool = True)
: Baixa arquivos de vídeo de uma lista de reprodução mestre M3U8, com a variante específica selecionada com base em parâmetros opcionais como name
, bandwidth
e resolution
. O parâmetro opcional merge
determina a manipulação dos segmentos baixados. Quando merge
está definido como True
, o método baixa e concatena todos os segmentos de vídeo em um único arquivo de saída. Se merge
for False
, ele apenas baixa os segmentos sem concatená-los, mantendo cada segmento como um arquivo individual. input_file_path
: propriedade getter/setter para o caminho do arquivo de entrada.output_file_path
: propriedade getter/setter para o caminho do arquivo de saída.skip_space_check
: propriedade getter/setter para o sinalizador de verificação de salto de espaço.debug
: propriedade getter/setter para o sinalizador de depuração.debug_file_path
: propriedade getter/setter para o caminho do arquivo de depuração.max_threads
: propriedade getter/setter para o número máximo de threads que podem ser executados em paralelo.is_download_complete
: propriedade getter para o status de conclusão do download.verify_ssl
: propriedade getter/setter para o sinalizador SSL de verificação. Isso ajuda a ignorar avisos SSL para URLs baseados em HTTPS. O padrão é Verdadeiro.M3U8DownloaderError
Esta classe de erro é empregada para sinalizar quaisquer problemas ou erros encontrados durante a execução dos métodos M3U8Downloader
.
M3U8DownloaderError(message: str)
: inicializa um M3U8DownloaderError.M3U8DownloaderWarning
Esta classe de aviso é empregada para sinalizar quaisquer problemas encontrados durante a execução do método download_master_playlist
da classe M3U8Downloader
, especialmente quando nenhum parâmetro é passado. Junto com a mensagem de aviso, a variável json_data
é retornada com todos os formatos de resolução disponíveis (variantes) em formato estruturado JSON.
M3U8DownloaderWarning(message: str, json_data: Optional[list] = None)
: Inicialize um M3U8DownloaderWarning.Para obter um guia detalhado de solução de problemas, consulte SOLUÇÃO DE PROBLEMAS.
Consulte a licença MIT dentro do projeto para obter mais informações.
Aceitamos contribuições da comunidade! Quer você tenha ideias para novos recursos, correções de bugs ou melhorias, sinta-se à vontade para abrir um problema ou enviar uma solicitação pull no GitHub.