我正在尝试搜索我的YouTube频道中的不公开视频。我尝试使用下面的代码,但我最终只搜索了公共视频..没有搜索过不公开的视频..任何人都可以帮忙解决这个问题。
var searchListRequest = youtubeService.Search.List("snippet");
searchListRequest.Q = "My Video Name"; // Replace with your search term.
searchListRequest.ChannelId = "My Channel ID";
searchListRequest.MaxResults = 50;
// Call the search.list method to retrieve results matching the specified query term.
var searchListResponse = await searchListRequest.ExecuteAsync();
List<string> videos = new List<string>();
List<string> channels = new List<string>();
List<string> playlists = new List<string>();
// Add each result to the appropriate list, and then display the lists of
// matching videos, channels, and playlists.
foreach (var searchResult in searchListResponse.Items)
{
switch (searchResult.Id.Kind)
{
case "youtube#video":
// if (searchResult.Id.VideoId == "pavY4SCQ4uY")
videos.Add(String.Format("{0} ({1})", searchResult.Snippet.Title, searchResult.Id.VideoId));
break;
case "youtube#channel":
channels.Add(String.Format("{0} ({1})", searchResult.Snippet.Title, searchResult.Id.ChannelId));
break;
case "youtube#playlist":
playlists.Add(String.Format("{0} ({1})", searchResult.Snippet.Title, searchResult.Id.PlaylistId));
break;
}
}
Console.WriteLine(String.Format("Videos:\n{0}\n", string.Join("\n", videos)));
Console.WriteLine(String.Format("Channels:\n{0}\n", string.Join("\n", channels)));
Console.WriteLine(String.Format("Playlists:\n{0}\n", string.Join("\n", playlists)));
}
答案 0 :(得分:1)
您应该通过OAuth2进行身份验证,以获取自己的视频。 另外,要在频道中播放视频
1)channels.list()方法然后查找contentDetails.relatedPlaylists.uploads
2)带有该播放列表的playlistItems.list。
这将导致搜索请求中的2个配额与100个配额。
(当你在寻找自己的频道而不是channelId时,只需在channels.list方法中使用mine = true)
答案 1 :(得分:0)
假设您使用Oauth2进行身份验证,而不使用公共API密钥。您可以将forMine添加到您的请求中,只返回您的视频。
forMine布尔值此参数只能在正确使用 授权请求。 forMine参数仅将搜索限制为 检索经过身份验证的用户拥有的视频。如果设置了这个 如果参数为true,则类型参数的值也必须设置为 视频。