youtube - 如何将 YouTube 频道 URL 转换为频道 ID?
问题描述
我正在构建一个应用程序,用户在其中提供指向 YouTube 频道的 URL,并且使用此输入,我需要将 URL 转换为 YouTube 频道 ID(例如:)UCUZHFZ9jIKrLroW8LcyJEQQ
。YouTube 数据 API 文档似乎缺少将自定义 URL 和缩短 URL 转换为频道 ID 的说明。
YouTube 频道的 URL 有 4 种变体:
- https://www.youtube.com/channel/UCUZHFZ9jIKrLroW8LcyJEQQ(基于 ID 的 URL)
- https://www.youtube.com/user/partnersupport(旧用户名 URL)
- https://www.youtube.com/c/YouTubeCreators (自定义网址)
- https://www.youtube.com/YouTubeCreators(缩短的 URL,自定义 URL 或旧用户名 URL)
基于 ID 的 URL
“这是 YouTube 频道使用的标准 URL。它使用您唯一的频道 ID,即 URL 末尾的数字和字母。”
Channel ID is in the URL
https://www.youtube.com/channel/<channel_id>
旧版用户名 URL
可以使用 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>
缩短的网址
此 URL 变体可以引用自定义 URL 或旧用户名 URL。我目前没有可靠地转换此变体的方法。
https://www.youtube.com/<custom URL | User>
问题:
- 将自定义 URL转换为频道 ID的最可靠方法是什么?
- 将缩短的 URL转换为频道 ID的最可靠方法是什么?
注意:我对抓取 URL 以查找频道 ID 不感兴趣,因为这违反了 YouTube 的服务条款。在规模上,这可能会导致 IP 地址被列入与 YouTube/Google 服务交互的黑名单。
解决方案
推荐阅读
- java - 获取“java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法'void android.widget.Button.setOnClickListener)'”
- javascript - 将 react-native 应用程序转换为 PWA 是否有意义?
- mysql - MySqlException:自引用表上的“外键约束格式错误”
- python - 如何让文本在屏幕上显示一段时间?
- flutter - Dart - “此函数的返回类型为 'FutureOr
- javascript - 为什么道具/动作没有第一次通过?
- c# - Signalrhub 中的 asp.net core 3.1 服务生命周期和 Observable sobscriptions
- powershell - 使用databricks在adls gen2中导入表数据并保存为json文档
- sequelize.js - 用今天的日期续集 where 语句
- node.js - 使用节点导出大型数据集的内存问题