我做了一个程序,用户提供一个YouTube频道的URL,作为回报,我会向用户显示它的频道ID。
就像如果有人把网址像:https://youtube.com/@AndreoBee,然后返回其通道ID。
const axios = require('axios');
async function getChannelId(url) {
const channelUsername = url.split('/').pop();
const response = await axios.get(`https://www.googleapis.com/youtube/v3/channels?part=id&forUsername=${channelUsername}&key=myapi`);
if (response.data.items.length === 0) {
throw new Error(`Channel not found: ${url}`);
}
console.log(response.data.items[0].id);
}
getChannelId('https://www.youtube.com/@AndreoBee');
输出:
/home/runner/ytcheck/索引. js:7如果(响应.数据.项目.长度=== 0){^
类型错误:无法读取getChannelId(/home/runner/ytcheck/index. js:7:27)处未定义(读取"长度")的属性
2条答案
按热度按时间eqqqjvef1#
一种替代方法-使用YouTube数据API-可以是:
示例:
搜索名为"AndreoBee"的频道-您将在代码中的
channelUsername
变量中获得此值:网址:
回复:
注意:在这种情况下,我将接受第一个结果是我正在寻找的通道,但是,请注意,您可能会得到多个与通道名称匹配的通道。
为了检测搜索结果中的哪一个与您正在寻找的频道匹配,您可以向频道:list端点发出请求-通过传递搜索结果的
channel_id
-并查看其customUrl
值和/或检查具有更多视频/订阅者/等的频道。查看my answer了解更多信息。
wpx232ag2#
您可以使用
/search
Youtube API获取频道ID,而不是使用以下代码:尝试使用此终结点: