作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试开发一个将视频上传到 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.\n{0}", 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 页面,想让它基本工作,然后我可以根据我实际需要做的事情来定制它。
最佳答案
您收到错误是因为您已超出当前配额。
您需要了解配额系统如何针对此 api 工作 Intro to YouTube API and cost based quota for beginners 2021. .您可以在请求上花费的配额点数有限制。每种请求类型都有不同的配额 cost当您运行该请求时,积分将从您的总配额中扣除。此限制在 Google 云控制台中定义。它基于成本而不是您提出的请求数量。
例如,Video.insert 的费用为 1600。因此,如果您像我一样有 10000 的限制,那么您每天最多可以上传 6 个视频。
你目前的配额是多少。
转至 Google cloud console在左侧转到库,然后搜索 YouTube 数据 api。
单击管理按钮,然后转到配额。检查您当前的配额是多少
请求配额增加。
在此页面的顶部,您还可以申请额外配额
使用报告
不要指望根据您收到的错误消息,使用情况报告不是很准确。
关于c# - 将视频上传到 YouTube - 超出配额错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69059102/
我是一名优秀的程序员,十分优秀!