CINXE.COM

Complying with YouTube's Developer Policies  |  Google for Developers

<!doctype html> <html lang="en" dir="ltr"> <head> <meta name="google-signin-client-id" content="721724668570-nbkv1cfusk7kk4eni4pjvepaus73b13t.apps.googleusercontent.com"> <meta name="google-signin-scope" content="profile email https://www.googleapis.com/auth/developerprofiles https://www.googleapis.com/auth/developerprofiles.award"> <meta property="og:site_name" content="Google for Developers"> <meta property="og:type" content="website"><meta name="theme-color" content="#ff0000"><meta charset="utf-8"> <meta content="IE=Edge" http-equiv="X-UA-Compatible"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="manifest" href="/_pwa/developers/manifest.json" crossorigin="use-credentials"> <link rel="preconnect" href="//www.gstatic.com" crossorigin> <link rel="preconnect" href="//fonts.gstatic.com" crossorigin> <link rel="preconnect" href="//fonts.googleapis.com" crossorigin> <link rel="preconnect" href="//apis.google.com" crossorigin> <link rel="preconnect" href="//www.google-analytics.com" crossorigin><link rel="stylesheet" href="//fonts.googleapis.com/css?family=Google+Sans:400,500|Roboto:400,400italic,500,500italic,700,700italic|Roboto+Mono:400,500,700&display=swap"> <link rel="stylesheet" href="//fonts.googleapis.com/css2?family=Material+Icons&family=Material+Symbols+Outlined&display=block"><link rel="stylesheet" href="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/developers/css/app.css"> <link rel="shortcut icon" href="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/developers/images/favicon-new.png"> <link rel="apple-touch-icon" href="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/developers/images/touchicon-180-new.png"><link rel="canonical" href="https://developers.google.com/youtube/terms/developer-policies-guide"><link rel="search" type="application/opensearchdescription+xml" title="Google for Developers" href="https://developers.google.com/s/opensearch.xml"> <link rel="alternate" hreflang="en" href="https://developers.google.com/youtube/terms/developer-policies-guide" /><link rel="alternate" hreflang="x-default" href="https://developers.google.com/youtube/terms/developer-policies-guide" /><link rel="alternate" hreflang="ar" href="https://developers.google.com/youtube/terms/developer-policies-guide?hl=ar" /><link rel="alternate" hreflang="bn" href="https://developers.google.com/youtube/terms/developer-policies-guide?hl=bn" /><link rel="alternate" hreflang="zh-Hans" href="https://developers.google.com/youtube/terms/developer-policies-guide?hl=zh-cn" /><link rel="alternate" hreflang="zh-Hant" href="https://developers.google.com/youtube/terms/developer-policies-guide?hl=zh-tw" /><link rel="alternate" hreflang="fa" href="https://developers.google.com/youtube/terms/developer-policies-guide?hl=fa" /><link rel="alternate" hreflang="he" href="https://developers.google.com/youtube/terms/developer-policies-guide?hl=he" /><link rel="alternate" hreflang="hi" href="https://developers.google.com/youtube/terms/developer-policies-guide?hl=hi" /><link rel="alternate" hreflang="id" href="https://developers.google.com/youtube/terms/developer-policies-guide?hl=id" /><link rel="alternate" hreflang="it" href="https://developers.google.com/youtube/terms/developer-policies-guide?hl=it" /><link rel="alternate" hreflang="ja" href="https://developers.google.com/youtube/terms/developer-policies-guide?hl=ja" /><link rel="alternate" hreflang="ko" href="https://developers.google.com/youtube/terms/developer-policies-guide?hl=ko" /><link rel="alternate" hreflang="pl" href="https://developers.google.com/youtube/terms/developer-policies-guide?hl=pl" /><link rel="alternate" hreflang="pt-BR" href="https://developers.google.com/youtube/terms/developer-policies-guide?hl=pt-br" /><link rel="alternate" hreflang="es-419" href="https://developers.google.com/youtube/terms/developer-policies-guide?hl=es-419" /><link rel="alternate" hreflang="th" href="https://developers.google.com/youtube/terms/developer-policies-guide?hl=th" /><link rel="alternate" hreflang="tr" href="https://developers.google.com/youtube/terms/developer-policies-guide?hl=tr" /><link rel="alternate" hreflang="vi" href="https://developers.google.com/youtube/terms/developer-policies-guide?hl=vi" /><title>Complying with YouTube&#39;s Developer Policies &nbsp;|&nbsp; Google for Developers</title> <meta property="og:title" content="Complying with YouTube&#39;s Developer Policies &nbsp;|&nbsp; Google for Developers"><meta property="og:url" content="https://developers.google.com/youtube/terms/developer-policies-guide"><meta property="og:image" content="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/developers/images/opengraph/youtube-theme.png"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="675"><meta property="og:locale" content="en"><meta name="twitter:card" content="summary_large_image"><script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Article", "headline": "Complying with YouTube&#39;s Developer Policies" } </script><script type="application/ld+json"> { "@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [{ "@type": "ListItem", "position": 1, "name": "YouTube", "item": "https://developers.google.com/youtube" },{ "@type": "ListItem", "position": 2, "name": "Complying with YouTube&amp;#39;s Developer Policies", "item": "https://developers.google.com/youtube/terms/developer-policies-guide" }] } </script> <link rel="stylesheet" href="/extras.css"></head> <body class="" template="page" theme="youtube-theme" type="article" layout="docs" concierge='closed' display-toc pending> <devsite-progress type="indeterminate" id="app-progress"></devsite-progress> <section class="devsite-wrapper"> <devsite-cookie-notification-bar></devsite-cookie-notification-bar><devsite-header role="banner"> <div class="devsite-header--inner nocontent"> <div class="devsite-top-logo-row-wrapper-wrapper"> <div class="devsite-top-logo-row-wrapper"> <div class="devsite-top-logo-row"> <button type="button" id="devsite-hamburger-menu" class="devsite-header-icon-button button-flat material-icons gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Navigation menu button" visually-hidden aria-label="Open menu"> </button> <div class="devsite-product-name-wrapper"> <a href="https://developers.google.com/youtube"> <div class="devsite-product-logo-container" size="medium" > <picture> <img class="devsite-product-logo" alt="YouTube" src="https://developers.google.com/static/site-assets/logo-youtube.svg" srcset=" /static/site-assets/logo-youtube.svg" sizes="64px" loading="lazy" > </picture> </div> </a> <span class="devsite-product-name"> <ul class="devsite-breadcrumb-list" > <li class="devsite-breadcrumb-item "> <a href="https://developers.google.com/youtube" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Upper Header" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail="YouTube" > YouTube </a> </li> </ul> </span> </div> <div class="devsite-top-logo-row-middle"> <div class="devsite-header-upper-tabs"> </div> <devsite-search enable-signin enable-search enable-suggestions enable-query-completion project-name="YouTube" tenant-name="Google for Developers" project-scope="/youtube" url-scoped="https://developers.google.com/s/results/youtube" > <form class="devsite-search-form" action="https://developers.google.com/s/results" method="GET"> <div class="devsite-search-container"> <button type="button" search-open class="devsite-search-button devsite-header-icon-button button-flat material-icons" aria-label="Open search"></button> <div class="devsite-searchbox"> <input aria-activedescendant="" aria-autocomplete="list" aria-label="Search" aria-expanded="false" aria-haspopup="listbox" autocomplete="off" class="devsite-search-field devsite-search-query" name="q" placeholder="Search" role="combobox" type="text" value="" > <div class="devsite-search-image material-icons" aria-hidden="true"> </div> <div class="devsite-search-shortcut-icon-container" aria-hidden="true"> <kbd class="devsite-search-shortcut-icon">/</kbd> </div> </div> </div> </form> <button type="button" search-close class="devsite-search-button devsite-header-icon-button button-flat material-icons" aria-label="Close search"></button> </devsite-search> </div> <devsite-language-selector> <ul role="presentation"> <li role="presentation"> <a role="menuitem" lang="en" >English</a> </li> <li role="presentation"> <a role="menuitem" lang="de" >Deutsch</a> </li> <li role="presentation"> <a role="menuitem" lang="es" >Español</a> </li> <li role="presentation"> <a role="menuitem" lang="es_419" >Español – América Latina</a> </li> <li role="presentation"> <a role="menuitem" lang="fr" >Français</a> </li> <li role="presentation"> <a role="menuitem" lang="id" >Indonesia</a> </li> <li role="presentation"> <a role="menuitem" lang="it" >Italiano</a> </li> <li role="presentation"> <a role="menuitem" lang="pl" >Polski</a> </li> <li role="presentation"> <a role="menuitem" lang="pt_br" >Português – Brasil</a> </li> <li role="presentation"> <a role="menuitem" lang="vi" >Tiếng Việt</a> </li> <li role="presentation"> <a role="menuitem" lang="tr" >Türkçe</a> </li> <li role="presentation"> <a role="menuitem" lang="ru" >Русский</a> </li> <li role="presentation"> <a role="menuitem" lang="he" >עברית</a> </li> <li role="presentation"> <a role="menuitem" lang="ar" >العربيّة</a> </li> <li role="presentation"> <a role="menuitem" lang="fa" >فارسی</a> </li> <li role="presentation"> <a role="menuitem" lang="hi" >हिंदी</a> </li> <li role="presentation"> <a role="menuitem" lang="bn" >বাংলা</a> </li> <li role="presentation"> <a role="menuitem" lang="th" >ภาษาไทย</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_cn" >中文 – 简体</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_tw" >中文 – 繁體</a> </li> <li role="presentation"> <a role="menuitem" lang="ja" >日本語</a> </li> <li role="presentation"> <a role="menuitem" lang="ko" >한국어</a> </li> </ul> </devsite-language-selector> <devsite-user enable-profiles fp-auth id="devsite-user"> <span class="button devsite-top-button" aria-hidden="true" visually-hidden>Sign in</span> </devsite-user> </div> </div> </div> <div class="devsite-collapsible-section "> <div class="devsite-header-background"> <div class="devsite-doc-set-nav-row"> <devsite-tabs class="lower-tabs"> <nav class="devsite-tabs-wrapper" aria-label="Lower tabs"> <tab > <a href="https://developers.google.com/youtube" track-metadata-eventdetail="https://developers.google.com/youtube" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - home" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Home" track-name="home" > Home </a> </tab> <tab > <a href="https://developers.google.com/youtube/documentation" track-metadata-eventdetail="https://developers.google.com/youtube/documentation" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - guides" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Guides" track-name="guides" > Guides </a> </tab> <tab > <a href="https://developers.google.com/youtube/code_samples" track-metadata-eventdetail="https://developers.google.com/youtube/code_samples" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - samples" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Samples" track-name="samples" > Samples </a> </tab> <tab class="devsite-active"> <a href="https://developers.google.com/youtube/terms/api-services-terms-of-service" track-metadata-eventdetail="https://developers.google.com/youtube/terms/api-services-terms-of-service" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - terms" track-metadata-module="primary nav" aria-label="Terms, selected" data-category="Site-Wide Custom Events" data-label="Tab: Terms" track-name="terms" > Terms </a> </tab> </nav> </devsite-tabs> </div> </div> </div> </div> </devsite-header> <devsite-book-nav scrollbars > <div class="devsite-book-nav-filter" > <span class="filter-list-icon material-icons" aria-hidden="true"></span> <input type="text" placeholder="Filter" aria-label="Type to filter" role="searchbox"> <span class="filter-clear-button hidden" data-title="Clear filter" aria-label="Clear filter" role="button" tabindex="0"></span> </div> <nav class="devsite-book-nav devsite-nav nocontent" aria-label="Side menu"> <div class="devsite-mobile-header"> <button type="button" id="devsite-close-nav" class="devsite-header-icon-button button-flat material-icons gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Close navigation" aria-label="Close navigation"> </button> <div class="devsite-product-name-wrapper"> <a href="https://developers.google.com/youtube"> <div class="devsite-product-logo-container" size="medium" > <picture> <img class="devsite-product-logo" alt="YouTube" src="https://developers.google.com/static/site-assets/logo-youtube.svg" srcset=" /static/site-assets/logo-youtube.svg" sizes="64px" loading="lazy" > </picture> </div> </a> <span class="devsite-product-name"> <ul class="devsite-breadcrumb-list" > <li class="devsite-breadcrumb-item "> <a href="https://developers.google.com/youtube" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Upper Header" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail="YouTube" > YouTube </a> </li> </ul> </span> </div> </div> <div class="devsite-book-nav-wrapper"> <div class="devsite-mobile-nav-top"> <ul class="devsite-nav-list"> <li class="devsite-nav-item"> <a href="/youtube" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Home" track-name="home" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Home" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Home </span> </a> </li> <li class="devsite-nav-item"> <a href="/youtube/documentation" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Guides" track-name="guides" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Guides" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Guides </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> <li class="devsite-nav-item"> <a href="/youtube/code_samples" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Samples" track-name="samples" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Samples" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Samples </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> <li class="devsite-nav-item"> <a href="/youtube/terms/api-services-terms-of-service" class="devsite-nav-title gc-analytics-event devsite-nav-has-children devsite-nav-active" data-category="Site-Wide Custom Events" data-label="Tab: Terms" track-name="terms" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Terms" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Terms </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> </ul> </div> <div class="devsite-mobile-nav-bottom"> <ul class="devsite-nav-list" menu="_book"> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>YouTube API Services Terms of Service</span> </div></li> <li class="devsite-nav-item"><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip></span> </div></li> <li class="devsite-nav-item"><a href="/youtube/terms/api-services-terms-of-service" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /youtube/terms/api-services-terms-of-service" track-type="bookNav" track-name="click" track-metadata-eventdetail="/youtube/terms/api-services-terms-of-service" ><span class="devsite-nav-text" tooltip>Terms of Service (Americas)</span></a></li> <li class="devsite-nav-item"><a href="/youtube/terms/api-services-terms-of-service-apac" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /youtube/terms/api-services-terms-of-service-apac" track-type="bookNav" track-name="click" track-metadata-eventdetail="/youtube/terms/api-services-terms-of-service-apac" ><span class="devsite-nav-text" tooltip>Terms of Service (APAC)</span></a></li> <li class="devsite-nav-item"><a href="/youtube/terms/api-services-terms-of-service-emea" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /youtube/terms/api-services-terms-of-service-emea" track-type="bookNav" track-name="click" track-metadata-eventdetail="/youtube/terms/api-services-terms-of-service-emea" ><span class="devsite-nav-text" tooltip>Terms of Service (EMEA)</span></a></li> <li class="devsite-nav-item"><a href="/youtube/terms/api-services-terms-of-service-ru" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /youtube/terms/api-services-terms-of-service-ru" track-type="bookNav" track-name="click" track-metadata-eventdetail="/youtube/terms/api-services-terms-of-service-ru" ><span class="devsite-nav-text" tooltip>Terms of Service (Russia)</span></a></li> <li class="devsite-nav-item"><a href="/youtube/terms/developer-policies" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /youtube/terms/developer-policies" track-type="bookNav" track-name="click" track-metadata-eventdetail="/youtube/terms/developer-policies" ><span class="devsite-nav-text" tooltip>Developer Policies</span></a></li> <li class="devsite-nav-item"><a href="/youtube/terms/required-minimum-functionality" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /youtube/terms/required-minimum-functionality" track-type="bookNav" track-name="click" track-metadata-eventdetail="/youtube/terms/required-minimum-functionality" ><span class="devsite-nav-text" tooltip>Required Minimum Functionality</span></a></li> <li class="devsite-nav-item"><a href="/youtube/terms/subject-api-services" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /youtube/terms/subject-api-services" track-type="bookNav" track-name="click" track-metadata-eventdetail="/youtube/terms/subject-api-services" ><span class="devsite-nav-text" tooltip>Subject API Services</span></a></li> <li class="devsite-nav-item"><a href="/youtube/terms/branding-guidelines" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /youtube/terms/branding-guidelines" track-type="bookNav" track-name="click" track-metadata-eventdetail="/youtube/terms/branding-guidelines" ><span class="devsite-nav-text" tooltip>Branding Guidelines</span></a></li> <li class="devsite-nav-item"><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip></span> </div></li> <li class="devsite-nav-item"><a href="/youtube/terms/revision-history" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /youtube/terms/revision-history" track-type="bookNav" track-name="click" track-metadata-eventdetail="/youtube/terms/revision-history" ><span class="devsite-nav-text" tooltip>Revision History</span></a></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Guides</span> </div></li> <li class="devsite-nav-item"><a href="/youtube/terms/developer-policies-guide" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /youtube/terms/developer-policies-guide" track-type="bookNav" track-name="click" track-metadata-eventdetail="/youtube/terms/developer-policies-guide" ><span class="devsite-nav-text" tooltip>Complying with the YouTube Developer Policies</span></a></li> </ul> </div> </div> </nav> </devsite-book-nav> <section id="gc-wrapper"> <main role="main" class="devsite-main-content" has-book-nav > <devsite-content> <article class="devsite-article"> <div class="devsite-article-meta nocontent" role="navigation"> <ul class="devsite-breadcrumb-list" aria-label="Breadcrumb"> <li class="devsite-breadcrumb-item "> <a href="https://developers.google.com/" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail="" > Home </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://developers.google.com/products" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="2" track-type="globalNav" track-name="breadcrumb" track-metadata-position="2" track-metadata-eventdetail="" > Products </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://developers.google.com/youtube" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="3" track-type="globalNav" track-name="breadcrumb" track-metadata-position="3" track-metadata-eventdetail="YouTube" > YouTube </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://developers.google.com/youtube/terms/api-services-terms-of-service" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="4" track-type="globalNav" track-name="breadcrumb" track-metadata-position="4" track-metadata-eventdetail="" > Terms </a> </li> </ul> <devsite-thumb-rating position="header"> </devsite-thumb-rating> </div> <h1 class="devsite-page-title" tabindex="-1"> Complying with YouTube&#39;s Developer Policies </h1> <devsite-feature-tooltip ack-key="AckCollectionsBookmarkTooltipDismiss" analytics-category="Site-Wide Custom Events" analytics-action-show="Callout Profile displayed" analytics-action-close="Callout Profile dismissed" analytics-label="Create Collection Callout" class="devsite-page-bookmark-tooltip nocontent" dismiss-button="true" id="devsite-collections-dropdown" dismiss-button-text="Dismiss" close-button-text="Got it"> <devsite-bookmark></devsite-bookmark> <span slot="popout-heading"> Stay organized with collections </span> <span slot="popout-contents"> Save and categorize content based on your preferences. </span> </devsite-feature-tooltip> <div class="devsite-page-title-meta"><devsite-view-release-notes></devsite-view-release-notes></div> <devsite-toc class="devsite-nav" depth="2" devsite-toc-embedded > </devsite-toc> <div class="devsite-article-body clearfix "> <p>If you use YouTube&#39;s API services, you must adhere to our:</p> <ul> <li><a href="/youtube/terms/developer-policies">Developer Policies</a></li> <li><a href="https://support.google.com/youtube/answer/9142671">Content Manager Policies</a></li> <li><a href="https://developers.google.com/youtube/terms/api-services-terms-of-service">YouTube API Services Terms of Service</a></li> <li><a href="https://www.youtube.com/about/policies/#community-guidelines">Community Guidelines</a></li> </ul> <p>As a developer, you must familiarize yourself with these policies. This article provides examples that provide additional clarifications about specific policies, and answers some frequently asked questions.</p> <aside class="note"><strong>Note:</strong><span> Violating any of these policies may result in reduction of your API quota, revoking your API keys and their associated privileges, or other actions, including termination of the Google account associated with the API service found to be in violation.</span></aside> <p>If, after reviewing this article and the policies linked to above, you’re unsure whether your service is allowed, please apply for an <a href="https://support.google.com/youtube/contact/yt_api_form">API Compliance Audit</a>, and include a clear summary that mentions any end users in the audit form.</p> <h2 id="respect_user_privacy" data-text="Respect user privacy." tabindex="-1">Respect user privacy.</h2> <p><strong>What this means:</strong> Don’t violate user privacy, harvest user data, or use the API to surveil users. Your app must have a privacy policy that protects users and complies with Google’s <a href="https://policies.google.com/privacy">privacy policies</a>. Once you have a user’s permission to access or store their data, that user must continue to have control over what happens to that data. You need to make it easy for users to request deletion of their personal data. More information can be found <a href="/youtube/terms/developer-policies#a.-api-client-terms-of-use-and-privacy-policies">here</a>.</p> <h3 id="examples" data-text="Examples" tabindex="-1">Examples</h3> <p><strong>Don’t use YouTube’s API to:</strong></p> <ul> <li>Harvest, track, infer, derive or store information that can be used to identify a user without their consent. Examples include (this is not a complete list): <ul> <li>Full names or usernames</li> <li>Passwords</li> <li>Facial recognition data</li> <li>Contact information including email or phone number</li> <li>Online activity such as browsing history <ul> <li>Example: Using YouTube’s API to create an app that tracks a user’s viewing history, location or browsing habits without their knowledge or consent.</li> </ul></li> <li>Harvest, track, infer, derive or store the following about a user without their consent. Examples include (this is not a complete list): <ul> <li>Health information</li> <li>Gender identity</li> <li>Sexual orientation</li> <li>Political affiliation</li> <li>Religious affiliation or belief</li> <li>Race or ethnicity</li> <li>Immigration status</li> <li>Financial status</li> <li>Criminal history</li> <li>Trade union membership or organization</li> </ul></li> <li>Facilitate surveillance -- for example, tracking their location, browsing history or other online activity without their consent.</li> <li>Restrict, filter, or prohibit a user’s access to content on YouTube without their knowledge or consent.</li> <li>Allow any unauthorized third parties to access, use, or download any data noted here.</li> <li>Store a user’s information indefinitely. If a user requests that you delete their data or if you’re unable to verify their authorization, you must do so within 30 days.</li> <li>Use, request, or store a user’s login credentials (username and password)</li> </ul></li> </ul> <h2 id="only_offer_metrics_that_are_available_via_youtube’s_api_services" data-text="Only offer metrics that are available via YouTube’s API services." tabindex="-1">Only offer metrics that are available via YouTube’s API services.</h2> <p><strong>What this means:</strong> Don’t use YouTube’s API to offer independently calculated or derived metrics or data that replace or provide new data that isn’t available via YouTube’s API services. More information can be found <a href="/youtube/terms/developer-policies#e.-handling-youtube-data-and-content">here</a>.</p> <h3 id="examples_2" data-text="Examples" tabindex="-1">Examples</h3> <p><strong>Don’t use YouTube’s API to:</strong></p> <ul> <li>Display metrics that replace those offered by YouTube’s API services.</li> <li>Display metrics that inaccurately reflect those offered by YouTube’s API services.</li> <li>Combine data from YouTube’s API with data from other sources. If you provide data that is derived from sources other than YouTube’s API alongside data that you get from YouTube’s API, you must make the difference clear to the user. <ul> <li><strong>Example:</strong> Providing a &quot;user engagement&quot; metric that includes engagement from YouTube in combination with other platforms.</li> </ul></li> <li>Display data from YouTube next to data from other platforms without clarifying the difference between the types and sources of data.</li> <li>Compile or aggregate authorized API data unless you are making the compiled API data viewable ONLY to the content or channel owner or one of their authorized representatives.</li> <li>Gain insights into the number of users, number of videos uploaded, watch time, financial performance, or any other aspect of YouTube’s business.</li> <li>Make any claims on whether a video or channel is safe or suitable to watch or advertise against.</li> <li>Estimate the watch time or unique reach of a channel or video.</li> <li>Estimate the number of paid views, sponsored views, or average advertising CPM of a video.</li> <li>Estimate audience affinities, demographics, or audience composition of a channel or video.</li> <li>Infer or estimate the content category/type of a video or channel; you may only use the content type returned by the YouTube API.</li> <li>Estimate the monetization status of a video or channel, or make claims on whether a video or channel should be monetized.</li> <li>Merge or combine YouTube API data with any other data.</li> <li>Return information like the total number of video views and offer a number different from the number provided by YouTube’s API.</li> <li>Infer or project financial performance of a YouTube channel.</li> <li>Gamify channel performance by ranking or tracking views between different channels, or generally stoking creator rivalries.</li> <li>Estimate viewer satisfaction or dissatisfaction with a particular YouTube channel.</li> <li>Calculate and assign custom &quot;scores&quot; to channels based on independently calculated averages or ratios -- for example, average view count, comment count, or overall brand suitability.</li> </ul> <h3 id="acceptable_metrics" data-text="Acceptable metrics" tabindex="-1">Acceptable metrics</h3> <p>Acceptable metrics are those that use only YouTube API data and combine them via simple mathematical calculations (combine them via addition, subtraction, averages, multiplication, division). These metrics must not incorporate any other external data sources. This allows us to ensure that the represented data is accurate.</p> <p><strong>Examples</strong></p> <ul> <li>Average daily views in a month</li> <li>Average video duration</li> <li>Number of subscribers gained or lost</li> <li>Average number of new subscribers in a month</li> <li>Total views in a group of videos/channels</li> <li>Top viewed videos/channels sorted by views, likes/dislikes, subscribers</li> <li>Graphs visualizing raw metrics, e.g: increase in views, subscribers, likes/dislikes</li> </ul> <h2 id="your_api_service_must_reflect_a_user’s_standard_experience_on_youtube" data-text="Your API service must reflect a user’s standard experience on YouTube." tabindex="-1">Your API service must reflect a user’s standard experience on YouTube.</h2> <p><strong>What this means:</strong> Any service using the YouTube API can’t diminish or remove features that are part of a user’s standard experience on YouTube, such as captions, volume controls, etc. More information can be found <a href="/youtube/terms/developer-policies#f.-user-experience">here</a>.</p> <h3 id="examples_3" data-text="Examples" tabindex="-1">Examples</h3> <p><strong>Don’t use YouTube’s API to:</strong></p> <ul> <li>Modify, add to or block the standard playback function of the YouTube video player. Some examples include: <ul> <li>Blocking a link that would normally appear in the YouTube player from appearing in your application.</li> <li>Disabling or blocking Related Video links from appearing after the video completes.</li> <li>Removing or altering the video metadata. In general, video metadata such as thumbnail and title must be visible to the viewer and unmodified. The video thumbnail must not be altered. <ul> <li><strong>Note:</strong> Custom play buttons over the YouTube thumbnail are acceptable, but tapping must initiate playback.</li> </ul></li> <li>Links must open in the YouTube application whenever the application is available on a user’s device, or if not installed, via the system web browser.</li> <li>Blocking the standard features of a YouTube player (like the settings wheel) from appearing in your API service.</li> <li>Overriding the platform-specific rendering of the YouTube video player. <ul> <li><strong>Example:</strong> Mobile optimized UI must appear on mobile apps and devices.</li> </ul></li> <li>Restricting ads from playing in your API service when they would otherwise play on YouTube or in an embedded video.</li> <li><strong>Note:</strong> Overlays for the purposes of obtaining user consent or playback controls (e.g. mute, full screen, play, pause, etc.) are acceptable so long as they do not conflict with the YouTube player UI elements.</li> </ul></li> <li>Restrict YouTube’s ability to verify from where the playback occurs. <ul> <li><strong>Example:</strong> In the case of mobile applications using a WebView to host the YouTube IFrame SDK web player, failing to accurately represent the name of your application (e.g. com.company.appname) accurately as HTTP Referer header.</li> <li><strong>Example:</strong> Interfering with other playback context information necessary for view verification (including cookies) being sent to YouTube. <ul> <li>For privacy sensitive developers who deem it necessary, a user consent flow with link to Google’s Privacy Policy is acceptable.</li> </ul></li> </ul></li> <li>Apply any restrictions or block access to a user watching a video. If a user has to do anything besides clicking the play button, there’s a good chance that you’re violating this policy. An example includes: <ul> <li><strong>Example:</strong> Restricting access to a video by requiring a user to complete a survey, download an app, subscribe to a channel, share a video on a social media platform, leave comments, or do anything other than click the &quot;Play&quot; button in order to watch a video they chose to watch.</li> </ul></li> <li>Incentivize, reward, coerce, or provide compensation to users for watching a video. A user’s decision to watch a video needs to be their own choice. <ul> <li><strong>Example:</strong> Offering the chance to win a prize or offering financial compensation in exchange for a user watching a video through your API service.</li> </ul></li> <li>Block, modify or replace advertisements that play through the YouTube API service.</li> <li>Allow users to download videos for offline play outside of the YT Premium experience.</li> <li>Offer users the ability to download or separate audio tracks or allow users to modify the audio or video portions of a video. <ul> <li><strong>Example:</strong> Using YouTube’s API to separate or isolate video or audio components from a video. This might include an API service that offers mp3 files of audio that appeared in a video and promotes themselves in this context.</li> </ul></li> <li>Allow for background play of the YouTube video player. <ul> <li><strong>Example:</strong> Using YouTube’s API to allow videos to play even when your API service window is closed or minimized.</li> </ul></li> </ul> <h2 id="your_api_service_must_add_sufficient_independent_value" data-text="Your API service must add sufficient independent value." tabindex="-1">Your API service must add sufficient independent value.</h2> <p><strong>What this means:</strong> Don’t use our API to re-create YouTube (e.g. don’t clone, mimic, modify, or reduce standard YouTube features). If your API service mimics any of YouTube’s user experiences, it must add sufficient independent value. Independent value means providing users with added functionality that is not available via the YouTube API today or was not available at the time of API access request, and is otherwise compliant with YouTube’s TOS. More information can be found <a href="/youtube/terms/developer-policies#i.-additional-prohibitions">here</a>.</p> <h3 id="examples_4" data-text="Examples" tabindex="-1">Examples</h3> <p>If your API service mimics any of YouTube’s user experiences, users need to have a reason to continue to engage with or utilize your API service when you take away what you are getting by accessing YouTube’s API services. You also cannot charge people a fee for services that are offered free of charge on YouTube.</p> <ul> <li><strong>Example of what’s allowed:</strong> A Search engine that lists YouTube videos alongside videos available on other platforms while clearly distinguishing them from what’s on YouTube is a good example of an API service that provides independent value.</li> <li><strong>Example of what’s allowed:</strong> An API service that provides YouTube video captioning services for the hearing impaired is a good example of providing independent value.</li> <li>Don’t use YouTube’s API to create websites or apps or display video search results that make it difficult to distinguish between your website or app and websites or apps created by YouTube. <ul> <li><strong>Example:</strong> Using YouTube’s API to mass aggregate embedded videos, creating an identical copy of YouTube. If a user is likely to mistake your site for YouTube’s, there’s a good chance it violates our TOS. </li> </ul></li> </ul> <h2 id="don’t_allow_users_to_circumvent_youtube_restrictions_or_violate_our_community_guidelines" data-text="Don’t allow users to circumvent YouTube restrictions, or violate our Community Guidelines." tabindex="-1">Don’t allow users to circumvent YouTube restrictions, or violate our Community Guidelines.</h2> <p><strong>What this means:</strong> Your service can’t be specifically designed to allow you or your users to get around restrictions YouTube places on their channel. Your API service also can’t let users do activities that violate our <a href="https://www.youtube.com/about/policies/#community-guidelines">community guidelines</a>, <a href="https://www.youtube.com/t/terms">Terms of Service</a>, or YouTube Partner Program. If you use YouTube’s API to allow users to upload videos, you must have them certify that their content complies with the community guidelines. Videos are subject to removal if found to be violative. Your service can also be subject to penalties if it encourages or incites violative behavior. More information can be found <a href="/youtube/terms/api-services-terms-of-service#notices-to-users">here</a>.</p> <h2 id="don’t_spread_api_access_across_multiple_or_unknown_projects" data-text="Don’t spread API access across multiple or unknown projects." tabindex="-1">Don’t spread API access across multiple or unknown projects.</h2> <p><strong>What this means:</strong> You can’t create multiple apps/sites or create multiple Google Cloud projects for use across multiple apps/sites to artificially acquire more API quota (aka &quot;sharding&quot;) for a single API service or use case. &quot;Use case&quot; is defined as a consistent set of analyses, features, or actions performed via a service. Requests for API quota increase must follow our standard <a href="https://support.google.com/youtube/contact/yt_api_form">process</a>. An application’s developer team is allowed to have separate API keys for test, dev, and prod environments. More information can be found <a href="/youtube/terms/developer-policies#d.-accessing-youtube-api-services">here</a>.</p> <h3 id="examples_5" data-text="Examples" tabindex="-1">Examples</h3> <ul> <li>Don’t create multiple Google Cloud projects for the same API service or use case in an attempt to deceptively acquire an API quota that is higher than the one your project was assigned.</li> <li>It is acceptable to have a separate API Project for each different use case of your API service. Examples include: <ul> <li>One API project for your iOS app, a separate API Project for your Android app.</li> <li>One API project for a production server, one for a development server.</li> <li>One API project for your user-facing API service, one API project for internal system analytics.</li> </ul></li> </ul> </div> <devsite-recommendations display="in-page" hidden yield> </devsite-recommendations> <devsite-thumb-rating position="footer"> </devsite-thumb-rating> <devsite-recommendations id="recommendations-link" yield></devsite-recommendations> <div class="devsite-floating-action-buttons"> </div> </article> <devsite-content-footer class="nocontent"> <p>Except as otherwise noted, the content of this page is licensed under the <a href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 License</a>, and code samples are licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache 2.0 License</a>. For details, see the <a href="https://developers.google.com/site-policies">Google Developers Site Policies</a>. Java is a registered trademark of Oracle and/or its affiliates.</p> <p>Last updated 2022-11-04 UTC.</p> </devsite-content-footer> <devsite-notification > </devsite-notification> <div class="devsite-content-data"> <template class="devsite-content-data-template"> [[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2022-11-04 UTC."],[],[]] </template> </div> </devsite-content> </main> <devsite-footer-promos class="devsite-footer"> <nav class="devsite-footer-promos nocontent" aria-label="Promotions"> <ul class="devsite-footer-promos-list"> <li class="devsite-footer-promo"> <a href="https://blog.youtube" class="devsite-footer-promo-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Promo Link (index 1)" > <picture> <img class="devsite-footer-promo-icon" src="/static/site-assets/logo-youtube.svg" loading="lazy" alt="Blog"> </picture> <span class="devsite-footer-promo-label"> Blog </span> </a> <div class="devsite-footer-promo-description">The latest news on the YouTube blog</div> </li> <li class="devsite-footer-promo"> <a href="https://github.com/youtube/api-samples" class="devsite-footer-promo-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Promo Link (index 2)" > <picture> <img class="devsite-footer-promo-icon" src="/static/site-assets/logo-github.svg" loading="lazy" alt="GitHub"> </picture> <span class="devsite-footer-promo-label"> GitHub </span> </a> <div class="devsite-footer-promo-description">Find API code samples and other YouTube open-source projects.</div> </li> <li class="devsite-footer-promo"> <a href="https://issuetracker.google.com/issues/new?component=186600&amp;template=874803" class="devsite-footer-promo-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Promo Link (index 3)" > <picture> <img class="devsite-footer-promo-icon" src="/static/site-assets/developers_64dp.png" loading="lazy" alt="Issue Tracker"> </picture> <span class="devsite-footer-promo-label"> Issue Tracker </span> </a> <div class="devsite-footer-promo-description">Something wrong? Send us a bug report!</div> </li> <li class="devsite-footer-promo"> <a href="http://stackoverflow.com/questions/ask?tags=youtube-api" class="devsite-footer-promo-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Promo Link (index 4)" > <picture> <img class="devsite-footer-promo-icon" src="/static/site-assets/logo-stack-overflow.svg" loading="lazy" alt="Stack Overflow"> </picture> <span class="devsite-footer-promo-label"> Stack Overflow </span> </a> <div class="devsite-footer-promo-description">Ask a question under the youtube-api tag</div> </li> <li class="devsite-footer-promo"> <a href="https://research.youtube/" class="devsite-footer-promo-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Promo Link (index 5)" > <picture> <img class="devsite-footer-promo-icon" src="/static/site-assets/logo-youtube.svg" loading="lazy" alt="YouTube Researcher Program"> </picture> <span class="devsite-footer-promo-label"> YouTube Researcher Program </span> </a> <div class="devsite-footer-promo-description">For researchers interested in using data from YouTube’s global API</div> </li> </ul> </nav> </devsite-footer-promos> <devsite-footer-linkboxes class="devsite-footer"> <nav class="devsite-footer-linkboxes nocontent" aria-label="Footer links"> <ul class="devsite-footer-linkboxes-list"> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Tools</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="https://developers.google.com/apis-explorer/#p/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" > Google APIs Explorer </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/youtube/youtube_player_demo" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" > YouTube Player Demo </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/youtube/youtube_subscribe_button" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)" > Configure a Subscribe Button </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Issue Tracker</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="https://issuetracker.google.com/issues/new?component=186600&amp;template=874803" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" > File a bug </a> </li> <li class="devsite-footer-linkbox-item"> <a href="https://issuetracker.google.com/issues/new?component=186600&amp;template=874803" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" > Request a feature </a> </li> <li class="devsite-footer-linkbox-item"> <a href="https://issuetracker.google.com/issues?q=componentid:186600" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)" > See open issues </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Product Info</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="/youtube/terms/api-services-terms-of-service" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" > Terms of Service </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/youtube/terms/developer-policies" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" > Developer Policies </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/youtube/terms/required-minimum-functionality" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)" > Required Minimum Functionality </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/youtube/terms/branding-guidelines" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)" > Branding Guidelines </a> </li> </ul> </li> </ul> </nav> </devsite-footer-linkboxes> <devsite-footer-utility class="devsite-footer"> <div class="devsite-footer-utility nocontent"> <nav class="devsite-footer-sites" aria-label="Other Google Developers websites"> <a href="https://developers.google.com/" class="devsite-footer-sites-logo-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Google Developers Link"> <picture> <img class="devsite-footer-sites-logo" src="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/developers/images/lockup-google-for-developers.svg" loading="lazy" alt="Google Developers"> </picture> </a> <ul class="devsite-footer-sites-list"> <li class="devsite-footer-sites-item"> <a href="//developer.android.com" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Android Link" > Android </a> </li> <li class="devsite-footer-sites-item"> <a href="//developer.chrome.com/home" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Chrome Link" > Chrome </a> </li> <li class="devsite-footer-sites-item"> <a href="//firebase.google.com" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Firebase Link" > Firebase </a> </li> <li class="devsite-footer-sites-item"> <a href="//cloud.google.com" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Google Cloud Platform Link" > Google Cloud Platform </a> </li> <li class="devsite-footer-sites-item"> <a href="//ai.google.dev/" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Google AI Link" > Google AI </a> </li> <li class="devsite-footer-sites-item"> <a href="/products" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer All products Link" > All products </a> </li> </ul> </nav> <nav class="devsite-footer-utility-links" aria-label="Utility links"> <ul class="devsite-footer-utility-list"> <li class="devsite-footer-utility-item "> <a class="devsite-footer-utility-link gc-analytics-event" href="/terms/site-terms" data-category="Site-Wide Custom Events" data-label="Footer Terms link" > Terms </a> </li> <li class="devsite-footer-utility-item "> <a class="devsite-footer-utility-link gc-analytics-event" href="//policies.google.com/privacy" data-category="Site-Wide Custom Events" data-label="Footer Privacy link" > Privacy </a> </li> <li class="devsite-footer-utility-item glue-cookie-notification-bar-control"> <a class="devsite-footer-utility-link gc-analytics-event" href="#" data-category="Site-Wide Custom Events" data-label="Footer Manage cookies link" aria-hidden="true" > Manage cookies </a> </li> <li class="devsite-footer-utility-item devsite-footer-utility-button"> <span class="devsite-footer-utility-description">Sign up for the Google for Developers newsletter</span> <a class="devsite-footer-utility-link gc-analytics-event" href="/newsletter/subscribe" data-category="Site-Wide Custom Events" data-label="Footer Subscribe link" > Subscribe </a> </li> </ul> <devsite-language-selector> <ul role="presentation"> <li role="presentation"> <a role="menuitem" lang="en" >English</a> </li> <li role="presentation"> <a role="menuitem" lang="de" >Deutsch</a> </li> <li role="presentation"> <a role="menuitem" lang="es" >Español</a> </li> <li role="presentation"> <a role="menuitem" lang="es_419" >Español – América Latina</a> </li> <li role="presentation"> <a role="menuitem" lang="fr" >Français</a> </li> <li role="presentation"> <a role="menuitem" lang="id" >Indonesia</a> </li> <li role="presentation"> <a role="menuitem" lang="it" >Italiano</a> </li> <li role="presentation"> <a role="menuitem" lang="pl" >Polski</a> </li> <li role="presentation"> <a role="menuitem" lang="pt_br" >Português – Brasil</a> </li> <li role="presentation"> <a role="menuitem" lang="vi" >Tiếng Việt</a> </li> <li role="presentation"> <a role="menuitem" lang="tr" >Türkçe</a> </li> <li role="presentation"> <a role="menuitem" lang="ru" >Русский</a> </li> <li role="presentation"> <a role="menuitem" lang="he" >עברית</a> </li> <li role="presentation"> <a role="menuitem" lang="ar" >العربيّة</a> </li> <li role="presentation"> <a role="menuitem" lang="fa" >فارسی</a> </li> <li role="presentation"> <a role="menuitem" lang="hi" >हिंदी</a> </li> <li role="presentation"> <a role="menuitem" lang="bn" >বাংলা</a> </li> <li role="presentation"> <a role="menuitem" lang="th" >ภาษาไทย</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_cn" >中文 – 简体</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_tw" >中文 – 繁體</a> </li> <li role="presentation"> <a role="menuitem" lang="ja" >日本語</a> </li> <li role="presentation"> <a role="menuitem" lang="ko" >한국어</a> </li> </ul> </devsite-language-selector> </nav> </div> </devsite-footer-utility> <devsite-panel></devsite-panel> <devsite-concierge data-info-panel data-ai-panel data-api-explorer-panel > </devsite-concierge> </section></section> <devsite-sitemask></devsite-sitemask> <devsite-snackbar></devsite-snackbar> <devsite-tooltip ></devsite-tooltip> <devsite-heading-link></devsite-heading-link> <devsite-analytics> <script type="application/json" analytics>[{&#34;dimensions&#34;: {&#34;dimension11&#34;: false, &#34;dimension1&#34;: &#34;Signed out&#34;, &#34;dimension6&#34;: &#34;en&#34;, &#34;dimension5&#34;: &#34;en&#34;, &#34;dimension3&#34;: false, &#34;dimension4&#34;: &#34;YouTube&#34;}, &#34;gaid&#34;: &#34;UA-24532603-1&#34;, &#34;metrics&#34;: {&#34;ratings_count&#34;: &#34;metric2&#34;, &#34;ratings_value&#34;: &#34;metric1&#34;}, &#34;purpose&#34;: 1}]</script> <script type="application/json" tag-management>{&#34;at&#34;: &#34;True&#34;, &#34;ga4&#34;: [{&#34;id&#34;: &#34;G-272J68FCRF&#34;, &#34;purpose&#34;: 1}], &#34;ga4p&#34;: [{&#34;id&#34;: &#34;G-272J68FCRF&#34;, &#34;purpose&#34;: 1}], &#34;gtm&#34;: [], &#34;parameters&#34;: {&#34;internalUser&#34;: &#34;False&#34;, &#34;language&#34;: {&#34;machineTranslated&#34;: &#34;False&#34;, &#34;requested&#34;: &#34;en&#34;, &#34;served&#34;: &#34;en&#34;}, &#34;pageType&#34;: &#34;article&#34;, &#34;projectName&#34;: &#34;YouTube&#34;, &#34;signedIn&#34;: &#34;False&#34;, &#34;tenant&#34;: &#34;developers&#34;, &#34;recommendations&#34;: {&#34;sourcePage&#34;: &#34;&#34;, &#34;sourceType&#34;: 0, &#34;sourceRank&#34;: 0, &#34;sourceIdenticalDescriptions&#34;: 0, &#34;sourceTitleWords&#34;: 0, &#34;sourceDescriptionWords&#34;: 0, &#34;experiment&#34;: &#34;&#34;}, &#34;experiment&#34;: {&#34;ids&#34;: &#34;&#34;}}}</script> </devsite-analytics> <devsite-badger></devsite-badger> <script nonce="N8wbC6JcAOkhrKXm2mATcbG64qM7z2"> (function(d,e,v,s,i,t,E){d['GoogleDevelopersObject']=i; t=e.createElement(v);t.async=1;t.src=s;E=e.getElementsByTagName(v)[0]; E.parentNode.insertBefore(t,E);})(window, document, 'script', 'https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/developers/js/app_loader.js', '[1,"en",null,"/js/devsite_app_module.js","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/developers","https://developers-dot-devsite-v2-prod.appspot.com",null,null,["/_pwa/developers/manifest.json","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/images/video-placeholder.svg","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/developers/images/favicon-new.png","https://fonts.googleapis.com/css?family=Google+Sans:400,500|Roboto:400,400italic,500,500italic,700,700italic|Roboto+Mono:400,500,700&display=swap"],1,null,[1,6,8,12,14,17,21,25,50,52,63,70,75,76,80,87,91,92,93,97,98,100,101,102,103,104,105,107,108,109,110,112,113,117,118,120,122,124,125,126,127,129,130,131,132,133,134,135,136,138,140,141,147,148,149,151,152,156,157,158,159,161,163,164,168,169,170,179,180,182,183,186,191,193,196],"AIzaSyAP-jjEJBzmIyKR4F-3XITp8yM9T1gEEI8","AIzaSyB6xiKGDR5O3Ak2okS4rLkauxGUG7XP0hg","developers.google.com","AIzaSyAQk0fBONSGUqCNznf6Krs82Ap1-NV6J4o","AIzaSyCCxcqdrZ_7QMeLCRY20bh_SXdAYqy70KY",null,null,null,["MiscFeatureFlags__enable_variable_operator","BookNav__enable_tenant_cache_key","Cloud__enable_cloud_shell_fte_user_flow","Profiles__enable_release_notes_notifications","CloudShell__cloud_code_overflow_menu","Cloud__enable_cloudx_experiment_ids","Profiles__enable_recognition_badges","Concierge__enable_concierge_restricted","Profiles__enable_developer_profiles_callout","Profiles__enable_dashboard_curated_recommendations","Experiments__reqs_query_experiments","MiscFeatureFlags__emergency_css","Cloud__enable_cloudx_ping","MiscFeatureFlags__enable_project_variables","CloudShell__cloud_shell_button","TpcFeatures__enable_mirror_tenant_redirects","Profiles__enable_profile_collections","Analytics__enable_clearcut_logging","Cloud__enable_cloud_dlp_service","Profiles__enable_awarding_url","Concierge__enable_concierge","Cloud__enable_cloud_shell","Search__enable_ai_search_summaries","Search__enable_ai_eligibility_checks","Concierge__enable_pushui","Profiles__require_profile_eligibility_for_signin","Cloud__enable_cloud_facet_chat","Search__enable_ai_search_summaries_restricted","Profiles__enable_completecodelab_endpoint","Search__enable_dynamic_content_confidential_banner","Search__enable_suggestions_from_borg","MiscFeatureFlags__developers_footer_image","Profiles__enable_public_developer_profiles","Profiles__enable_page_saving","Search__enable_page_map","Profiles__enable_complete_playlist_endpoint","MiscFeatureFlags__enable_firebase_utm","DevPro__enable_cloud_innovators_plus","MiscFeatureFlags__enable_explain_this_code","Cloud__enable_llm_concierge_chat","DevPro__enable_developer_subscriptions","MiscFeatureFlags__enable_view_transitions","TpcFeatures__enable_required_headers","Significatio__enable_by_tenant","Cloud__enable_free_trial_server_call","EngEduTelemetry__enable_engedu_telemetry","MiscFeatureFlags__developers_footer_dark_image","Cloud__enable_legacy_calculator_redirect"],null,null,"AIzaSyBLEMok-5suZ67qRPzx0qUtbnLmyT_kCVE","https://developerscontentserving-pa.clients6.google.com","AIzaSyCM4QpTRSqP5qI4Dvjt4OAScIN8sOUlO-k","https://developerscontentsearch-pa.clients6.google.com",1,4,null,"https://developerprofiles-pa.clients6.google.com",[1,"developers","Google for Developers","developers.google.com",null,"developers-dot-devsite-v2-prod.appspot.com",null,null,[1,1,[1],null,null,null,null,null,null,null,null,[1],null,null,null,null,null,null,[1],[1,null,null,[1,20],"/recommendations/information"],null,null,null,[1,1,1],[1,1,null,1,1]],null,[null,null,null,null,null,null,"/images/lockup-new.svg","/images/touchicon-180-new.png",null,null,null,null,1,null,null,null,null,null,null,null,null,1,null,null,null,"/images/lockup-dark-theme-new.svg",[]],[],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[6,1,14,15,20,22,23,29,32,36],null,[[null,null,null,[3,7,10,2,39,17,4,32,24,11,12,13,34,15,25],null,null,[1,[["docType","Choose a content type",[["Tutorial",null,null,null,null,null,null,null,null,"Tutorial"],["Guide",null,null,null,null,null,null,null,null,"Guide"],["Sample",null,null,null,null,null,null,null,null,"Sample"]]],["product","Choose a product",[["Android",null,null,null,null,null,null,null,null,"Android"],["ARCore",null,null,null,null,null,null,null,null,"ARCore"],["ChromeOS",null,null,null,null,null,null,null,null,"ChromeOS"],["Firebase",null,null,null,null,null,null,null,null,"Firebase"],["Flutter",null,null,null,null,null,null,null,null,"Flutter"],["Assistant",null,null,null,null,null,null,null,null,"Google Assistant"],["GoogleCloud",null,null,null,null,null,null,null,null,"Google Cloud"],["GoogleMapsPlatform",null,null,null,null,null,null,null,null,"Google Maps Platform"],["GooglePay",null,null,null,null,null,null,null,null,"Google Pay & Google Wallet"],["GooglePlay",null,null,null,null,null,null,null,null,"Google Play"],["Tensorflow",null,null,null,null,null,null,null,null,"TensorFlow"]]],["category","Choose a topic",[["AiAndMachineLearning",null,null,null,null,null,null,null,null,"AI and Machine Learning"],["Data",null,null,null,null,null,null,null,null,"Data"],["Enterprise",null,null,null,null,null,null,null,null,"Enterprise"],["Gaming",null,null,null,null,null,null,null,null,"Gaming"],["Mobile",null,null,null,null,null,null,null,null,"Mobile"],["Web",null,null,null,null,null,null,null,null,"Web"]]]]]],[1,1],null,1],[[["UA-24532603-1"],["UA-22084204-5"],null,null,["UA-24532603-5"],null,null,[["G-272J68FCRF"],null,null,[["G-272J68FCRF",2]]],[["UA-24532603-1",2]],null,[["UA-24532603-5",2]],null,1],[[6,5],[1,1],[16,13],[12,9],[13,10],[5,4],[3,2],[11,8],[14,11],[15,12],[4,3]],[[1,1],[2,2]]],null,4,null,null,null,null,null,null,null,null,null,null,null,null,null,"developers.devsite.google"],null,"pk_live_5170syrHvgGVmSx9sBrnWtA5luvk9BwnVcvIi7HizpwauFG96WedXsuXh790rtij9AmGllqPtMLfhe2RSwD6Pn38V00uBCydV4m"]') </script> <devsite-a11y-announce></devsite-a11y-announce> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10