在 youtube api .net 中按 ID 获取 youtube 播放列表
Get youtube playlist by ID in youtube api .net
我正在尝试在 C# .NET 程序中从 YouTube 播放列表下载最新项目。现在我有一个程序可以使用 "channel.ContentDetails.RelatedPlaylists.Uploads;" 从我频道的上传播放列表中成功获取必要的数据,这是我从 API 页面上的示例程序中获取的。但我无法在 api 文档中找到任何关于如何切换该行或围绕它的行以通过 ID 而不是我自己的上传来获取播放列表的任何信息。
这不是重复的,因为此页面上的其他示例解释了如何通过 http link 找到它,如 "http://gdata.youtube.com/feeds/api/playlists/..." 等。我想直接通过 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;
}
}
}
在 documentation 中,它列出了您可以使用 ContentDetails.RelatedPlaylists
:
获得的播放列表
- likes
- favorites
- uploads
- watchHistory
- watchLater
因此,如果您想要获取您创建的播放列表的项目,您将无法使用 ContentDetails.RelatedPlaylists
执行此操作,您必须提供播放列表 ID。我相信如果您更改
它应该可以与您提供的代码一起使用(可能需要一些调整)
playlistItemsListRequest.PlaylistId = uploadsListId;
使用要获取其视频的播放列表的 ID。
我正在尝试在 C# .NET 程序中从 YouTube 播放列表下载最新项目。现在我有一个程序可以使用 "channel.ContentDetails.RelatedPlaylists.Uploads;" 从我频道的上传播放列表中成功获取必要的数据,这是我从 API 页面上的示例程序中获取的。但我无法在 api 文档中找到任何关于如何切换该行或围绕它的行以通过 ID 而不是我自己的上传来获取播放列表的任何信息。
这不是重复的,因为此页面上的其他示例解释了如何通过 http link 找到它,如 "http://gdata.youtube.com/feeds/api/playlists/..." 等。我想直接通过 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;
}
}
}
在 documentation 中,它列出了您可以使用 ContentDetails.RelatedPlaylists
:
- likes
- favorites
- uploads
- watchHistory
- watchLater
因此,如果您想要获取您创建的播放列表的项目,您将无法使用 ContentDetails.RelatedPlaylists
执行此操作,您必须提供播放列表 ID。我相信如果您更改
playlistItemsListRequest.PlaylistId = uploadsListId;
使用要获取其视频的播放列表的 ID。