如何获取YouTube混合播放列表?

时间:2018-12-28 00:07:24

标签: python youtube youtube-api youtube-data-api

使用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

仅适用于播放列表,而不适用于混音。

1 个答案:

答案 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

  • p>

因此,如果您输入修改后的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)


旁注:我真的希望这一发现不会被删除。