如何在 Python 3 中使用 youtube-dl 流式传输视频

How to stream a video with youtube-dl in Python 3

我想在 python 中流式传输 YouTube 视频的音频,youtube-dl 允许我下载视频(在我的情况下是音频),但该过程可能需要一些时间。我的 objective 是能够流式传输音频 'dynamically',就像我在观看 YouTube 视频一样。我想开始播放音频并同时下载其余部分。

我知道 youtube-dl 命令行程序允许将视频流式传输到媒体播放器,例如 VLC: youtube-dl -o - -- "[videoID]" | vlc -。我可以创建一个子进程并执行该命令,但如果可能的话,我更愿意使用更简洁的方式。

我希望稍后可以将某种数据传输到音频设备。我不需要将音频存储在文件中,但是如果有一个临时文件也没什么大不了的。

不幸的是,这是不可能的。 Youtube-DL 没有公开使这变得简单的 API 。 This 是 Youtube-DL 打开文件(或标准输出)进行写入的位置。它并不是为了方便切换输出流而编写的。

如果您确实需要此功能,只对其进行子处理并通过管道输出可能会更容易。