2012-12-12 41 views
5

Tôi muốn thêm nhiều video trên danh sách phát youtube bằng api v3 nhưng chỉ một số trong số đó là thêm ... Có vẻ như vấn đề là asset.position ngẫu nhiên trong phản hồi.API Youtube - Thêm nhiều video vào danh sách phát trên youtube

Có thể có sự chậm trễ trong hai yêu cầu? Nếu ai đó có thể giúp tôi?

Mã để tạo lại vấn đề:

var apiKey = '***'; 
    var youtubeClientId = '***'; 
    var youtubeScopes = [ 
    'https://www.googleapis.com/auth/youtube', 
    'https://www.googleapis.com/auth/youtube.upload', 
    'https://www.googleapis.com/auth/youtubepartner' 
    ]; 
    var playlistId = '***'; 

    function init() { 
    gapi.client.setApiKey(apiKey); 
    window.setTimeout(checkAuth,1); 
    } 

    function checkAuth() { 
     gapi.auth.authorize({client_id: youtubeClientId, scope: youtubeScopes, immediate: true}, handleAuthResult); 
    } 

    function handleAuthResult(authResult) { 
    var authorizeButton = document.getElementById('importYoutube'); 
    if (authResult && !authResult.error) { 
     gapi.client.load('youtube', 'v3', showSearch); 
     } 
    } 
    function showSearch() { 
    document.getElementById('search').style.display = ''; 
    } 


    function singleCallback(resp, rawResp) { 
    console && console.log(resp); 
    } 

    function writeResponse(resp) { 
    var infoDiv = document.getElementById('info'); 
    var result = resp.result; 
    if (!result.items) { return; } 

    var responseTitle = document.createElement('strong'); 
    responseTitle.innerHTML = 'Profiles results for ' + resp.id + ':'; 
    infoDiv.appendChild(responseTitle); 

    for (var i = 0; i < result.items.length ; i++) { 
     var profileResult = result.items[i]; 
     var profileInfo = document.createElement('P'); 

     if (profileResult.image && profileResult.image.url) { 
     var profilePic = document.createElement('IMG'); 
     profilePic.src = resizeImage(profileResult.image.url); 
     profileInfo.appendChild(profilePic); 
     } 

     var profileLink = document.createElement('A'); 
     profileLink.style.marginLeft = '5px'; 
     profileLink.href = profileResult.url; 
     profileLink.innerHTML = profileResult.displayName; 
     profileInfo.appendChild(profileLink); 

     infoDiv.appendChild(profileInfo); 
    } 
    } 

    function batchCallback(resp, rawResp) { 
    console.log(resp); 
    var infoDiv = document.getElementById('info'); 
    infoDiv.innerHTML = ''; 
    for (var id in resp) { 
     writeResponse(resp[id]); 
    } 
    } 

    function makeRequest() { 

    addToPlaylist('lRGoIiKXl8s'); 
    addToPlaylist('xvtNS6hbVy4'); 
    addToPlaylist('9I9Ar6upx34'); 
    addToPlaylist('Hr2Bc5qMhE4'); 
    addToPlaylist('ZaI2IlHwmgQ'); 
    addToPlaylist('fyMhvkC3A84'); 
    addToPlaylist('nv44r3q6zgo'); 

    } 


    function addToPlaylist(videoId, startPos, endPos) { 

    console.log('addToPlaylist videoId' + videoId); 
    console.log('addToPlaylist playlistId' + playlistId); 


    gapi.client.load('youtube', 'v3', function() { 

     var details = { 
     videoId: videoId, 
     kind: 'youtube#video' 
     } 

     if (startPos != undefined) { 
     details['startAt'] = startPos; 
     } 

     if (endPos != undefined) { 
     details['endAt'] = endPos; 
     } 


     var request = gapi.client.youtube.playlistItems.insert({ 
     part: 'snippet', 
     resource: { 
      snippet: { 
      playlistId: playlistId, 
      resourceId: details 
      } 
     } 
     }); 

     request.execute(function(response) { 
     console.log(JSON.stringify(response.result)); 
     }); 
    }); 
    } 

Trả lời

Các vấn đề liên quan