2013-08-23 3 views
0
// This is a first attempt at using YouTube's v3 API. It doesn't require authentication. 
getAutoGeneratedPlaylistData: function() { 

    gapi.client.setApiKey('{API_KEY}'); 
    gapi.client.load('youtube', 'v3', function() { 

     var request = gapi.client.youtube.playlistItems.list({ 
      part: 'contentDetails', 
      maxResults: 50, 
      playlistId: 'ALYL4kY05133rTMhTulSaXKj_Y6el9q0JH', 
      fields: 'items/contentDetails' 
     }); 

     request.execute(function (response) { 
      console.log("Response:", response); 
     }); 

    }); 

} 

이 코드를 사용하여 자동으로 생성 유튜브 재생 목록 동영상 정보의 목록을 가져 오는 중 자동 생성 유튜브 재생 목록의 playlistId을 소요하고 그것에서 처음 50 개 항목을 검색합니다.는 V3의 API를

제공된 응답의 contentDetails에는 각 동영상의 ID가 포함되어 있습니다.

자동 생성 된 재생 목록에 대한 모든 비디오 정보를 검색하려는 경우 YouTube에 2N 요청을 보내야합니까? N 개의 요청으로 재생 목록의 모든 동영상 ID를 50 개 이하의 집합으로 검색합니다. 모든 동영상 ID가 있으면 ... YouTube에 모든 동영상에 대한 동영상 정보를 요청해야합니다. 한 번의 요청으로 50 개의 동영상 데이터를 얻을 수 있습니다 ... YouTube에서 동영상을 모두 가져 오기 위해 N 개의 요청을 했습니까?

이것은 잘못된 디자인 결정입니다. 이전에 v2 API를 사용하여 재생 목록에 대한 모든 정보를 검색하는 경우 초기 요청에서 동영상에 필요한 모든 정보를 보낼 수있었습니다.

V3 API를 사용할 수 없나요? 나는 O (2N) 네트워크 비용을 부담해야만 하는가 ...? 정말?

+0

어쩌면 내가 오해했을 수도 있지만 단지 2n 요청이 아닙니까? 동영상 당 2 개? – RyanS

+0

아 네, 네 말이 맞아. 녹슨 명백하게, 나는 그렇게 나쁘지 않다고 생각한다. 단지 충격을 받으면 나는 동시에 비디오 정보를 얻을 수 없다. –

답변

1

추가 비디오 정보를 제공하고 있습니까? 게시 날짜, 제목, 설명, 미리보기 이미지, 재생 목록의 위치 등이 필요한 경우 contentDetails가 아닌 playlistItem의 스 니펫에 있습니다. 사실, 조각은 차례로 videoId가되어있는 RESOURCEID를 포함, 그래서 당신은 어쨌든 모든 contentDetails을 무시할 수 있고 바로 수행

var request = gapi.client.youtube.playlistItems.list({ 
    part: 'snippet', 
    maxResults: 50, 
    playlistId: 'ALYL4kY05133rTMhTulSaXKj_Y6el9q0JH' 
}); 

(아마도 단지 조각의 그 부분을 선택하는 필드 매개 변수를 사용하면 '후에).

스 니펫의 필드 외에 비디오 정보가 필요한 경우 올바른 통화 (50 개 배치)를 만들어야합니다. 이것은 실제로 매우 좋은 디자인 결정입니다. 거의 모든 재생 목록 항목 요청은 스 니펫의 정보보다 더 많은 정보를 필요로하지 않으므로이를 무시한 수많은 앱에 모든 데이터를 전송할 때 크게 줄일 수 있습니다. 여분의 데이터가 필요한 유스 케이스에서는 추가 호출이 필요하지만 전체 시스템의 효율성은 향상됩니다 (매우 실용적인 엔지니어링 선택).

+0

충분히 공정합니다. 비디오의 길이, 저자, 제목 및 ID가 필요합니다. 추가 요청이 필요할 것 같습니다. –

+0

나는 그 배에도 타고 있었어! – jlmcdonald