python-3.x - 来自 YouTube 直播的 Python 流音频
问题描述
我有兴趣创建一个 python 3.9 程序,从 YouTube 直播中流式传输音频,但不幸的是,我无法让该video.getbestaudio()
函数工作,该函数仅返回 null 值。从而导致下一行出现空错误。
以防万一您需要知道我正在使用 Pafy 库来获取音频流和 python-vlc 库来播放音频。如果我使用不是直播的 YouTube 视频或使用该video.getbest()
功能,该脚本也可以完全正常工作,但这也会创建一个显示视频流的窗口,这不是我想要的。
我想知道如何解决该错误并创建一个正常运行的 python 脚本。如果它们正常工作,我愿意使用其他方法。提前感谢您的帮助!
这是错误:
Traceback (most recent call last):
File "C:\Users\mjten\Desktop\Programing\Python\lofi.py", line 8, in <module>
playurl = best.url
AttributeError: 'NoneType' object has no attribute 'url'
这是我的代码:
import pafy
import vlc
url = 'https://www.youtube.com/watch?v=5qap5aO4i9A'
video = pafy.new(url)
best = video.getbestaudio()
playurl = best.url
player = vlc.MediaPlayer(playurl)
player.play()
while True: pass
PS 对不起,我只是想同时找出一个工作示例。
解决方案
点安装pafy
点安装 youtube_dl
import pafy
def stream(url):
video = pafy.new(url, ydl_opts={'nocheckcertificate': True})
print(video)
best = video.getbestaudio()
stream_urls = best.url
print(stream_urls)
stream('https://www.youtube.com/watch?v=5qap5aO4i9A')
推荐阅读
- c - Net raid FS with FUSE, gcc -hello.c -o a.out, a.out is not executable
- ios - 只有在调试模式下运行某些特定的 iOS Swift 代码时,如何才能运行它?
- html - 中型设备中的非响应式 flexbox
- c# - 在 .NET Core 2.0 中接受 API 的多个参数
- mysql - 如果查询不是特定值,则不显示整行
- javascript - 检查是否使用 JS 选择了任何单选按钮
- java - 为 JMS 侦听器处理 Spring Security 的首选方法是什么?
- java - 可缩放 RoundImageView - RoundImageView 仍然是矩形
- android - 自定义 NavDrawer 中项目的突出显示颜色
- regex - 同一个正则表达式中的两个贪心量词