使用API​​ C#代码在我自己的频道中搜索不公开的视频

时间:2015-10-16 06:56:17

标签: c# video youtube youtube-api youtube-channels

我正在尝试搜索我的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)));
    }

2 个答案:

答案 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,则类型参数的值也必须设置为   视频。