Создание проверки видео YouTube или идентификатора канала в скрипте приложений - PullRequest
0 голосов
/ 12 июня 2019

Я учусь использовать API данных YouTube с помощью скрипта приложений.Сейчас я пытаюсь изменить приведенный здесь пример https://developers.google.com/youtube/v3/quickstart/apps-script, чтобы проверить, существует ли идентификатор.

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

С помощью @Tanaike, основанного на моем последнем вопросе, Tanaike помог мне создать цикл, позволяющий сценарию добавлять идентификаторы через запятую.Сейчас я пытаюсь добавить проверку.

function channelsListByVideoid(part,params){
  var response = YouTube.Videos.list(part,params);
  var video = response.items[0];
  var dataRow = [video.id,video.status.uploadStatus, video.snippet.title, response.pageInfo.totalResults, video.snippet.channelId, video.snippet.channelTitle];
  SpreadsheetApp.getActiveSheet();
  SpreadsheetApp.getActiveSpreadsheet().getSheetByName().appendRow(dataRow);

function getvideo() {
  var ui = SpreadsheetApp.getUi();
  var videoId = ui.prompt("Enter the YouTube Video ID: ").getResponseText();
  var values = videoId.split(",");
for (var i = 0; i < values.length; i++) {
  channelsListByVideoid('snippet,status,contentDetails,statistics', {'id': values[i].trim()});

Иногда идентификатор видео, например https://www.youtube.com/watch?v=--fPZOu_H8g, недоступен.Запуск этого идентификатора в примере приложения-скрипта приведет к ошибке TypeError: Cannot read property 'id' of undefined, которая остановит запуск скрипта.

Я думал о том, как использовать свойство video.list.response:

{
  "kind": "youtube#videoListResponse",
  "etag": etag,
  "nextPageToken": string,
  "prevPageToken": string,
  "pageInfo": {
    "totalResults": integer,
    "resultsPerPage": integer
  },
  "items": [
    video Resource
  ]
}

totalResults и resultsPerPage будут отображаться как 1, если видео допустимо, и 0, если недействительно:

"pageInfo": {
  "totalResults": 0,
  "resultsPerPage": 0

, что можно проверить с помощью проводника API (https://developers.google.com/youtube/v3/docs/videos/list?apix_params=%7B%22part%22%3A%22snippet%2CcontentDetails%2Cstatistics%22%2C%22id%22%3A%22--fPZOu_H8g%22%7D)

Iдобавлено `` `` response.pageInfo.totalResults,


Logically to me, I need to add a 
````var response```` 
to my getvideo() and add the validation check within the loop.

I'm not clear if you can write it as simply as 

, если response.pageinfo.totalResults = 1, тогда "valid" ELSE "Invalid"

and then how to allow the code to skip the error that is generated.

Thank you!
...