Hinweis:Die YouTube-Richtlinien für Entwickler einhalten enthält Anleitungen und Beispiele, die Ihnen helfen, sicherzustellen, dass Ihre API-Clients bestimmte Abschnitte der Nutzungsbedingungen und Richtlinien der YouTube API-Dienste (API-Nutzungsbedingungen) einhalten. Der Leitfaden gibt Aufschluss darüber, wie YouTube bestimmte Aspekte der API-Nutzungsbedingungen durchsetzt, ersetzt aber keine bestehenden Dokumente.
In diesem Dokument werden die funktionalen Mindestanforderungen für API-Clients definiert, die bestimmte Funktionen von YouTube API-Diensten implementieren oder Zugriff darauf bieten („API-Clients“).
Diese Anforderungen und Richtlinien sollen sicherstellen, dass API-Clients eine einheitliche Nutzererfahrung bieten, die die Interessen von YouTube-Nutzern, Rechteinhabern und Werbetreibenden schützt. Diese Regeln sind ein integraler Bestandteil der Nutzungsbedingungen für die YouTube API und müssen bei der Entwicklung und Implementierung von API-Clients eingehalten werden.
Die Anforderungen in diesem Dokument können sich ändern, damit wir die Nutzerfreundlichkeit bestehender YouTube-Funktionen verbessern können. Sie werden auch an neue und aktualisierte YouTube-Funktionen angepasst. Manchmal müssen Sie Ihre API-Clients aktualisieren, um neuen Anforderungen gerecht zu werden. Im Änderungsverlauf der Nutzungsbedingungen werden alle Änderungen dokumentiert. Sehen Sie sich dieses Dokument daher regelmäßig an oder abonnieren Sie den RSS-Feed, damit Sie schnell über Änderungen informiert werden, die sich auf Ihre API-Clients auswirken können.
Zusätzlich zu den Anforderungen in diesem Dokument empfehlen wir dringend, die in den Richtlinien für YouTube-API-Dienste beschriebenen Best Practices zu befolgen, die auch an anderer Stelle in der Dokumentation zu YouTube-API-Diensten erläutert werden. Auch wenn sie nicht unbedingt erforderlich sind, helfen diese Praktiken Ihren API-Clients, sich schneller von Fehlern zu erholen und die Kontingentnutzung zu optimieren, wenn sie YouTube API-Dienste verwenden, für die Kontingent zugewiesen wird. Gleichzeitig tragen diese Praktiken dazu bei, dass das YouTube-Ökosystem gesund bleibt und vor allem, dass Nutzer Ihrer API-Clients und YouTube-Anwendungen die bestmögliche Erfahrung machen.
Eingebetteter YouTube-Player und Videowiedergabe
Die Anforderungen in diesem Abschnitt beziehen sich speziell auf eingebettete YouTube-Player. Die Richtlinien für YouTube API-Dienste enthalten auch mehrere Richtlinien, die für API-Clients relevant sind, die audiovisuelle YouTube-Inhalte wiedergeben.
API-Client-Identität und ‑Anmeldedaten
API-Clients, die den eingebetteten YouTube-Player (einschließlich der YouTube IFrame Player API) verwenden, müssen sich über den Anfrageheader HTTP Referer identifizieren. In einigen Umgebungen wird HTTP Referer automatisch vom Browser festgelegt. API-Clients müssen nur darauf achten, dass sie Referrer-Policy nicht so festlegen, dass der Wert Referer unterdrückt wird. YouTube empfiehlt die Verwendung von strict-origin-when-cross-origin Referrer-Policy, die in vielen Browsern bereits die Standardeinstellung ist.
Wenn der YouTube-Einbettungsplayer in ein mit JavaScript window.open erstelltes Fenster eingebettet wird, dürfen API-Clients die Funktion noreferrer nicht verwenden, da dadurch der Referer-Wert unterdrückt wird.
Referer festlegen
In Umgebungen, in denen HTTP Referer standardmäßig leer ist und nicht automatisch vom Browser festgelegt wird, müssen API-Clients ihre Identität auf andere Weise angeben. Bei WebView-Integrationen wie einer mobilen App oder einer Desktop-App ist HTTP Referer standardmäßig leer und Referer wird in der Regel mit einer der folgenden Methoden festgelegt:
-
Mobile App mit Player in einer lokalen HTML-Datei
Bei dieser Konfiguration wird der Player in einer HTML-Datei geladen, die mit der App gebündelt ist. Wenn diese HTML-Datei geladen wird, wird durch Festlegen des Parameters
baseUrlder ParameterRefererfestgelegt.- Android
loadDataWithBaseURL - iOS
loadHTMLString:baseURL:
- Android
-
Mobile App ohne lokale HTML-Datei
In dieser Konfiguration wird der Player direkt von
https://www.youtube.com/embed/VIDEO_IDgeladen, ohne dass eine umschließende HTML-Datei erforderlich ist. Sie legenRefererfest, indem Sie es als HTTP-Header hinzufügen:- Android
loadUrlmit demReferer-HTTP-Header, der dem ParameteradditionalHttpHeadershinzugefügt wurde -
iOS
loadRequest:mit dem HTTP-HeaderReferer, der der Anfrage hinzugefügt wurde. Beispiel:NSString *bundleId = [[NSBundle mainBundle] bundleIdentifier]; NSString *referrer = [[NSString stringWithFormat:@"https://%@", bundleId] lowercaseString]; NSURL *referrerUrl = [NSURL URLWithString:referrer]; NSString *destination = @"https://www.youtube.com/embed/VIDEO_ID"; NSURL *destinationUrl = [NSURL URLWithString:destination]; NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:destinationUrl]; [request addValue:referrerUrl forHTTPHeaderField:@"Referer"]; // Create an instance of WKWebView (omitted for simplicity), then load the NSMutableURLRequest. [webView loadRequest:request];
- Android
-
Mobile App mit Player auf einem nativen Browser-Tab
-
Android
CustomTabsVerwenden Sie
Intent.EXTRA_REFERRER, um den Referrer festzulegen. Verwenden Sie beim Erstellen desUriunbedingt das Schemaandroid-app://anstelle vonhttps://. Beispiel:String destinationUrl = "https://www.youtube.com/embed/VIDEO_ID"; CustomTabsIntent customTabsIntent = new CustomTabsIntent.Builder().build() customTabsIntent.intent.putExtra(Intent.EXTRA_REFERRER, Uri.parse("android-app://" + context.getPackageName())); customTabsIntent.launchUrl(this, Uri.parse(destinationUrl)); -
iOS
SFSafariViewControllerSFSafariViewControllerunterstützt das Festlegen vonReferernicht. Legen Sie in diesem Fall stattdessen den Player-Parameteroriginfest.
-
-
Desktop-App
In dieser Konfiguration legen Sie
Refererfest, indem Sie es als HTTP-Header hinzufügen:- Microsoft .NET – Verwenden Sie
HttpRequestHeaders.ReferreroderCoreWebView2HttpRequestHeaders.SetHeader. - macOS: Folgen Sie der oben beschriebenen Anleitung für mobile iOS-Apps.
- Microsoft .NET – Verwenden Sie
Bei anderen Plattformen, auf denen HTTP Referer standardmäßig leer ist, legen Sie den Wert Referer fest, indem Sie die WebView konfigurieren, in der der Player geladen wird. Die genaue Technik kann je nach Plattform variieren.
Wenn Sie Inhaber einer Bibliothek, eines Frameworks, eines Plug-ins, eines Dienstes oder eines Wrappers sind, die von Entwicklern zum Einbetten des YouTube-Players verwendet werden, müssen Sie die App-ID aus der Umgebung abrufen (je nach Plattform ist das möglicherweise nicht möglich) oder Entwicklern erlauben, ihre App-ID zu übergeben, damit Referer (und der Player-Parameter widget_referrer, falls zutreffend) wie oben beschrieben festgelegt werden kann.
Format der Referrer-URL
Wenn Sie den Referer explizit angeben, indem Sie einen WebView-Parameter festlegen oder einen HTTP-Header hinzufügen, ist das Format in der Regel eine vollständig qualifizierte URL. Geben Sie HTTPS als Protokoll an. In der URL muss der Domainname Ihre Anwendungs-ID („App-ID“) sein, die bei dem Store registriert ist, über den Ihre App an Endnutzer verteilt wurde. Wenn Ihre App Nutzern über einen alternativen Vertriebskanal zur Verfügung gestellt wird, verwenden Sie die App-ID, die während der App-Installation beim Betriebssystem registriert wird. In den meisten Fällen ist Ihre App-ID ein umgekehrter Domainname (auch als „Reverse-DNS-Format“ bezeichnet), z. B. com.google.android.youtube. Repräsentative Beispiele:
- Android OS und Android-Apps unter ChromeOS: App-ID
- Apple-Plattformen, einschließlich iOS, iPadOS und macOS: Bundle-ID
- Samsung Tizen: App-ID
- Linux-Distributionen:
Auf einigen Plattformen ist die App-ID kein umgekehrter Domainname. Verwenden Sie in diesen Fällen die eindeutige App-ID, die vom Store zugewiesen wird, über den die App vertrieben wird. Wenn die Store-App-ID eine generierte alphanumerische Zeichenfolge ist (die vom Store oder von Entwicklungstools zugewiesen wird und nicht vom App-Entwickler ausgewählt wird), geben Sie sowohl den Anzeigenamen der App (wobei Leerzeichen durch Bindestriche ersetzt werden) als auch die Store-App-ID an, getrennt durch einen Punkt. Beispiel: <my-app-name>.<AppID>. Dieser Wert sollte sich bei Änderungen der App-Version nicht ändern. Wenn die App nicht in einem App-Shop gehostet wird, verwenden Sie die App-ID, die bei der Installation der App im Betriebssystem registriert wird. Das ist in der Regel eine eindeutige Kennung im App-Manifest. Lassen Sie alle Details zur App-Version und zur unterstützten Architektur weg. Repräsentative Beispiele: