Нужна помощь, чтобы получить более 100 результатов с помощью API поиска YouTube.

Есть ли способ получить более 100 результатов с помощью YouTube API?

Я могу получить до 100 результатов, используя эту строку запроса: https://gdata.youtube.com/feeds/api/videos?q=football&orderby=relevance&start-index=1&max-results=10&v=2

Но когда я пытаюсь https://gdata.youtube.com/feeds/api/videos?q=football&orderby=relevance&start-index=101&max-results=10&v=2

Я получаю: http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearch/1.1/' xmlns:gd='http://schemas.google.com/g/2005' gd:etag='W/C0YFQHg9fyp7I2A9WhBVGUk.'>tag:youtube.com,2008:videos2013-04-26T01:51:51.667Zhttp:/ /schemas.google.com/g/2005#kind' term='http://gdata.youtube.com/schemas/2007#video'/>Соответствие видео: футболhttp://www.youtube.com/img/pic_youtubelogo_123x63.gifhttps://www.youtube.com'/>http://schemas.google.com/g/2005#feed' type='application/atom+ xml' href='https://gdata.youtube.com/feeds/api/videos?v=2'/>http://schemas.google.com/g/2005#batch' type='application/atom+xml' href='https://gdata.Эйutube.com/feeds/api/videos/batch?v=2'/> https://gdata.youtube.com/feeds/api/videos?q=football&start-index=101&max-results=10&orderby=relevance&v=2'/>https://gdata.youtube.com/feeds/api/videos? alt=atom-service&v=2'/>https://gdata.youtube.com/feeds/api/videos?q=football&start-index=91&max-results=10&orderby=relevance&v=2'/>YouTubehttp://www.youtube.com/http://gdata.youtube.com'>API данных YouTube10010110

Насколько я понимаю, вы можете получить 999 результатов, используя API поиска YouTube. Почему это ограничено 100 здесь? Есть ли обходной путь для получения более 100 результатов?

Спасибо!


person user1810724    schedule 26.04.2013    source источник
comment
Для любого поиска, который я выполняю, я получаю openSearch: totalResults как 100. Это не имеет смысла, потому что для одного и того же поиска на YouTube есть тысячи видео. Есть идеи, что происходит?   -  person user1810724    schedule 26.04.2013
comment
Извините, я ошибочно принял это за возвращение 100 видео. Это не так. Подробно изучите документы YouTube API. developers.google.com/youtube/2.0/   -  person Meera    schedule 26.04.2013
comment
Это ошибка, и она отслеживается на странице code.google. com/p/gdata-issues/issues/detail?id=4460   -  person Jeff Posnick    schedule 02.05.2013


Ответы (6)


Я не могу сказать, изменилось ли что-то внутри, что теперь ограничивает totalResults на уровне 100, но, похоже, сегодня это довольно распространенная проблема. Однако, если бы вы попытались использовать v3 API, это не было бы проблемой: например, этот запрос:

https://www.googleapis.com/youtube/v3/search?q=football&part=id&key=YOUR_DEVELOPER_KEY

Даст вам много, много других общих результатов. В версии 3 вы можете установить для параметра maxResults до 50 видео, возвращаемых для каждого ответа, а затем разбить ответы на страницы, задав для параметра pageToken любое значение атрибута «nextPageToken» данного ответа.

person jlmcdonald    schedule 26.04.2013

Попробуйте так: https://gdata.youtube.com/feeds/api/videos?q=football&orderby=relevance&v=2 Он будет иметь размер по умолчанию. Когда вы используете начальный индекс и размер, вы используете механизм разбиения на страницы. Я предполагаю, что проблема здесь. И беда в том, что Google youtube API поддерживает не более 50 видео на запрос. Это есть в документах. 999 видео — это общее количество видео, которое может быть в видеопотоке. Не количество видео, которое он запросит. Не принимайте это ошибочно, так как это вернет вам все видео. Вы должны использовать нумерацию страниц с начальным индексом и размером, чтобы просмотреть все видео.

person Meera    schedule 26.04.2013
comment
Даже использование опубликованного вами URL-адреса возвращает мне всего 100 результатов... вы видите больше? - person jlmcdonald; 26.04.2013
comment
И каково значение элемента ‹openSearch:totalResults›? Это немного любопытно, если вы получаете разные результаты для одного и того же запроса фида... - person jlmcdonald; 26.04.2013
comment
Я предполагаю, что вы не можете получить доступ к более чем 50 через запрос, потому что теперь у меня есть исключение, когда я устанавливаю максимальный результат на 100. И в документах API YouTube максимальный размер будет 50. Думаю, другого пути нет. - person Meera; 26.04.2013
comment
Вот аналогичная ситуация stackoverflow.com/questions/8355848/ - person Meera; 26.04.2013
comment
что-то изменилось на прошлой неделе, я думаю. Он работал нормально до середины прошлой недели. - person user1810724; 26.04.2013

вы можете использовать этот URL

https://www.googleapis.com/youtube/v3/search?q=football&part=id&key=YOUR_DEVELOPER_KEY&max-results=150

и вы легко получите более 100 результатов

person Ravendra Kumar    schedule 26.04.2013

Меня смущает эта же проблема - поисковые запросы видео с начальным индексом> 100 не возвращают никаких результатов:

http://gdata.youtube.com/feeds/api/videos?v=2&q=skateboarding+dog&max-results=50&start-index=101

а запросы с start-index ‹ 100 возвращают только количество видео до 100:

http://gdata.youtube.com/feeds/api/videos?v=2&q=skateboarding+dog&max-results=50&start-index=90

дает вам 10 видео.

Разве вы не должны иметь доступ к результатам, выходящим за пределы первых 100 результатов поиска?

person user2324185    schedule 26.04.2013

Есть проблема кэширования/эскалации для разбиения на страницы.

Проверьте этот ответ здесь.

Правильный способ постраничного просмотра фида — сделать первый запрос фида без начального индекса, а затем проверить, есть ли <link rel="next'...>, и если да, использовать этот URL-адрес для получения следующей страницы фида.

person Tulio Casagrande    schedule 06.04.2014

Я обнаружил, что если вы поставите небольшую паузу между каждым вызовом разбиения на страницы в API, он вернет 400 результатов, это означает, что 1 вызов на страницу ставит 2 секунды между каждым вызовом. Это работает для моего. Если вы хотите получить больше, вы должны закрыть соединение с API и повторить попытку через одну или две минуты.

person Benjamin    schedule 17.04.2018