查询多个Youtube通道

时间:2014-07-21 07:59:13

标签: javascript youtube youtube-api

如何查询多个Youtube频道?我试过这样的事情:

function search() {
    // Use the JavaScript client library to create a search.list() API call.
    var request = gapi.client.youtube.search.list({
        part: 'snippet',
        fields: 'items(id/videoId ,snippet/thumbnails, snippet/title,
                 snippet/publishedAt)',
        channelId: 'DOESNTMATTER',
        order: 'date',
        maxResults: '50'

    });

    request.execute(function(YTDataL){
        var videoIdsL= $.map(YTDataL.items, function(item){
           return item.id.videoId; 
        });
        var videoDataL = gapi.client.youtube.videos.list({
            id: videoIdsL.join(','),
            part: 'contentDetails, statistics'
        })
        videoData.execute(function(videoDataL){
                    YoutubeResponseL(videoDataL, YTDataL);    
                });

            });            
}

查询一个通道时效果很好...但每次我尝试使用相同的机制基本上有两个不同的对象(YTData,YTDataL)它在查询" videoId&时一直给我10001错误#34; ...这次我得到了

Uncaught TypeError: Cannot read property 'videoId' of undefined 

如何查询多个频道?

2 个答案:

答案 0 :(得分:1)

以下是未来问题的更多详细信息:如上所述的search.list方法只能搜索一个整体渠道...要解决这个问题:

1)使用channels.list功能并获取您正在使用的每个频道的contentDetails

2)在contentDetails playlists中,您可以找到upload播放列表 这与您从search.list获得的结果基本相同。

3)使用playlistItems.list列出upload播放列表中的项目。

4)基本上创建列出每个频道的playlistItems的函数......你应该为每个频道获得单独的响应对象,然后你去。

答案 1 :(得分:0)

您只能使用search.list method查询一个频道。 另一种选择是使用channels.list并迭代他们的视频。