【问题标题】:Can you get a YouTube Channel ID from a username from the API?您能否从 API 的用户名中获取 YouTube 频道 ID?
【发布时间】:2021-04-18 19:13:08
【问题描述】:

我目前正在使用YouTube Data Channel API,它允许我检索任何给定用户名的频道 ID。

https://www.googleapis.com/youtube/v3/channels?key={KEY HERE}&forUsername={USERNAME}&part=id,snippet&order=date

它适用于大多数用户名,但出于某种原因,它选择不适用于其他用户。

例如,如果你访问 URL:https://youtube.com/impaulsive,我们可以看到用户名必须是impaulsive

但是,如果您通过频道 API 通过 forUsername 属性进行搜索,它不会返回任何结果 - 即使这是他们的实际用户名并将您定向到他们的官方频道。

有没有办法从用户名中检索频道 ID?

【问题讨论】:

  • 如果需要进一步的帮助(和/或澄清),请更新您的问题,或者在下面我的答案下添加 cmets。

标签: javascript youtube-data-api


【解决方案1】:

YouTube 数据 API 经常出现您的问题(这里,最近在 SO 上解决了几次:只需发出以下 SO 搜索查询:[youtube-data-api] forUsername)。

基本上,你必须承认两件事:

  1. 用户名是 API v3 的遗留特性;并非每个频道都附有一个;没有通道需要连接一个。 (请参阅 2013 年 7 月 11 日 Google 员工的this official statement。)

  2. 如果您遇到https://www.youtube.com/c/NAME(甚至https://www.youtube.com/NAME)形式的网址,那么NAME 不一定是(尽管可能是)YouTube 频道的 YouTube 用户名。 NAME 是频道的custom URL,是一个不同的类别。 (请参阅来自 Google 支持的 this official account。)

您的示例 -- impaulsive -- 非常适合上面的第 2 点,因为它是 ID 为 UCGeBogGDZ9W3dsGx-mWQGJA 的频道的自定义 URL,但 不是任何频道的用户名

$ python3 youtube-search.py --custom-url impaulsive
UCGeBogGDZ9W3dsGx-mWQGJA

$ python3 youtube-search.py --user-name impaulsive
youtube-search.py: error: user name "impaulsive": no associated channel found

上面使用的脚本youtube-search.py 是一个公共(MIT 许可)Python 3 程序(我开发的)实现了algorithm that searches for custom URLs,并且还在查询API 以获取用户名。

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

【讨论】:

    猜你喜欢
    • 2013-05-31
    • 2014-10-12
    • 2015-02-14
    • 2016-03-11
    • 2016-04-11
    • 2015-06-23
    • 1970-01-01
    • 2016-02-19
    • 2023-03-31
    相关资源
    最近更新 更多