Pular para conteúdo

Iniciando

logo

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.