您可以通过 API 的用户名获取 YouTube 频道 ID 吗?

问题描述 投票:0回答:2

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

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

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

例如,如果您访问网址:

https://youtube.com/impaulsive
,我们可以看到用户名必须是
impaulsive

但是,如果您通过 Channel API 通过

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

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

javascript youtube-data-api
2个回答
2
投票

您的问题在 YouTube Data API 中经常出现(此处,最近已多次解决 SO 问题:只需发出以下 SO 搜索查询:

[youtube-data-api] forUsername
)。

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

  1. 用户名是 API v3 的legacy功能;并非每个频道都附有一个频道;无需附加任何频道。 (请参阅 2013 年 7 月 11 日 Google 员工的官方声明。)

  2. 如果您遇到

    https://www.youtube.com/c/NAME
    (甚至是
    https://www.youtube.com/NAME
    )形式的 URL,则
    NAME
    不一定(尽管可能是)YouTube 频道的 YouTube 用户名。
    NAME
    是频道的
    custom URL
    ,不同的类别。 (请参阅来自 Google 支持的此官方帐户。)

您的示例 --

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 程序(我开发的),实现了一个 搜索自定义 URL 的算法,并且还在 API 中查询用户名。

请注意,

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


0
投票

无需使用任何类型的api,直接使用axios即可获取频道id。

我通过检查 YouTube 频道发现了这种方法。

这里是使用频道用户名获取频道ID的代码:

在node.js上安装axios

npm 安装 axios

const axios = require('axios');

let Url = "https://www.youtube.com/@triggeredinsaan"
let channelUrl = Url.replace("/user", ""); //this will replace /user to the supported format

//supported format: https://www.youtube.com/@username

          var url = new URL(channelUrl)
 const { data } = await axios.get(url.href)


          
let Id = data.split(`<link rel="canonical" href="`)[1];

       let Result = Id.split(`">`)[0];

return console.log(ResultId); //Your channel id returns in provided format: https://www.youtube.com/channel/Id
© www.soinside.com 2019 - 2024. All rights reserved.