查找频道的 YouTube 用户名

Find YouTube user name for a channel

我正在尝试使用 YouTube 数据 API 来获取特定频道的频道数据。根据文档,我可以使用列表(按频道 ID)或列表(按 YouTube 用户名)

Search by channel ID
https://youtube.googleapis.com/youtube/v3/channels?part=snippet&id={ChannelID}&key={APIKey}

// Get channel by YouTube username
https://youtube.googleapis.com/youtube/v3/channels?part=snippet&forUsername={Username}&key={APIKey}

可以通过在浏览器中转到 YouTube 并按名称搜索频道然后在 select 频道时检索频道 ID;频道 ID 是 URL 的一部分,如下所示:

https://www.youtube.com/channel/UCbTw29mcP12YlTt1EpUaVJw.

此频道专供肖恩·艾伦使用,他的 YouTube URL 是:

https://www.youtube.com/SeanAllen.

我原以为 YouTube 用户名会是 SeanAllen,但事实并非如此,因为当我在 API 请求中使用该术语时,我得到了 0 个结果。

但是,在我自己的例子中,我的频道 ID 是 UCOWdR4sFkmolWkU2fg669Gg,通过频道 ID 搜索可以获取我的频道数据。我的 YouTube URL 是:

https://wwww.youtube.com/StewartLynch

并且,如果我使用 StewartLynch 作为用户名,我可以使用第二个 API 请求来获取相同的数据。

所以,我的问题是,如何找到频道的正确 YouTube 用户名?显然这不是频道 URL.

中使用的内容

您提出的问题在 Stack Overflow 上反复出现。我自己已经解决了它的所有方面(只需发出以下任一 SO 搜索词:user:8327971 custom URLuser:8327971 forUsername)。

小故事如下:不要太依赖 YouTube 用户名

用户名是 API v3 的一项 遗留 功能:并非每个频道都附加一个,并且不需要任何频道都附加一个。 (参见 2013 年 7 月 11 日 Google 工作人员的 this official statement。)

这是您 post 的两个名字 API return 的 YouTube 数据 SeanAllenStewartLynch

$ python3 youtube-search.py --custom-url SeanAllen
UCbTw29mcP12YlTt1EpUaVJw

$ python3 youtube-search.py --user-name SeanAllen
UCRGhxM6u14Uv309cC0ywEqA

$ python3 youtube-search.py --custom-url StewartLynch
UCOWdR4sFkmolWkU2fg669Gg

$ python3 youtube-search.py --user-name StewartLynch
UCOWdR4sFkmolWkU2fg669Gg

可以看到,StewartLynch既是自定义的URL,也是ID为UCOWdR4sFkmolWkU2fg669Gg的频道的用户名。

但是,如果是 SeanAllen,事情就没那么简单了,因为有一个频道 -- UCbTw29mcP12YlTt1EpUaVJw -- 将其自定义 URL 设置为此名称;同时,还有一个不同的频道 -- UCRGhxM6u14Uv309cC0ywEqA -- 其附加用户名设置为这个完全相同的名称。

这种情况在 YouTube 上长期存在:很多频道都有这个 属性。

结束您的问题的最后说明:

how does one find the correct YouTube UserName for a channel?

Channels.list API endpoint queried with the request parameter forUsernamereturn给定频道的正确用户名(如果相应频道已附加用户名)。

歧义源于以下事实:URLs 的形式:

https://www.youtube.com/NAME

可以很好地表示用户名为 NAME 的频道或自定义 URL 为 NAME 的频道。两种情况 can be set apart only by the (not-completely reliable) procedure of searching for custom URLs(已由脚本 youtube-search.py 实现)。


以上我使用了我的public(麻省理工学院许可)Python 3 脚本youtube-search.py;此脚本能够在 API 中搜索自定义 URL,并分别在 API 中查询用户名。

请注意,youtube-search.py 需要将有效的 API 键作为命令行选项的参数传递给它 --app-key,否则,作为环境变量传递 YOUTUBE_DATA_APP_KEY。 (使用命令行选项 --help 获取简短的帮助信息。)