查找频道的 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 URL
或 user:8327971 forUsername
)。
小故事如下:不要太依赖 YouTube 用户名。
用户名是 API v3 的一项 遗留 功能:并非每个频道都附加一个,并且不需要任何频道都附加一个。 (参见 2013 年 7 月 11 日 Google 工作人员的 this official statement。)
这是您 post 的两个名字 API return 的 YouTube 数据 SeanAllen
和 StewartLynch
:
$ 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 forUsername
return给定频道的正确用户名(如果相应频道已附加用户名)。
歧义源于以下事实: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
获取简短的帮助信息。)
我正在尝试使用 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 URL
或 user:8327971 forUsername
)。
小故事如下:不要太依赖 YouTube 用户名。
用户名是 API v3 的一项 遗留 功能:并非每个频道都附加一个,并且不需要任何频道都附加一个。 (参见 2013 年 7 月 11 日 Google 工作人员的 this official statement。)
这是您 post 的两个名字 API return 的 YouTube 数据 SeanAllen
和 StewartLynch
:
$ 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 forUsername
return给定频道的正确用户名(如果相应频道已附加用户名)。
歧义源于以下事实: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
获取简短的帮助信息。)