将视频上传到 YouTube - 超出配额错误

Posted

技术标签:

【中文标题】将视频上传到 YouTube - 超出配额错误【英文标题】:Upload video to YouTube - Exceeded Quota error 【发布时间】:2021-11-02 15:10:28 【问题描述】:

我正在尝试开发一个将视频上传到 YouTube 的应用。

每当我尝试调用上传例程时,都会收到一条错误消息,指出我已超出配额。但在配额使用屏幕中显示数据不可用。

我什至创建了一个新项目并使用新凭据来确保它与旧项目(在 google developer acc 中)没有什么可笑的,但仍然是一样的。

    public class ClipUploader

    public static async Task UploadClip(string title, string path)
    
        string vId = "";
        UserCredential credential;
        using (var stream = new FileStream(@"C:\Users\andre\source\repos\YouTubeClippingBot\TheBot\uploadClientSecret.json", FileMode.Open, FileAccess.Read))
        
            credential = await GoogleWebAuthorizationBroker.AuthorizeAsync(
                GoogleClientSecrets.FromStream(stream).Secrets,
                // This OAuth 2.0 access scope allows an application to upload files to the
                // authenticated user's YouTube channel, but doesn't allow other types of access.
                new[]  YouTubeService.Scope.YoutubeUpload ,
                "user",
                CancellationToken.None
            );
        


        var youtubeService = new YouTubeService(new BaseClientService.Initializer()
        
            HttpClientInitializer = credential,
            ApplicationName = Assembly.GetExecutingAssembly().GetName().Name
        );

        var video = new Video();
        video.Snippet = new VideoSnippet();
        video.Snippet.Title = title;
        video.Snippet.Description = "Default Video Description";
        video.Snippet.Tags = new string[]  "tag1", "tag2" ;
        video.Snippet.CategoryId = "22"; // See https://developers.google.com/youtube/v3/docs/videoCategories/list
        video.Status = new VideoStatus();
        video.Status.PrivacyStatus = "unlisted"; // or "private" or "public"
        var filePath = path; // Replace with path to actual movie file.

        using (var fileStream = new FileStream(filePath, FileMode.Open))
        
            var videosInsertRequest = youtubeService.Videos.Insert(video, "snippet,status", fileStream, "video/*");
            videosInsertRequest.ProgressChanged += videosInsertRequest_ProgressChanged;
            videosInsertRequest.ResponseReceived += videosInsertRequest_ResponseReceived;

            await videosInsertRequest.UploadAsync();

        
    

    static void videosInsertRequest_ProgressChanged(Google.Apis.Upload.IUploadProgress progress)
    
        switch (progress.Status)
        
            case UploadStatus.Uploading:
                Console.WriteLine("0 bytes sent.", progress.BytesSent);
                break;

            case UploadStatus.Failed:
                Console.WriteLine("An error prevented the upload from completing.\n0", progress.Exception);
                break;
        
    

    static void videosInsertRequest_ResponseReceived(Video video)
    
        Console.WriteLine("Video id '0' was successfully uploaded.", video.Id);
        //Then I need to somehow send this back to chat....
    

所以我不确定为什么会收到配额错误。代码来自 YouTube github 页面,想要让它基本工作,然后我可以根据我实际需要做的调整。

我们会很高兴收到任何建议。

【问题讨论】:

不知道除了谷歌支持之外你希望任何人回答这个问题(是的,我知道..)但是我确实发现a video upload uses 1600 quota units 在配额使用屏幕中显示数据不可用 - 这听起来确实像你可以提出错误的东西。 机密文件有效吗?它是否复制到输出目录?当我尝试编辑播放列表时,我曾经遇到过授权问题,这是我的 YT 应用程序中的第一个非只读操作。我可以通过将FileDataStore 参数添加到GoogleWebAuthorizationBroker.AuthorizeAsync 来修复,这样就可以将访问令牌文件写入该文件夹。 您目前的配额是多少? 【参考方案1】:

您收到错误是因为您已超出当前配额。

您需要了解此 api Intro to YouTube API and cost based quota for beginners 2021. 的配额系统是如何工作的。您可以在请求上花费的配额点数是有限的。每个请求类型都有不同的配额cost,当您运行该请求时,积分将从您的总配额中扣除。此限制在 Google 云控制台中定义。它基于成本,而不是您提出的请求数量。

例如,Video.insert 的费用为 1600。因此,如果您像我一样有 10000 个限制,那么您每天最多可以上传 6 个视频。

您目前的配额是多少。

转到左侧的Google cloud console 转到库,然后搜索 YouTube 数据 api。

单击管理按钮,然后转到配额。检查您当前的配额是多少

请求增加配额。

您还可以在此页面顶部申请额外配额

使用情况报告

不要指望使用情况报告,根据您收到的错误消息,它们不是很准确。

【讨论】:

以上是关于将视频上传到 YouTube - 超出配额错误的主要内容,如果未能解决你的问题,请参考以下文章

YouTube V3 API 配额超出每日限额仅为 10k

Firebase 云功能 [错误:超出内存限制。函数调用被中断。] 在 youtube 视频上传

YouTube 数据 API:请求无法完成,因为您已超出配额 INSUFFICIENT_TOKENS

在达到 API 配额限制之前,YouTube 视频上传被拒绝

每天通过youtube api发送视频的限制

Youtube V3 API 配额使用协助