Сортировка результатов Youtube API из списка воспроизведения
Я боролся с API v3 Youtube сейчас, и я не могу заставить его работать так, как я хочу. Моя цель-загрузить последние видео из выбранного плейлиста на мой сайт. Проблема в том, что я только самые старые видео в моем ответе.
для загрузки списка воспроизведения я запрашиваю следующий API URI: 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, если вы не можете отсортировать результаты. Единственный способ-загрузить все видео, продолжая загружать следующую страницу но это просто безумие.
есть идеи? Звучит как основная проблема, но я не могу найти решение...
3 ответов
текущий API не имеет опции сортировки для перечисления элементов списка воспроизведения, но если вы вставляете элементы программно, вы можете указать position
значение при вставке, чтобы новые видео появились в верхней части списка.
Если кто-то еще добавляет видео, вам придется получить все страницы. Поскольку плейлистов ограничена 200 пунктов, это требует 4 запросы на большинство. Не идеально, но сейчас это единственный вариант.
это, похоже, ограничение в настоящее время 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}
вы также можете искать видео и термины запроса и несколько других параметров, поэтому, возможно, вы можете получить результаты, которые хотите таким образом.
вы должны указать как playlistID, так и channelID в своем запросе следующим образом:
https://www.googleapis.com/youtube/v3/search?part=snippet&type=video&order=date&maxResults=20&playlistId={playlistID}&channelId={channelID}&key={API_KEY}