pym3u8downloader
M3U8 Downloader — это класс Python, предназначенный для загрузки и объединения видеофайлов из списков воспроизведения M3U8, включая основные списки воспроизведения. Этот класс предлагает комплексные функциональные возможности для управления файлами списков воспроизведения M3U8, загрузки фрагментов видео, при необходимости объединения их в один видеофайл и обработки различных ошибок.
M3U8Downloader можно установить с помощью 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)
: Инициализирует объект M3U8Downloader с указанными параметрами. download_playlist(merge: bool = True)
: загружает видеофайлы из списка воспроизведения M3U8. Необязательный параметр merge
определяет обработку загруженных сегментов. Если для merge
установлено значение True
, метод загружает и объединяет все сегменты видео в один выходной файл. Если merge
установлено значение False
, оно загружает только сегменты, не объединяя их, сохраняя каждый сегмент как отдельный файл.download_master_playlist(name: Optional[str] = None, bandwidth: Optional[str] = None, resolution: Optional[str] = None, merge: bool = True)
: загружает видеофайлы из основного списка воспроизведения M3U8 с выбранным конкретным вариантом. на основе дополнительных параметров, таких как name
, bandwidth
и resolution
. Необязательный параметр merge
определяет обработку загруженных сегментов. Если для merge
установлено значение True
, метод загружает и объединяет все сегменты видео в один выходной файл. Если merge
установлено значение False
, оно загружает только сегменты, не объединяя их, сохраняя каждый сегмент как отдельный файл. input_file_path
: Свойство получения/установки для пути к входному файлу.output_file_path
: свойство получения/установки для пути к выходному файлу.skip_space_check
: Свойство получения/установки для флага проверки пропуска пространства.debug
: Свойство получения/установки флага отладки.debug_file_path
: Свойство получения/установки для пути к файлу отладки.max_threads
: свойство Getter/Setter для максимального количества потоков, которые могут выполняться параллельно.is_download_complete
: свойство Getter для статуса завершения загрузки.verify_ssl
: свойство Getter/Setter для флага проверки SSL. Это помогает пропустить предупреждения SSL для URL-адресов на основе HTTPS. По умолчанию установлено значение «Истина».M3U8DownloaderError
Этот класс ошибок используется для сигнализации о любых проблемах или ошибках, возникающих во время выполнения методов M3U8Downloader
.
M3U8DownloaderError(message: str)
: инициализировать M3U8DownloaderError.M3U8DownloaderWarning
Этот класс предупреждений используется для сигнализации о любых проблемах, возникающих во время выполнения метода download_master_playlist
класса M3U8Downloader
, особенно когда никакие параметры не передаются. Вместе с предупреждающим сообщением возвращается переменная json_data
со всеми доступными форматами разрешения (вариантами) в формате со структурой JSON.
M3U8DownloaderWarning(message: str, json_data: Optional[list] = None)
: инициализировать M3U8DownloaderWarning.Подробное руководство по устранению неполадок можно найти в разделе УСТРАНЕНИЕ НЕИСПРАВНОСТЕЙ.
Для получения дополнительной информации обратитесь к лицензии MIT в рамках проекта.
Мы приветствуем вклад сообщества! Если у вас есть идеи относительно новых функций, исправлений ошибок или улучшений, смело открывайте проблему или отправляйте запрос на включение на GitHub.