2014-12-16 2 views
6

제목과 비슷합니다. 내가 요청과 같이 수행Youtube API (검색 API)에서 모든 결과를 가져 오는 방법

https://www.googleapis.com/youtube/v3/search?key=AIzaSyDuxczhyyvHWfxKuF3ygW9p0GWmKlvWLYc&part=id,snippet&publishedAfter=2014-12-09T00:00:00Z&publishedBefore=2014-12-11T00:00:00Z&videoCategoryId=GCSG93LXRvICYgRElZ&type=video&maxResults=50&pageToken= 

전체 결과는 1000000입니다하지만 난 그냥 얻을 수있는 500 결과 최대 (10 페이지, 50 개 결과/페이지). 10 번째 페이지에서 다음 페이지로 이동하는 nextPageToken 속성이 표시되지 않습니다. ??? 이유를 모르겠습니다. 어떻게 모든 결과를 얻을 수 있습니까?

답변

11

YouTube는 약 500 개의 소프트 한도를 부과합니다. API를 통해 그 이상을 얻는 직접적인 방법은 없습니다.

전체 세부 정보 : https://code.google.com/p/gdata-issues/issues/detail?id=4282

관련 발췌 : 심각하게 저하 검색 결과의 품질없이 API를 통해 임의의 유튜브 쿼리에 대한

"우리는 더 많은 것을 제공 할 수 없습니다 500 ~ 이상의 검색 결과 (중복 등)

v1/v2 GData API는 11 월에 다시 검색 결과가 500 개로 제한되도록 업데이트되었습니다. 500 이상의 시작 인덱스를 지정하면 아무 것도 반환하지 않습니다. 결과.

이것은 v3 API (결과를 통해 다른 페이징 방법 사용)에도 적용되었지만 분명히 푸시되지 않았으므로 v3에서 최대 1000 개의 검색 결과를 검색 할 수 있습니다 500 개는 일반적으로 품질이 좋지 않습니다.

v3 - 500 검색 결과를 제한하는 변경 사항은 가까운 미래에 언젠가는 연기 될 것입니다. 500 개의 결과를 치면 더 이상 nextPageTokens가 반환되지 않습니다.

반환되는 totalResults는이 모든 경우에서 500보다 훨씬 높지만 모든 X 백만 결과를 효과적으로 반환 할 수있는 것은 아닙니다. 그것은 Video 검색 결과 세트의 전체 크기의 추정치로서 의미와 일반적으로 매우 유용하지 않습니다 것 "

업데이트 -. 500 결과 최대 소프트 제한

사용 둘러 보는 법 필터 'publishedAfter'및 'publishedBefore'를 사용하면 더 이상 결과가 반환되지 않을 때까지 일/주/월별로 쿼리 루프를 분리 할 수 ​​있습니다. 각각의 정기 쿼리는 각각 500 개 미만의 결과를 반환하지만 모두 가져올 수 있습니다.

+0

감사합니다. @ john. 많은 시간을 검색했지만 답변을 찾을 수 없습니다. 감사합니다. –

+0

환영합니다.이 답변을 유용하게 표시하십시오. – johnh10

관련 문제