Как использовать библиотеку ffmpeg-python для загрузки Twitch VOD со ссылкой, полученной с помощью библиотеки streamlink

Это весь код для удобства:

import urllib.request
import streamlink
import ffmpeg
stream_url = streamlink.streams("https://www.twitch.tv/videos/783301562")['best'].url
print(stream_url)

try:
    urllib.request.urlretrieve(stream_url, "vod.m3u8")
except Exception as e:
    print(e)

stream = (
    ffmpeg
    .input('vod.m3u8')
    .output('output.mp4')
    .run
)
print(stream)

Я ищу способ загрузки видео по запросу Twitch. Я начал со ссылки на VOD: https://www.twitch.tv/videos/783301562. Затем я использовал код:

stream_url = streamlink.streams("https://www.twitch.tv/videos/783301562")['best'].url
print(stream_url)

Это дало мне новую ссылку, которая, когда я перехожу по этой ссылке, загружает файл с расширением.m3u8. Эта ссылка: https://dqrpb9wgowsf5.cloudfront.net/ab3654a5992fbfa52ccb_briziana_40240109614_1603789265/chunked/index-dvr.m3u8

Отсюда я сначала попытался поместить ссылку прямо в следующий код:

stream = (
    ffmpeg
    .input(stream_url)
    .output('output.mp4')
    .run
)
print(stream)

Это не привело ни к одному файлу mp4, но дало результат:

<запуск связанного метода вывода (filename = 'output.mp4') [None] <2606681a>>

Затем я добавил следующий код для загрузки файла, я также изменил код ffmpeg, чтобы использовать загруженный файл, а не URL-адрес:

try:
    urllib.request.urlretrieve(stream_url, "vod.m3u8")
except Exception as e:
    print(e)

stream = (
    ffmpeg
    .input('vod.m3u8')
    .output('output.mp4')
    .run
)
print(stream)

Это дало тот же результат, без файла mp4 с тем же выводом, что и выше. Любая помощь будет принята с благодарностью!

0 ответов

Другие вопросы по тегам