Nota:il rispetto delle norme per gli sviluppatori di YouTube fornisce indicazioni ed esempi per aiutarti a garantire che i tuoi client API seguano parti specifiche dei Termini e delle Norme dei servizi API di YouTube (TOS API). La guida offre informazioni su come YouTube applica determinati aspetti dei TdS delle API, ma non sostituisce i documenti esistenti.
Questo documento definisce i requisiti funzionali minimi per i client API che implementano o forniscono l'accesso a funzionalità specifiche dei servizi API di YouTube ("client API").
Questi requisiti e linee guida garantiscono che i client API offrano un'esperienza utente coerente che protegga gli interessi di utenti, proprietari dei contenuti e inserzionisti di YouTube. Queste regole sono parte integrante dei Termini di servizio delle API di YouTube e devono essere seguite nello sviluppo e nell'implementazione di qualsiasi client API.
I requisiti descritti in questo documento sono soggetti a modifiche per garantire un'esperienza utente migliore con le funzionalità di YouTube esistenti. Inoltre, cambieranno in risposta alle funzionalità nuove e aggiornate di YouTube. A volte, queste modifiche potrebbero richiedere l'aggiornamento dei client API per soddisfare i nuovi requisiti. La cronologia delle revisioni dei Termini di servizio documenterà eventuali modifiche, pertanto ti invitiamo a consultare spesso questo documento o a iscriverti al relativo feed RSS per essere informato rapidamente delle modifiche che potrebbero influire sui tuoi client API.
Oltre ai requisiti descritti in questo documento, ti consigliamo vivamente di seguire le best practice descritte nelle norme dei servizi API di YouTube e discusse altrove nella documentazione dei servizi API di YouTube. Anche se non strettamente necessarie, queste pratiche aiutano i client API a ripristinarsi più rapidamente dagli errori e a ottimizzare l'utilizzo della quota se utilizzano servizi API di YouTube che allocano la quota. Allo stesso tempo, queste pratiche contribuiscono a garantire la salute dell'ecosistema YouTube e, soprattutto, a fornire la migliore esperienza possibile agli utenti dei tuoi client API e delle applicazioni YouTube.
Player incorporato di YouTube e riproduzione video
I requisiti di questa sezione si riferiscono in modo specifico ai player YouTube incorporati. Le Norme relative ai servizi API di YouTube includono anche diverse norme pertinenti ai client API che riproducono contenuti audiovisivi di YouTube.
Identità e credenziali del client API
I client API che utilizzano il player incorporato di YouTube (inclusa l'API YouTube IFrame Player) devono fornire l'identificazione tramite l'intestazione della richiesta HTTP Referer. In alcuni ambienti, il browser imposta automaticamente HTTP Referer e i client API devono solo assicurarsi di non impostare Referrer-Policy in modo da eliminare il valore Referer. YouTube consiglia di utilizzare strict-origin-when-cross-origin Referrer-Policy, che è già l'impostazione predefinita in molti browser.
Analogamente, se si integra il player incorporato di YouTube in una finestra creata utilizzando JavaScript window.open, i client API non devono utilizzare la funzionalità noreferrer, che elimina il valore Referer.
Imposta il referrer
Negli ambienti in cui HTTP Referer è vuoto per impostazione predefinita e non viene impostato automaticamente dal browser, i client API devono intervenire per fornire la propria identità con mezzi alternativi. Nelle integrazioni WebView, come un'app mobile o un'app desktop, HTTP Referer è vuoto per impostazione predefinita e Referer viene in genere impostato utilizzando una di queste tecniche:
-
App mobile con il player all'interno di un file HTML locale
In questa configurazione, il player viene caricato in un file HTML incluso nel bundle dell'app. Quando carichi questo file HTML, l'impostazione del parametro
baseUrlimpostaReferer.- Android
loadDataWithBaseURL - iOS
loadHTMLString:baseURL:
- Android
-
App mobile senza file HTML locale
In questa configurazione, il player viene caricato direttamente da
https://www.youtube.com/embed/VIDEO_IDsenza alcun file HTML contenitore. ImpostaRefereraggiungendolo come intestazione HTTP:- Android
loadUrlcon l'intestazione HTTPRefereraggiunta al parametroadditionalHttpHeaders -
iOS
loadRequest:con l'intestazione HTTPRefereraggiunta alla richiesta. Ad esempio: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
-
App mobile con il player all'interno di una scheda del browser nativa
-
Android
CustomTabsUtilizza
Intent.EXTRA_REFERRERper impostare il referrer. Assicurati di utilizzare lo schemaandroid-app://anzichéhttps://quando creiUri. Ad esempio: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
SFSafariViewControllerSFSafariViewControllernon supporta l'impostazione diReferer. In questo caso, imposta il parametro del playerorigin.
-
-
App per computer
In questa configurazione, imposta
Refereraggiungendolo come intestazione HTTP:- Microsoft .NET: utilizza
HttpRequestHeaders.ReferreroCoreWebView2HttpRequestHeaders.SetHeader - macOS: segui le stesse istruzioni descritte sopra per le app mobile per iOS
- Microsoft .NET: utilizza
Per le altre piattaforme in cui HTTP Referer è vuoto per impostazione predefinita, imposta il valore di Referer configurando la WebView in cui viene caricato il player. La tecnica esatta può variare in base alla piattaforma.
Se sei il proprietario di una libreria, un framework, un plug-in, un servizio o un wrapper utilizzato dagli sviluppatori per integrare il player incorporato di YouTube, devi recuperare l'ID app dall'ambiente (potrebbe non essere possibile, a seconda della piattaforma) o consentire agli sviluppatori di inserire il proprio ID app in modo che Referer (e il parametro del player widget_referrer, se appropriato) possa essere impostato come descritto sopra.
Formato referrer
Quando fornisci esplicitamente il referrer impostando un parametro WebView o aggiungendo un'intestazione HTTP, il formato è in genere un URL completo. Specifica HTTPS come protocollo. All'interno dell'URL, il nome di dominio deve essere l'identificatore dell'applicazione ("ID app") registrato nello store che ha distribuito l'app agli utenti finali. Se la tua app viene fornita agli utenti tramite un canale di distribuzione alternativo, utilizza l'ID app registrato con il sistema operativo durante l'installazione dell'app. Nella maggior parte dei casi, l'ID app sarà un nome di dominio invertito (noto anche come "formato DNS inverso"), ad esempio com.google.android.youtube. Esempi rappresentativi:
- Sistema operativo Android e app per Android su ChromeOS: ID app
- Piattaforme Apple, tra cui iOS, iPadOS, macOS: