我想获取在javascript上上传了某个YouTube视频的用户的频道ID,然后比较该频道ID以查看它是否在数组中。
问题是,我无法确切找到如何从javascript中获取信息。我试图得到:
https://www.googleapis.com/youtube/v3/videos?part=snippet&id=[Video ID]&key=[my key]
但是它给了我每个视频的JSON解析错误。 有人知道如何使用YouTube API完全做到这一点吗?不必在html部分上添加外部脚本。
并且,作为我想做的一个例子,该视频:
https://www.youtube.com/watch?v=jNQXAC9IVRw
它应该返回'UC4QobU6STFB0P71PMvOGN5A'
。
有什么想法吗?
答案 0 :(得分:0)
我从youmightnotneedjquery.com中提取了Ajax代码,并对其进行了一些编辑,以制作一个getJSON
实用程序功能。这对我有用:
var API_KEY = 'YOUR_API_KEY'; // Replace this with your own key
getJSON(
'https://www.googleapis.com/youtube/v3/videos?part=snippet&id=jNQXAC9IVRw&key=' + API_KEY,
function (err, data) {
if (err) {
alert(err);
} else {
alert(data.items[0].snippet.channelId);
}
}
);
function getJSON(url, callback) {
var request = new XMLHttpRequest();
request.open('GET', url, true);
request.onload = function() {
if (request.status >= 200 && request.status < 400) {
// We have the JSON, now we try to parse it
try {
var data = JSON.parse(request.responseText);
// It worked, no error (null)
return callback(null, data);
} catch(e) {
// A parsing arror occurred
console.error(e);
return callback('An error occurred while parsing the JSON.');
}
}
// If an error occurred while fetching the data
callback('An error occurred while fetching the JSON.');
};
request.onerror = function() {
// There was a connection error of some sort
callback('An error occurred while fetching the JSON.');
};
request.send();
}