Youtube API не возвращает обновленные результаты

Я разрабатываю простое видеоприложение, которое будет запускать Intent для получения любых новых обновлений видео с определенного канала, используя Youtube Api V3.

search.setKey(Constant.DEVELOPER_KEY);
search.setChannelId(channelID);
search.setOrder("date");
search.setPublishedAfter(new DateTime(yesterday));
search.setType("video");
search.setFields("items(id/kind,id/videoId,snippet/title,snippet/publishedAt)");
search.setMaxResults((long) 50);
SearchListResponse searchResponse = search.execute();

List<SearchResult> searchResultList = searchResponse.getItems();

Проблема: мне возвращается список не обновленных результатов.

Пример в URL: https://www.googleapis.com/youtube/v3/search?part=snippet&order=date&type=video&channelId=UC52X5wxOL_s5yw0dQk7NtgA&key=your_api_key&maxResults=50

Описание проблемы:

  1. В течение пары дней, наблюдая за этим поведением, я обнаружил, что, во-первых, всегда есть какое-то другое видео, которое я мог бы найти на этом канале, зайдя на сам сайт Youtube. И видео нужно еще 30 или 60 минут, чтобы оказаться в результатах поиска.

  2. Ну, на самом деле задержка меня устраивает, чего я не понимаю, так это того, что иногда, скажем, есть видео 1, видео 2 и видео 3, где 1 загружается до 2, а 2 загружается до 3. Итак, в приведенном выше случае Я ожидал бы результата (в URL-адресе, который я указал для заказа по дате описания) 3-2-1, или 2-1, или только 1. Но что я получаю, как ни странно, 3-1. 2 придет позже, может быть, еще на полчаса. Я имею в виду, если задержка является проблемой, по крайней мере, она должна появиться в списке в правильном порядке?

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

Спасибо за ваше время, я действительно ищу решение.


person Chor Wai Chun    schedule 30.04.2013    source источник
comment
Всем, кому нужен скриншот того, что произошло, пожалуйста, обратитесь к разделу комментариев к ответу Ахмеда.   -  person Chor Wai Chun    schedule 12.05.2013


Ответы (1)


Итак, во-первых, V3 API в настоящее время является экспериментальным, и я бы не рекомендовал использовать его, пока он не будет подписан, а что нет.

Во-вторых, я никогда не был поклонником клиентских библиотек и предпочитаю делать вызовы API напрямую, чтобы вы могли убедиться, что вызов выполняется так, как вы хотите. Так, например, вот простой вызов для получения видео с моего канала в том порядке, в котором они были опубликованы: http://gdata.youtube.com/feeds/api/videos?orderby=published&author=ахмеднуаман

Я бы рекомендовал пока использовать этот метод и посмотреть интерактивную демонстрацию API (http://gdata.youtube.com/demo/index.html), чтобы подготовить вызов и убедиться, что тесты возвращают нужные вам данные.

person Ahmed Nuaman    schedule 10.05.2013
comment
Спасибо за ответ, но при первой попытке использовать этот API я все равно получаю неправильный результат. Вот что я вижу на YouTube i.imgur.com/KAfxP3l.png, а вот то, что у меня есть из API i.imgur.com/dHG5gEP.png. Как видите, мой первый результат на самом деле указывает на второе видео на канале. Это вызов API, который я сделал gdata.youtube.com/feeds/api / - person Chor Wai Chun; 11.05.2013
comment
Возможно, это связано с ограничениями на распространение видео: apiblog.youtube.com/2011/12/ - person Ahmed Nuaman; 11.05.2013
comment
Не совсем, как вы можете видеть, что я отслеживал, также я упомянул, что использовал прямой вызов API, если вы не заметили. Эти видео в конечном итоге будут включены в список результатов, чуть позже. То же самое относится и к вашему примеру вызова API, видео, исключенное ранее, теперь включено - person Chor Wai Chun; 11.05.2013