Видео отсутствуют в списке видео канала

Я пытаюсь получить информацию обо всех видео на данном канале YouTube.

Вот моя первая просьба:

GET https://www.googleapis.com/youtube/v3/search?part=snippet&channelId={CHANNEL_ID}&maxResults=50&type=video&key={YOUR_API_KEY}

{
  "kind": "youtube#searchListResponse",
  "etag": "\"XI7nbFXulYBIpL0ayR_gDh3eu1k/15j9AlxbMtzBhzffpA04ahJgv9g\"",
  "nextPageToken": "CDIQAA",
  "regionCode": "FR",
  "pageInfo": {
    "totalResults": 375,
    "resultsPerPage": 50
  },
  "items": [
    "... 50 items here ..."
  ]
}

Как видите, всего 375 результатов. Итак, используя nextPageToken, я ищу следующие 50 видео.

GET https://www.googleapis.com/youtube/v3/search?part=snippet&channelId={CHANNEL_ID}&maxResults=50&pageToken=CDIQAA&type=video&key={YOUR_API_KEY}

{
  "kind": "youtube#searchListResponse",
  "etag": "\"XI7nbFXulYBIpL0ayR_gDh3eu1k/7mmGfmqsGmfP8OggZWZVefQ7z6Q\"",
  "nextPageToken": "CGQQAA",
  "prevPageToken": "CDIQAQ",
  "regionCode": "FR",
  "pageInfo": {
    "totalResults": 375,
    "resultsPerPage": 50
  },
  "items": [
    "... 28 more items here ..."
  ]
}

В этом ответе всего 28 пунктов. Кроме того, если я запрошу следующую страницу:

GET https://www.googleapis.com/youtube/v3/search?part=snippet&channelId={CHANNEL_ID}&maxResults=50&pageToken=CGQQAA&type=video&key={YOUR_API_KEY}

На этот раз нет никаких предметов.

{
  "kind": "youtube#searchListResponse",
  "etag": "\"XI7nbFXulYBIpL0ayR_gDh3eu1k/XKJQFk8Z_J6XraQ0mVCRtVWnSYc\"",
  "nextPageToken": "CJYBEAA",
  "prevPageToken": "CGQQAQ",
  "regionCode": "FR",
  "pageInfo": {
    "totalResults": 375,
    "resultsPerPage": 50
  },
  "items": [
  ]
}

Что вызывает такое поведение? Что-то не так с моим запросом?

Чтобы воспроизвести проблему, может быть полезно узнать значение {CHANNEL_ID}, которое вызвало эту проблему в ваших тестах. Я просто пробовал через страницу apis-explorer и с channelId: "UCsGakFIbOsj-fgPFLf1QlQA" без проблем. Также в моем случае я разрешал запросы с использованием OAuth 2.0.

Franco Rondini 14.08.2018 18:01

Вот идентификатор канала, который я пытаюсь запросить: UCRVDPcrF_LTJo8u0bkzUL9A, и я авторизовал запросы с помощью ключа API, хотя я полагаю, что это не должно иметь значения.

Richard-Degenne 14.08.2018 18:43

просто чтобы предоставить дополнительную информацию, я подтверждаю, что в сообщенном канале: UCRVDPcrF_LTJo8u0bkzUL9A позвольте мне воспроизвести проблему, хотя эта проблема, похоже, не существует для тех же других каналов, таких как UCsGakFIbOsj-fgPFLf1QlQA

Franco Rondini 17.08.2018 13:25
3
3
842
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В YouTube Data API v3 вам необходимо:

Шаг 1. Получите плейлист для загрузок вашего канала

GET https://www.googleapis.com/youtube/v3/channels?part=contentDetails&id=UCRVDPcrF_LTJo8u0bkzUL9A&key={YOUR_API_KEY}

json "kind": "youtube#channel", "etag": "\"XI7nbFXulYBIpL0ayR_gDh3eu1k/8HOHPc1ZO5cOiePp8nFHwKA99HM\"", "id": "UCRVDPcrF_LTJo8u0bkzUL9A", "contentDetails": { "relatedPlaylists": { "uploads": "UURVDPcrF_LTJo8u0bkzUL9A", "watchHistory": "HL", "watchLater": "WL" Список воспроизведения загружает для вашего канала - UURVDPcrF_LTJo8u0bkzUL9A.

Шаг 2. Используйте youtube.playlistItems.list, чтобы загрузить все видео на канал yout, указав playlistId плейлиста uploads вашего канала.

GET https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&maxResults=50&pageToken={WHEN_YOU_HAVE_A_PAGETOKEN_PUT_IT_HERE}&playlistId=UURVDPcrF_LTJo8u0bkzUL9A&key={YOUR_API_KEY}


со ссылкой на ответы на вопросы:


о поведении Search: list API

как описано здесь: https://developers.google.com/youtube/v3/docs/search/list о свойстве результата поиска pageInfo.totalResults Я цитирую буквально:

The total number of results in the result set.Please note that the value is an approximation and may not represent an exact value. In addition, the maximum value is 1,000,000.

You should not use this value to create pagination links. Instead, use the nextPageToken and prevPageToken property values to determine whether to show pagination links.

Кроме того, некоторые исследования, которые я проводил для тестирования, кажется, что видео, которые «отсутствуют» в результате, как вы указали, однако, появляются в результатах, когда необязательный параметр q явно указан в запросе, очевидно, только если значение фильтра указанное может быть удовлетворено данными рассматриваемого видео.

Другие вопросы по теме