我试图通过编程方式在YouTube上创建实时流,但出现错误。我创建了一个服务帐户(将从Web服务器应用程序的后台运行)。当我尝试执行livebroadcast插入请求时,出现错误“用户未启用实时流媒体。[403]”。YouTube数据API - 创建实况广播 - 获取[liveStreamingNotEnabled] - 但它是
但是,事情就是这样,帐户唯一的“用户”是我,我已启用实时流式传输。我假设这个权限将被执行api调用的服务帐户共享。如果情况并非如此,那么如何为服务帐户用户启用直播?
这是我的代码。任何帮助将不胜感激。
String serviceAccountEmail = "XXX";
var certificate = new X509Certificate2(@"key.p12", "notasecret", X509KeyStorageFlags.Exportable);
ServiceAccountCredential credential = new ServiceAccountCredential(
new ServiceAccountCredential.Initializer(serviceAccountEmail)
{
Scopes = new[] {
YouTubeService.Scope.Youtube
}
}.FromCertificate(certificate));
// Create the service.
var service = new YouTubeService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = "My App",
});
LiveBroadcast broadcast = new LiveBroadcast();
LiveBroadcastSnippet snippet = new LiveBroadcastSnippet();
snippet.ScheduledStartTime = new DateTime(2015, 6, 1, 14, 25, 0);
snippet.ScheduledEndTime = new DateTime(2015, 6, 1, 15, 25, 0);
snippet.Title = "Test Event";
broadcast.Kind = "youtube#liveBroadcast";
broadcast.Snippet = snippet;
LiveBroadcastStatus status = new LiveBroadcastStatus();
status.PrivacyStatus = "unlisted";
broadcast.Status = status;
LiveBroadcastsResource.InsertRequest request = service.LiveBroadcasts.Insert(broadcast, "snippet,status");
broadcast = request.Execute();
什么是你想流的来源? “以编程方式”是什么意思? –
在能够流式传输之前,您需要创建一个livebroadcast。我想创建使用代码的livebroadcast(如上)。这是一个事件,将有数百个实时流,其中许多将同时运行。 –