使用Python 3,我能够获得播放列表并获得单个视频,但是我想获得每个用户的混合播放列表(公开混合),因为每个用户看到的混合都是不同的。
我应该使用google auth验证用户身份,然后像抓取普通播放列表一样抓取混合内容吗?如果是这样,如何将验证令牌与YouTube的API请求一起发送?我在文档中找不到与混合相关的任何内容。
混音是否有一个唯一的URL,我可以在不进行身份验证的情况下使用它来捕获它们?
我目前正在使用Pafy,它是Youtube API的包装器,但是该库和官方API都无法从Youtube的信息中获取信息,我的代码在下面
def get_youtube_playlist(url):
playlist = pafy.get_playlist(url)
for item in playlist['items']:
return item['pafy'].title
仅适用于播放列表,而不适用于混音。
答案 0 :(得分:2)
我不认为YouTube API具有检索混合播放列表所需的功能(实际上,我找不到任何相关信息)。
这样,我想分享我的发现:
假设您要从视频“ Eminem - Lose Yourself (Explicit)”中混音。
这是视频的网址:
阿姆-迷失自我(显式)
https://www.youtube.com/watch?v=nPA2czkOsFE
如果要获取此视频的混合播放列表,可以按如下所示修改URL:
混合:阿姆-迷失自我(显式)
https://www.youtube.com/watch?v=nPA2czkOsFE&start_radio=1&list=RDnPA2czkOsFE
这些附加参数可以在YouTube生成的混合播放列表中找到。
说明:
start_radio=1
:不知道,恕我直言,但是如果有人可以找到有关它的任何信息,请考虑编辑此问题并添加它。
list=RD
:恕我直言,此设置表明声明的videoId
将用于生成混合播放列表-通过添加“ RD”字母+ videoId
。
因此,如果您输入修改后的URL,则会得到:Mix: Eminem - Lose Yourself (Explicit)。
进行了更多测试,我还发现,使用给定视频“创建”混合播放列表不需要start_radio=1
。
使用其他示例,例如:Ludwig Van Beethoven's 5th Symphony in C Minor (Full):
这是URL:
路德维希·范·贝多芬的C小调第五交响曲(完整)
https://www.youtube.com/watch?v=fOk8Tm815lE
在URL中进行修改后,结果为:
混合:路德维希·范·贝多芬的C小调第五交响曲(完整)
https://www.youtube.com/watch?v=fOk8Tm815lE&list=RDfOk8Tm815lE
注意,在这种情况下,不需要start_radio=1
,结果将是:Mix: Ludwig Van Beethoven's 5th Symphony in C Minor (Full)
旁注:我真的希望这一发现不会被删除。