如何使用ffmpeg python库下载带有使用streamlink库检索的链接的Twitch VOD

如何使用ffmpeg python库下载带有使用streamlink库检索的链接的Twitch VOD,python,ffmpeg,streamlink,Python,Ffmpeg,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&qu

以下是完整的代码,以便于参考:

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的链接开始:。然后我使用代码:

stream_url = streamlink.streams("https://www.twitch.tv/videos/783301562")['best'].url
print(stream_url)
这给了我一个新的链接,当我转到这个链接时,它下载了一个扩展名为“.m3u8”的文件。此链接是:

从这里开始,我首先尝试将链接直接放入以下代码中:

stream = (
    ffmpeg
    .input(stream_url)
    .output('output.mp4')
    .run
)
print(stream)
这没有输出任何mp4文件,但给出了输出:

然后,我添加了以下代码来下载该文件,我还将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文件具有与上述相同的输出。任何帮助都将不胜感激

似乎您没有调用
run
方法,请尝试
.run()
。顺便说一句,像这样使用
除异常
是不好的做法,请参阅。谢谢你对这个不好的习惯的建议,我一直在寻求提高我的编码技能。我将其更改为.run(),现在使用url并下载.m3u8文件,两种方式都会得到“FileNotFoundError”。我已经仔细检查了名称,它绝对正确。我尝试对文件使用相对和绝对文件路径,但我不断收到相同的错误。这是另一个问题,如果无法解决问题,可能最好创建一个新问题。该问题是由于与PyCharm发生冲突,我只需要使用atom或类似的东西编写代码