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

Сортировка Youtube API получается из списка воспроизведения

Я сейчас борюсь с API Youtube v3, и я не могу заставить его работать так, как я хочу. Моя цель - загрузить последние видео из выбранного списка воспроизведения на мой сайт. Проблема в том, что я только самые старые видео в своем ответе.

Чтобы загрузить список воспроизведения, я запрашиваю следующий URI API: https://www.googleapis.com/youtube/v3/playlistItems

Вот пример запроса (просто нажмите выполнить): http://developers.google.com/apis-explorer/#p/youtube/v3/youtube.playlistItems.list?part=id%252Csnippet%252CcontentDetails%252Cstatus&playlistId=PLOU2XLYxmsIKGo-dgliIJQNZ6L3G8UV4b&_h=1&

Как сортировать результат и получать последние видео? Я не могу найти что-либо в документах, и я без искажений искал. Нет никакого смысла в этом API, если вы не можете отсортировать результат. Единственный способ - загрузить все видео, продолжая загружать следующую страницу с помощью токена, но это просто безумие.

Любая идея? Звучит как основная проблема, но я не могу найти решение...

4b9b3361

Ответ 1

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

Если кто-то еще добавляет видео, вам придется получать все страницы. Поскольку списки воспроизведения ограничены 200 элементами, для этого требуется не более 4 запросов. Не идеально, но теперь это единственный вариант.

Ответ 2

В настоящее время это похоже на ограничение API YouTube и кажется его недальновидным создателями.

Это не решит вашу точную проблему, но для других, имеющих аналогичную проблему, я обнаружил, что с помощью запроса поиска вы можете в определенной степени заказать.

Это помогло мне заказать запрос плейлиста (не playlistItems), пытаясь найти списки воспроизведения, а не запрашивать список плейлистов. Таким образом, мой запрос:

https://www.googleapis.com/youtube/v3/playlists?part=snippet&maxResults=20&channelId={channelID}&key={API_KEY}

стали:

https://www.googleapis.com/youtube/v3/search?part=snippet&type=video&order=date&safeSearch=none&maxResults=20&channelId={channelID}&key={API_KEY}

Вы также можете искать видео и условия запроса и несколько других параметров, поэтому, возможно, вы сможете получить результаты, которые вы хотите таким образом.

Ответ 3

В запросе вы должны указать как playlistID, так и channelID следующим образом:

https://www.googleapis.com/youtube/v3/search?part=snippet&type=video&order=date&maxResults=20&playlistId={playlistID}&channelId={channelID}&key={API_KEY}

Ответ 4

Это единственный доступный вариант. Вместо того, чтобы пытаться отсортировать список видео из URL-адреса Http-запроса, вы можете отсортировать порядок в настройке списка воспроизведения учетной записи YouTube.

В настройках списка воспроизведения вы можете либо вручную перетащить и изменить список, либо есть возможность изменить порядок. Youtube Data API будет выводить данные в виде списка воспроизведения, который показывает данные.

Сводка: измените порядок воспроизведения в учетной записи YouTube, вместо этого пытаясь отфильтровать данные с помощью http-запросов.

К вашему сведению: настройки плейлиста могут быть изменены только учетной записью пользователя. Надеюсь, это поможет.

Ответ 5

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

Примерно так: https://community.tubepress.com/topic/5624-how-to-customize-sort-order-of-youtube-playlists/