如何使用 Youtube api 查找直播视频列表?

How to find a List of Live videos using Youtube api?

我需要使用 Youtube Api v3

从任何频道获取直播活动列表

我将官方 NuGet 包添加到我的 wpf 项目中:

使用Google.Apis.Auth.OAuth2; 使用 Google.Apis.Services; 使用 Google.Apis.Util.Store; 使用 Google.Apis.YouTube.v3;

我在单击按钮时添加了 OAuth 身份验证:

    UserCredential credential;
    using (var stream = new FileStream("mydowloadedjsonfile.json", FileMode.Open, FileAccess.Read))
    {
        credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
            GoogleClientSecrets.Load(stream).Secrets, new[] { YouTubeService.Scope.YoutubeReadonly }, "user",
            CancellationToken.None, new FileDataStore("YouTubeAPI")
            ).Result;
    }

    var service = new YouTubeService(new BaseClientService.Initializer()
    {
        HttpClientInitializer = credential,
        ApplicationName = "YouTubeAPI"
    });

这段代码效果很好,它打开浏览器进行身份验证并允许我的用户使用 YouTube 权限

之后,我试图获取现场活动列表,但失败了:

        var request = service.Search.List("snippet");
        request.Q = "live event";//I know this is wrong...
        request.MaxResults = 10;
        var response = request.Execute();

显然我做错了,有人能指出正确的方向吗?

我通过使用此请求找到了答案:

        var request = service.Search.List("snippet");
        request.Q = txtSearch.Text.Trim();
        request.EventType = SearchResource.ListRequest.EventTypeEnum.Live;
        request.Type = "video";
        request.MaxResults = 10;

request.Type 是必需的,否则你会得到 google 异常。 Api 开发人员让它变得非常丑陋......它乞求成为枚举或其他东西