YouTube API v3 получает идентификатор канала пользователя, который загрузил определенное видео - PullRequest
0 голосов
/ 23 декабря 2018

Я хочу получить идентификатор канала пользователя, который загрузил определенное видео YouTube на javascript после этого, сравнивая идентификатор канала, чтобы увидеть, находится ли он в массиве.

Дело в том, что я не могунайти точно, как получить это из 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

оно должноreturn 'UC4QobU6STFB0P71PMvOGN5A'.

Есть идеи, как это сделать?

1 Ответ

0 голосов
/ 23 декабря 2018

Я взял код Ajax с youmightnotneedjquery.com и немного отредактировал его для создания служебной функции 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();
}
...