Ich versuche, Live aus meiner .Net-Anwendung mit Youtube.Data.Api v3 zu übertragen. Ich habe OAuth eingerichtet und die .JSON-Datei heruntergeladen, und das funktioniert einwandfrei. Ich weiß das, weil ich bereits eine Liste von Kanälen bzw. (Zeige ich Ihnen die ganze Methode auf Vollständigkeit)Youtube Live API - Broadcast-Übertragung verweigert mit OAuth
var channelsRequest = ytService.Channels.List("contentDetails, snippet");
channelsRequest.Mine = true;
var channelsListResponse = channelsRequest.Execute();
Aber wenn ich versuche, einen Einsatz Anforderung auszuführen,
public static LiveBroadcast CreateImmediateBroadcast(string title = "DefaultBroadcast") {
var snippet = new LiveBroadcastSnippet();
snippet.Title = title;
snippet.ScheduledStartTime = DateTime.Now;
snippet.ScheduledEndTime = DateTime.Now + TimeSpan.FromMinutes(60);
var status = new LiveBroadcastStatus();
status.PrivacyStatus = "unlisted";
var broadcast = new LiveBroadcast();
broadcast.Kind = "youtube#liveBroadcast";
broadcast.Snippet = snippet;
broadcast.Status = status;
var insertBroadcastRequest = ytService.LiveBroadcasts.Insert(broadcast, "snippet, status");
insertBroadcastRequest.Execute();
return broadcast;
}
ich eine Ausnahme erhalten, wenn: Videos auf meinem Konto, also folgender Code funktioniert Aufruf insertBroadcastRequest.Execute()
, nämlich:
Google.GoogleApiException wurde nicht behandelt
HResult = -2146233088 Message = Google.Apis.Requests.RequestError
Unzureichende Berechtigung [403] Fehler [ Nachricht [Unzureichende Berechtigung] Standort [-] Grund [insufficientPermissions] Domain [global] ] Servicename = youtube
Source = Google.Apis
Stacktrace: bei Google.Apis.Requests.ClientServiceRequest`1.Execute() in C: \ Benutzer \ cloudsharp \ Dokumente \ GitHub \ google-api-dotnet-Client \ Src \ Support \ GoogleApis \ Apis \ Anfragen \ ClientServiceRequest.cs: Zeile 96 bei YoutubeConsole.YouTubeAPI.CreateImmediateStream (String title) in C: \ Users \ bussg \ Source \ Workspaces \ OwnExperimental \ YoutubeConsole \ YoutubeConsole \ YouTubeAPI.cs: Linie 87 bei YoutubeConsole.YouTubeAPI.Test() in ...
auch für die Vollständigkeit, hier ist meine Genehmigung,
using (var stream = new FileStream(Directory.GetCurrentDirectory() + @"\GoogleAuthOtherApplication.json", FileMode.Open, FileAccess.Read)) {
credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
GoogleClientSecrets.Load(stream).Secrets,
new[] { YouTubeService.Scope.YoutubeForceSsl},
"user",
CancellationToken.None,
new FileDataStore("YouTubeAPI")
).Result;
}
auch für die YouTubeService.Scope
ich habe alle Optionen ausprobiert. Die Methode insert
sollte mit ForceSsl
gemäß der documentation funktionieren.
Auch this documentation page sais
Hinweis: Ein Kanal genehmigt werden muss die YouTube-Live-Funktion zu verwenden, die den Kanalinhaber ermöglicht, diesen Kanal Live-Inhalte zu streamen. Wenn Sie API-Anforderungen im Namen eines authentifizierten Benutzers senden, dessen Kanal nicht aktiviert oder zum Streamen von Live-Inhalten berechtigt ist, gibt die API einen Fehler mit unzureichenden Berechtigungen zurück.
Aber alle meine Kanäle sind für Youtube Live zugelassen. Irgendwelche Ideen wie man das zum Laufen bringt?
wilde erraten Sie wahrscheinlich ein YouTube-Content-Partner sein. oder vielleicht https://support.google.com/youtube/answer/2474026?hl=de – DaImTo
@Dalmto: Ich habe viele der Dokumentationsseiten bereits mehrfach durchforstet, und nirgends erwähnen sie, dass sie Content-Partner sein müssen (das brauchst du nur, wenn du Werbung in deinem Stream anzeigen willst Und bezüglich deines Links: Habe auch nachgesehen, mein Kanal ist für Live Treaming ohne Einschränkungen geeignet – EluciusFTW
Wo bist du auf der Welt? – DaImTo