Iniciando
Visão Geral de como usar a lib
A biblioteca m3u8_analyzer
facilita a análise e manipulação de playlists M3U8, com suporte para descriptografia, remuxagem e execução de comandos FFmpeg.
Uso
Exemplo Básico
Aqui está um exemplo básico de uso da biblioteca:
Análise e Manipulação de Playlists
from m3u8_analyzer import Wrapper
w = Wrapper()
playlist = w.parsing_m3u8('https://example.m3u8')
print(playlist.info())
# Obtenha informações sobre a playlist
info = playlist.info()
print(info)
# Filtre segmentos por resolução
resolution_url = playlist.filter_resolution("1920x1080")
print(resolution_url)
Uso de FFmpeg
from m3u8_analyzer import M3u8Downloader
# Execute um comando FFmpeg
M3u8Downloader.ffmpegImage(
commands=["-i", "input.mp4", "-vf", "scale=1280:720", "output.mp4"],
logs=True,
callback=lambda line: print(f"FFmpeg Output: {line}")
)
Baixar e Remuxar Usando FFmpeg
from m3u8_analyzer import M3u8Downloader
url = 'https://playlist.m3u8'
output = 'final.mp4'
M3u8Downloader.ffmpeg_donwloader(
input_url=url,
output=output,
resolution='high',
type_playlist='video',
logs=True
)
Obter Segmentos
from m3u8_analyzer import Wrapper,M3u8Analyzer
analyze = M3u8Analyzer()
w = Wrapper()
url = 'https://playlist.m3u8'
content = analyze.get_m3u8(url_m3u8=url)
segments = analyze.get_segments(content=content)
print(segments)
#### ou
segs = w.parsing_m3u8(url)
print(segs.uris())
Obter Player
from m3u8_analyzer import M3u8Analyzer
analyze = M3u8Analyzer()
url = 'https://player-video-ex/playlist.m3u8'
player = analyze.get_player_playlist(m3u8_url=url)
print(player)
Concatenar Áudio e Vídeo
from m3u8_analyzer import M3u8Downloader
analyze = M3u8Downloader()
# Paths dos arquivos
audio = 'audio.mp3'
video = 'video.mp4'
output = 'final.mp4'
analyze.remuxer_audio_and_video(
audioPath=audio,
videoPath=video,
outputPath=output,
logs=True
)
Obter URIs em um Manifesto
from m3u8_analyzer import Wrapper
w = Wrapper()
playlist = w.parsing_m3u8(url="https://example.com/playlist.m3u8")
# Obtenha a lista de URIs dos segmentos
uris = playlist.uris()
print(uris)
Obter Resoluções Disponíveis
from m3u8_analyzer import Wrapper
w = Wrapper()
playlist = w.parsing_m3u8(url="https://example.com/playlist.m3u8")
# Obtenha as resoluções disponíveis
resolutions = playlist.get_resolutions()
print(resolutions)
Verificar Criptografia
from m3u8_analyzer import Wrapper
w = Wrapper()
playlist = w.parsing_m3u8(url="https://example.com/playlist.m3u8")
# Verifique se a playlist está criptografada
is_encrypted = playlist.this_encrypted()
print(is_encrypted)
Filtrar Resoluções
from m3u8_analyzer import Wrapper
w = Wrapper()
playlist = w.parsing_m3u8(url="https://example.com/playlist.m3u8")
# Filtre e obtenha a URL do segmento com a resolução desejada
resolution_url = playlist.filter_resolution("1920x1080")
print(resolution_url)
Obter Tipo de Playlist
from m3u8_analyzer import Wrapper
w = Wrapper()
playlist = w.parsing_m3u8(url="https://example.com/playlist.m3u8")
# Obtenha o tipo da playlist 'Master', 'Master encrypted', 'Segments', 'Segments encrypted', 'Segments Master','Desconhecido'
playlist_type = playlist.playlist_type()
print(playlist_type)
Obter Versão do Manifesto
from m3u8_analyzer import Wrapper
w = Wrapper()
playlist = w.parsing_m3u8(url="https://example.com/playlist.m3u8")
# Obtenha a versão do manifesto da playlist
version = playlist.version_manifest()
print(version)
Contribuição
Para contribuir com a biblioteca, envie um pull request ou abra uma issue no repositório GitHub.
Licença
Esta biblioteca é licenciada sob a Licença MIT.