如何在不使用搜索请求的情况下获取频道ID的频道

时间:2016-01-17 21:52:06

标签: node.js youtube-api

在我的NodeJS应用程序中,我使用此代码获取特定频道的视频:

 var myOauth = 'my oauth object';
 var channelId = 'my channel id';
 youtube.search.list({ auth: myOauth, part: 'snippet', 
                       channelId: channelId, type:'video',
                       order:'date', maxResults:50 
                     }, 
                     function(err, response) {
                       //do something here
                     }
 );

此解决方案有效,但每个请求的配额成本为100. https://developers.google.com/youtube/v3/docs/search/list

我希望以其他方式获取视频,例如" playlistItems"配额成本为1. https://developers.google.com/youtube/v3/docs/playlistItems/list

谢谢!

编辑:解决方案

我找到了一种新方法,可以按渠道ID获取特定频道的视频,只需3个配额。

获取使用Oauth验证的用户的订阅列表:

   youtube.subscriptions.list({
        auth: oauth, part: 'snippet,contentDetails', 
        mine:true, maxResults:50, 
        pageToken:pageToken }, 
        function(err, response) {
            if(!err) {
                var firstChannelId = response.item[0].snippet.resourceId.channelId;
                console.log(firstChannelId);
            }
        }
    );

从频道ID获取频道播放列表ID:

   youtube.channels.list({    auth: res.oauth, part: 'contentDetails', 
            id:firstChannelId, maxResults:50 }, 
            function(err, response) {
                var channelPlaylistId = response.item[0].contentDetails.relatedPlaylists.uploads;
                console.log(channelPlaylistId);
            }
        );

浏览播放列表中的项目:

   youtube.playlistItems.list({    auth: res.oauth, part: 'snippet', 
        playlistId:channelPlaylistId,
        maxResults:50, pageToken:pageToken }, 
        function(err, response) {
            console.log(JSON.stringify(response.items));
        }
    );

0 个答案:

没有答案