【发布时间】:2018-07-09 12:42:42
【问题描述】:
我正在使用 Python 中的 flask-ask 框架来开发一个 Alexa-Skill,它只播放 YouTube 视频的音频流而不下载它。
因此我使用pafy
以下函数从 YouTube 视频中获取音频网址:
def get_audio():
video = pafy.new("https://www.youtube.com/watch?v=ALdKl2HRSoI")
bestaudio = video.getbestaudio(preftype="m4a")
playurl = bestaudio.url
return playurl
这个函数应该播放音频
@ask.intent('StoryIntent')
def story():
speech = "I am starting to play the story"
stream_url = get_audio("https://www.youtube.com/watch?v=ALdKl2HRSoI")
return audio(speech).play(stream_url)
不幸的是,它不适用于我从 pafy 获得的网址。 Alexa什么也没玩。
我打印了从 pafy 获得的 url,它看起来像这样:
如果我使用stream_url 的以下 URL,一切正常:
我也尝试过: 我从“Pafy:Youtube-Audio URL”下载了音频文件并将其上传到 S3 并使用了 S3 的链接,一切正常。但我不想为我的方法下载 YouTube 视频。
【问题讨论】:
-
我刚刚意识到 Pafy: Youtube-Audio URL 是一种视频格式。只有当我用 pafy 下载文件时,我才会得到音频格式。有没有办法在不使用 Stream.download() 函数的情况下获取音频文件的 url?
标签: python youtube alexa pafy flask-ask