在youtube api .net中通过ID获取youtube播放列表

时间:2015-07-27 21:13:36

标签: c# .net api youtube youtube-api

我正在尝试从C#.NET程序中的YouTube播放列表中下载最新的项目。现在我有一个程序可以使用“channel.ContentDetails.RelatedPlaylists.Uploads;”从我的频道的上传播放列表中成功获取必要的数据,这是我从API页面上的示例程序中获得的。但我无法在api文档中找到有关如何切换该行或其周围的任何信息以通过ID获取播放列表而不是我自己的上传。

这不是重复,因为此页面上的其他示例说明了如何通过http链接查找它,如“http://gdata.youtube.com/feeds/api/playlists / ...”等.I想通过API的方法直接进行。我的代码下载数据的部分包含在下面。

private async Task Run()
{
    var youtubeService = new YouTubeService(new BaseClientService.Initializer()
    {
        ApiKey = "API KEY HERE",
        ApplicationName = this.GetType().ToString()
    });

    //MAYBE I NEED TO CHANGE THIS? SOMETHING LIKE
    //'youtubeservice.Playlists.IDUNNOWHAT'
    var channelsListRequest = youtubeService.Channels.List("contentDetails");
    channelsListRequest.Id = "CHANNEL ID HERE";

    // Retrieve the contentDetails part of the channel resource for the authenticated user's channel.
    var channelsListResponse = await channelsListRequest.ExecuteAsync();
    foreach (var channel in channelsListResponse.Items)
    {


        //OR MAYBE I NEED TO CHANGE THIS PART? 
        //LIKE 'channel.ContentDetails.SOMETHING
        var uploadsListId = channel.ContentDetails.RelatedPlaylists.Uploads;


        var nextPageToken = "";
        while (nextPageToken != null)
        {
            var playlistItemsListRequest = youtubeService.PlaylistItems.List("snippet");
            playlistItemsListRequest.PlaylistId = uploadsListId;
            playlistItemsListRequest.MaxResults = 50;
            playlistItemsListRequest.PageToken = nextPageToken;

            // Retrieve the list of videos uploaded to the authenticated user's channel.
            var playlistItemsListResponse = await playlistItemsListRequest.ExecuteAsync();
            /*
            * DO A BUNCH OF STUFF WITH THE YOUTUBE DATA
            */
            nextPageToken = playlistItemsListResponse.NextPageToken;
        }
    }
}

1 个答案:

答案 0 :(得分:3)

documentation中,它列出了使用ContentDetails.RelatedPlaylists可以获得的播放列表:

  
      
  • 喜欢
  •   
  • 收藏夹
  •   
  • 上传
  •   
  • watchHistory
  •   
  • watchLater
  •   

因此,如果您想要获取您创建的播放列表的项目,则无法使用ContentDetails.RelatedPlaylists执行此操作,您必须提供播放列表ID。如果你改变了

,我相信它应该与你提供的代码(可能需要一些调整)一起使用
playlistItemsListRequest.PlaylistId = uploadsListId;

使用您想要获取其视频的播放列表的ID。