PlaylistItems는 업로드 재생 목록에 대해 전체 20,000 개로 제한되는 것 같습니다. 해결 방법이 있습니까?

Aug 21 2020

최근에 업로드 한 재생 목록은 20,000 개 항목으로 제한되어있는 것 같습니다. 채널에서 업로드 한 모든 동영상 목록을 가져올 수있는 방법이 있나요?

예를 들어 UCFL1sCAksD6_7JIZwwHcwjQ 채널 검색시 57,849 개의 동영상이 있습니다.

https://www.youtube.com/results?search_query=jtbc+entertainment.

하지만 업로드 재생 목록에는 동영상이 20,000 개 밖에 없습니다.

https://www.youtube.com/playlist?list=UUFL1sCAksD6_7JIZwwHcwjQ.

Python을 통해 YouTube Data API를 쿼리 할 때 20,000 번째 항목이있는 페이지에 도달하면 nextPageToken이 존재하지 않습니다.

나머지 동영상은 어떻게 찾을 수 있나요?

답변

2 stvar Aug 21 2020 at 13:49

Search.list다음 매개 변수로 쿼리 된 API 엔드 포인트 를 반복해서 사용해 볼 수 있습니다 .

  • channelId=UCFL1sCAksD6_7JIZwwHcwjQ,
  • type=video,
  • order=date,
  • publishedBefore=...,
  • maxResults=50,

어디에 publishedBefore적절하게 계산됩니다.

이니셜 publishedBefore은로 호출 publishedAt된 PlaylistItems.list엔드 포인트 에서 가져온 마지막 비디오 의 속성 값 (시간순) 보다 1 초 전에 설정 됩니다 playlistId=UUFL1sCAksD6_7JIZwwHcwjQ.

의 연속 값은 publishedBefore마찬가지로 끝점 publishedAt에 대한 이전 호출의 (시간순) 마지막 비디오 속성 값보다 1 초 전으로 설정 Search.list됩니다.

한 가지 더 언급 : API가 위의 알고리즘을 사용하여 20000 제한을 초과 할 수 있다고하더라도 (그럴지는 모르겠습니다. 직접 테스트해야 함)이 절차의 비용 매우 높습니다. 각 Search.list엔드 포인트 호출에는 100 단위 의 할당 비용 이 있습니다 (실제로 비쌉니다).