我正在构建一个应用程序,在该应用程序中,用户提供一个指向 YouTube 频道的 URL,使用此输入,我需要将 URL 转换为 YouTube 频道 ID(例如:UCUZHFZ9jIKrLroW8LcyJEQQ
)。 YouTube 数据 API 文档似乎缺少将自定义网址和缩短网址转换为频道 ID 的说明。
YouTube 频道的网址有 4 种变体:
基于 ID 的 URL
“这是 YouTube 频道使用的标准网址。它使用您唯一的频道 ID,即网址末尾的数字和字母。”
Channel ID is in the URL
https://www.youtube.com/channel/<channel_id>
旧用户名网址
可以使用 YouTube Data API v3 将用户名转换为频道 ID
https://www.youtube.com/user/<user>
Channel ID returned with API response from:
https://www.googleapis.com/youtube/v3/channels?part=id&forUsername=<user>"&key=<API key>
自定义网址
我找不到有关将此 URL 变体转换为频道 ID 的任何官方文档。目前,我正在使用 YouTube 数据 API 来搜索 <custom URL>
值。此方法并非 100% 可靠。
https://www.youtube.com/c/<custom URL>
This API query performs a search, can return multiple channels, and the correct channel
may not be in the results.
https://www.googleapis.com/youtube/v3/search?part=id%2Csnippet&q=<custom URL>&type=channel&key=<API key>
缩短网址
此网址变体可以指自定义网址或旧用户名网址。我目前没有可靠地转换此变体的方法。
https://www.youtube.com/<custom URL | User>
问题:
注意:我对抓取 URL 以查找频道 ID 不感兴趣,因为这违反了 YouTube 的服务条款。大规模地,这可能会导致 IP 地址被列入与 YouTube/Google 服务交互的黑名单。