Подтвердить что ты не робот

Получение всех новых подписных видеороликов в API v3 для YouTube

Мне нужно знать эквивалентный запрос в API данных YouTube v3 как этот запрос v2 для получения всех новых подписных видео.

https://gdata.youtube.com/feeds/api/users/default/newsubscriptionvideos

Я не видел простых и чистых запросов, которые так же просты, как версия v2 запросов

4b9b3361

Ответ 1

Вы можете получить эту информацию с помощью API Youtube V3, но это невероятно неэффективно:

  • Сначала введите идентификатор канала из имени пользователя (один запрос).
  • Теперь получите подписки на канал (пакетный - один запрос на 50 подписчиков).
  • Теперь получите списки воспроизведения для каждого подписанного канала (пакетный - один запрос на 50 подписчиков).
  • Получить самые последние плейлисты для системного плейлиста "uploads" каждого канала. (один запрос на юзер).
  • Получить видео, относящееся к каждому элементу playlistItem (пакетный - один запрос 50 элементов playlistItems).

Теперь вы можете отсортировать видео по дате публикации и распечатать последние.

Если у вас есть 100 подписки и выбор из 5 видеороликов из каждого канала, это приведет к 114 запросам API и будет использовать около 500 единиц квот (дневной лимит составляет 50 миллионов единиц). Это займет около 2 минут, если вы не распараллеливаете вызовы API.

У этого метода есть несколько преимуществ перед использованием действий:

  • Вы можете сделать это для любого пользователя с настройками общедоступной учетной записи, а не только для аутентифицированного пользователя, поэтому он работает как API V2 в этом отношении.
  • Он не будет беспорядочно потерять видео, как это делает домашняя страница Youtube.

Доступна полная реализация Python: https://github.com/ali1234/ytsubs

Ответ 3

Для тех, кто заинтересован в получении недавно загруженных видео "сегодня", например, как это было сделано в /feed/subscriptions, используйте "API поиска" (ссылка).

В этом случае требуется 2 API. API поиска и API подписок (ссылка)

  1. Получить идентификаторы каналов с помощью API подписки
  2. Для каждого идентификатора канала используйте идентификатор поиска с параметрами channelId, publishedAfter и publishedBefore.
  3. Затем отфильтруйте результаты с items.length == 0.

Теперь вы можете фильтровать только самые последние видео, загруженные по подписанным каналам.


РЕДАКТИРОВАТЬ: API поиска стоит 100 квот.:

Для вызова этого метода стоимость квоты составляет 100 единиц.

API элемента списка воспроизведения стоит 3 квоты:

При вызове этого метода стоимость квоты составляет 1 единицу в дополнение к стоимости указанных частей ресурса.

Итак... намного дешевле кэшировать загруженные идентификаторы плейлистов из "API каналов" и использовать плейлист.

Или чтобы иметь возможность фильтрации по датам публикации, например, по API поиска, используйте API действий, который имеет параметры publishedBefore и publishedAfter.