CINXE.COM
YouTube API Services - Required Minimum Functionality | Google Developers
<!doctype html> <html lang="en" dir="ltr"> <head><script type="text/javascript" src="/_static/js/bundle-playback.js?v=HxkREWBo" charset="utf-8"></script> <script type="text/javascript" src="/_static/js/wombat.js?v=txqj7nKC" charset="utf-8"></script> <script>window.RufflePlayer=window.RufflePlayer||{};window.RufflePlayer.config={"autoplay":"on","unmuteOverlay":"hidden"};</script> <script type="text/javascript" src="/_static/js/ruffle/ruffle.js"></script> <script type="text/javascript"> __wm.init("https://web.archive.org/web"); __wm.wombat("https://developers.google.com/youtube/terms/required-minimum-functionality","20220315060001","https://web.archive.org/","web","/_static/", "1647324001"); </script> <link rel="stylesheet" type="text/css" href="/_static/css/banner-styles.css?v=S1zqJCYt" /> <link rel="stylesheet" type="text/css" href="/_static/css/iconochive.css?v=3PDvdIFv" /> <!-- End Wayback Rewrite JS Include --> <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 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="/web/20220315060001/https://developers.google.com/_pwa/developers/manifest.json" crossorigin="use-credentials"> <link rel="preconnect" href="//web.archive.org/web/20220315060001/https://www.gstatic.com/" crossorigin> <link rel="preconnect" href="//web.archive.org/web/20220315060001/https://fonts.gstatic.com/" crossorigin> <link rel="preconnect" href="//web.archive.org/web/20220315060001/https://fonts.googleapis.com/" crossorigin> <link rel="preconnect" href="//web.archive.org/web/20220315060001/https://apis.google.com/" crossorigin> <link rel="preconnect" href="//web.archive.org/web/20220315060001/https://www.google-analytics.com/" crossorigin><link rel="stylesheet" href="//web.archive.org/web/20220315060001cs_/https://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="//web.archive.org/web/20220315060001cs_/https://fonts.googleapis.com/css?family=Material+Icons&display=block"><link rel="stylesheet" href="https://web.archive.org/web/20220315060001cs_/https://www.gstatic.com/devrel-devsite/prod/vea32910d5631902da7876bf3132bf2a23b4c6e7b82b4223c953da55851058027/developers/css/app.css"> <link rel="shortcut icon" href="https://web.archive.org/web/20220315060001im_/https://www.gstatic.com/devrel-devsite/prod/vea32910d5631902da7876bf3132bf2a23b4c6e7b82b4223c953da55851058027/developers/images/favicon.png"> <link rel="apple-touch-icon" href="https://web.archive.org/web/20220315060001im_/https://www.gstatic.com/devrel-devsite/prod/vea32910d5631902da7876bf3132bf2a23b4c6e7b82b4223c953da55851058027/developers/images/touchicon-180.png"><link rel="canonical" href="https://web.archive.org/web/20220315060001/https://developers.google.com/youtube/terms/required-minimum-functionality"><link rel="search" type="application/opensearchdescription+xml" title="Google Developers" href="https://web.archive.org/web/20220315060001/https://developers.google.com/s/opensearch.xml"> <title>YouTube API Services - Required Minimum Functionality | Google Developers</title> <meta property="og:title" content="YouTube API Services - Required Minimum Functionality | Google Developers"><meta property="og:url" content="https://web.archive.org/web/20220315060001/https://developers.google.com/youtube/terms/required-minimum-functionality"><meta property="og:image" content="https://web.archive.org/web/20220315060001im_/https://www.gstatic.com/devrel-devsite/prod/vea32910d5631902da7876bf3132bf2a23b4c6e7b82b4223c953da55851058027/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://web.archive.org/web/20220315060001/https://schema.org", "@type": "BreadcrumbList", "itemListElement": [{ "@type": "ListItem", "position": 1, "name": "YouTube", "item": "https://web.archive.org/web/20220315060001/https://developers.google.com/youtube" },{ "@type": "ListItem", "position": 2, "name": "YouTube API Services - Required Minimum Functionality", "item": "https://web.archive.org/web/20220315060001/https://developers.google.com/youtube/terms/required-minimum-functionality" }] } </script> </head> <body class="" template="page" theme="youtube-theme" type="article" layout="docs" pending> <devsite-progress type="indeterminate" id="app-progress"></devsite-progress> <section class="devsite-wrapper"><devsite-header> <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://web.archive.org/web/20220315060001/https://developers.google.com/youtube"> <div class="devsite-product-logo-container" size="medium"> <img class="devsite-product-logo" alt="YouTube" src="https://web.archive.org/web/20220315060001im_/https://developers.google.com/site-assets/logo-youtube.svg" srcset="" sizes="64px" loading="lazy"> </div> </a> <span class="devsite-product-name"> <ul class="devsite-breadcrumb-list"> <li class="devsite-breadcrumb-item "> <a href="https://web.archive.org/web/20220315060001/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 aria-expanded="false" aria-haspopup="listbox" enable-signin enable-search enable-suggestions enable-query-completion project-name="YouTube" tenant-name="Google Developers" project-scope="/youtube" url-scoped="https://developers.google.com/s/results/youtube" role="combobox"> <form class="devsite-search-form" action="https://web.archive.org/web/20220315060001/https://developers.google.com/s/results" method="GET"> <div class="devsite-search-container"> <div class="devsite-searchbox"> <input aria-activedescendant="" aria-autocomplete="list" aria-label="Search" aria-haspopup="false" aria-multiline="false" aria-label="Search box" autocomplete="off" class="devsite-search-field devsite-search-query" name="q" placeholder="Search" role="searchbox" type="text" value=""> <div class="devsite-search-image material-icons" aria-hidden="true"></div> </div> <button type="button" search-open class="devsite-search-button devsite-header-icon-button button-flat material-icons" aria-label="Open search"></button> </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> <devsite-select class="devsite-language-selector-menu"> <select aria-label="Select your language preference." class="devsite-language-selector-select" name="language" track-name="click" track-type="languageSelector"> <option>Language</option> <option value="en" lang="en"> English </option> <option value="id" lang="id"> Bahasa Indonesia </option> <option value="de" lang="de"> Deutsch </option> <option value="es" lang="es"> Español </option> <option value="fr" lang="fr"> Français </option> <option value="pt_br" lang="pt_br"> Português – Brasil </option> <option value="ru" lang="ru"> Русский </option> <option value="zh_cn" lang="zh_cn"> 中文 – 简体 </option> <option value="ja" lang="ja"> 日本語 </option> <option value="ko" lang="ko"> 한국어 </option> </select> </devsite-select> </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://web.archive.org/web/20220315060001/https://developers.google.com/youtube" class="gc-analytics-event " track-type="nav" track-metadata-eventdetail="https://developers.google.com/youtube" 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://web.archive.org/web/20220315060001/https://developers.google.com/youtube/documentation" class="gc-analytics-event " track-type="nav" track-metadata-eventdetail="https://developers.google.com/youtube/documentation" 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://web.archive.org/web/20220315060001/https://developers.google.com/youtube/code_samples" class="gc-analytics-event " track-type="nav" track-metadata-eventdetail="https://developers.google.com/youtube/code_samples" 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 active> <a href="https://web.archive.org/web/20220315060001/https://developers.google.com/youtube/terms/api-services-terms-of-service" class="gc-analytics-event " track-type="nav" track-metadata-eventdetail="https://developers.google.com/youtube/terms/api-services-terms-of-service" 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 "> <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://web.archive.org/web/20220315060001/https://developers.google.com/youtube"> <div class="devsite-product-logo-container" size="medium"> <img class="devsite-product-logo" alt="YouTube" src="https://web.archive.org/web/20220315060001im_/https://developers.google.com/site-assets/logo-youtube.svg" srcset="" sizes="64px" loading="lazy"> </div> </a> <span class="devsite-product-name"> <ul class="devsite-breadcrumb-list"> <li class="devsite-breadcrumb-item "> <a href="https://web.archive.org/web/20220315060001/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="/web/20220315060001/https://developers.google.com/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="/web/20220315060001/https://developers.google.com/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="/web/20220315060001/https://developers.google.com/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="/web/20220315060001/https://developers.google.com/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" role="navigation"> <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="/web/20220315060001/https://developers.google.com/youtube/terms/api-services-terms-of-service" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Terms of Service (Americas)</span></a></li> <li class="devsite-nav-item"><a href="/web/20220315060001/https://developers.google.com/youtube/terms/api-services-terms-of-service-apac" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Terms of Service (APAC)</span></a></li> <li class="devsite-nav-item"><a href="/web/20220315060001/https://developers.google.com/youtube/terms/api-services-terms-of-service-emea" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Terms of Service (EMEA)</span></a></li> <li class="devsite-nav-item"><a href="/web/20220315060001/https://developers.google.com/youtube/terms/api-services-terms-of-service-ru" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Terms of Service (Russia)</span></a></li> <li class="devsite-nav-item"><a href="/web/20220315060001/https://developers.google.com/youtube/terms/developer-policies" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Developer Policies</span></a></li> <li class="devsite-nav-item"><a href="/web/20220315060001/https://developers.google.com/youtube/terms/required-minimum-functionality" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Required Minimum Functionality</span></a></li> <li class="devsite-nav-item"><a href="/web/20220315060001/https://developers.google.com/youtube/terms/subject-api-services" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Subject API Services</span></a></li> <li class="devsite-nav-item"><a href="/web/20220315060001/https://developers.google.com/youtube/terms/branding-guidelines" class="devsite-nav-title"><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="/web/20220315060001/https://developers.google.com/youtube/terms/revision-history" class="devsite-nav-title"><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="/web/20220315060001/https://developers.google.com/youtube/terms/developer-policies-guide" class="devsite-nav-title"><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 has-sidebar> <div class="devsite-sidebar"> <div class="devsite-sidebar-content"> <devsite-toc class="devsite-nav" role="navigation" aria-label="On this page" depth="2" scrollbars></devsite-toc> <devsite-recommendations-sidebar class="nocontent devsite-nav"> </devsite-recommendations-sidebar> </div> </div> <devsite-content> <article class="devsite-article"> <div class="devsite-banner devsite-banner-announcement"> <div class="devsite-banner-message"> <div class="devsite-banner-message-text"> <style> .devsite-banner-announcement:not(.devsite-banner-tenant) { background: #202124; color: white; font-weight: 500; } .devsite-banner-announcement a { color: white; font-weight: 700; } .devsite-banner-announcement a:link:not(.button), .devsite-banner-announcement a:visited:not(.button) { background: 0; } .devsite-banner-announcement a:hover, .devsite-banner-announcement a:focus { text-decoration: none; } .devsite-banner-announcement .devsite-banner-message-text { margin: 0 auto; } </style> <span class="nocontent"> Google is committed to advancing racial equity for Black communities. </span> <a href="https://web.archive.org/web/20220315060001/https://google.com/racialequity" class="gc-analytics-event nocontent" data-category="Announcement" data-label="Racial Equity">See how.</a> </div> </div> </div> <div class="devsite-article-meta nocontent" role="navigation"> <ul class="devsite-breadcrumb-list" aria-label="Breadcrumb"> <li class="devsite-breadcrumb-item "> <a href="https://web.archive.org/web/20220315060001/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://web.archive.org/web/20220315060001/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://web.archive.org/web/20220315060001/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://web.archive.org/web/20220315060001/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">YouTube API Services - Required Minimum Functionality</h1> <devsite-bookmark></devsite-bookmark> <devsite-toc class="devsite-nav" depth="2" devsite-toc-embedded> </devsite-toc> <devsite-recommendations-dropdown class="nocontent"></devsite-recommendations-dropdown> <div class="devsite-article-body clearfix "> <p class="note"><b>Note:</b> The new <a href="/web/20220315060001/https://developers.google.com/youtube/terms/developer-policies-guide">Complying with the YouTube Developer Policies</a> guide provides guidance and examples to help you ensure that your API clients adhere to specific portions of the YouTube API Services <a href="/web/20220315060001/https://developers.google.com/youtube/terms/api-services-terms-of-service">Terms</a> and <a href="/web/20220315060001/https://developers.google.com/youtube/terms/developer-policies">Policies</a> (API TOS). This guidance offers insight into how YouTube enforces certain aspects of the API TOS but does not replace any existing documents.</p> <p>This document defines minimum functional requirements for API clients that implement or provide access to specific features of YouTube API services ("API Clients").</p> <p>These requirements and guidelines ensure that API clients provide a consistent user experience that protects the interests of YouTube users, content owners, and advertisers. These rules are an integral part of the <a href="/web/20220315060001/https://developers.google.com/youtube/terms">YouTube API Terms of Service</a> and must be followed in the development and implementation of any API Clients.</p> <p>You should expect the requirements in this document to change so that we can ensure better user experiences with existing YouTube features. They will also change in response to new and updated YouTube features. At times, such changes may require you to update your API Clients to address new requirements. The <a href="/web/20220315060001/https://developers.google.com/youtube/terms/revision-history">Terms of Service revision history</a> will document any changes, so please check that document frequently, or subscribe to its <a href="/web/20220315060001/https://developers.google.com/youtube/terms/feeds/api-services-terms-of-service-revision-history.xml">RSS feed</a>, to ensure that you can quickly learn about changes that may affect your API Clients.</p> <p>In addition to the requirements in this document, we highly recommend that you follow best practices described in the <a href="/web/20220315060001/https://developers.google.com/youtube/terms/developer-policies">YouTube API Services Policies</a> and discussed elsewhere in YouTube API services' documentation. Even when not strictly required, these practices help your API Clients to recover more quickly from errors and to optimize their quota usage if they use YouTube API services that allocate quota. At the same time, these practices help to ensure the health of the YouTube ecosystem and, above all, to provide the best experience possible to users of your API Clients and of YouTube Applications.</p> <h2 id="youtube-embedded-player-and-video-playback" data-text="YouTube embedded player and video playback">YouTube embedded player and video playback</h2> <p>The requirements in this section relate specifically to embedded YouTube players. The YouTube API Services Policies also includes several policies relevant to API Clients that play YouTube audiovisual content.</p> <h3 id="embedded-youtube-player-size" data-text="Embedded YouTube Player size">Embedded YouTube Player size</h3> <p>Embedded players must have a viewport that is at least 200px by 200px. If the player displays controls, it must be large enough to fully display the controls without shrinking the viewport below the minimum size. We recommend 16:9 players be at least 480 pixels wide and 270 pixels tall.</p> <h3 id="autoplay-and-scripted-playbacks" data-text="Autoplay and scripted playbacks">Autoplay and scripted playbacks</h3> <p>This section covers automatic playbacks. It applies to YouTube embedded players that either use the <code translate="no" dir="ltr"><a href="/web/20220315060001/https://developers.google.com/youtube/player_parameters#autoplay">autoplay</a></code> player parameter or programmatically initiate automatic playback using the YouTube IFrame Player API service, the YouTube Android Player API service, or another YouTube API service.</p> <ul> <li> <p>Embedded players that automatically play a video should initiate playback immediately when the page loads or as soon as the embedded player is fully visible. However, an API Client must not initiate an automatic playback until the player is visible and more than half of the player is visible on the page or screen.</p> </li> <li> <p>A page or screen must not have more than one YouTube player that automatically plays content simultaneously.</p> </li> <li> <p>Any YouTube thumbnail that initiates a playback must be at least 120 pixels wide and 70 pixels tall.</p> </li> </ul> <h3 id="youtube-player-attributes" data-text="YouTube Player attributes">YouTube Player attributes</h3> <p>Attributes and parameters of the YouTube player – including, for example, the appearance of YouTube branding in the player – are specified in YouTube API documentation and specifications (https://developers.google.com/youtube). You must not make changes to the YouTube player that are not explicitly described by the API documentation.</p> <h3 id="overlays-and-frames" data-text="Overlays and frames">Overlays and frames</h3> <p>You must not display overlays, frames, or other visual elements in front of any part of a YouTube embedded player, including player controls. Similarly, you must not use overlays, frames or other visual elements to obscure any part of an embedded player, including player controls.</p> <h3 id="mouseovers" data-text="Mouseovers">Mouseovers</h3> <p>You must not use mouseovers or touch events on a YouTube player to initiate any action on the user's behalf, such as opening a window or subscribing to a channel.</p> <h2 id="uploading-videos" data-text="Uploading videos">Uploading videos</h2> <p>If API Clients allow users to upload content to multiple platforms, users should be able to select and deselect the platforms to which they want to upload their videos.</p> <h3 id="data-requirements" data-text="Data requirements">Data requirements</h3> <p>API clients that enable users to upload videos to YouTube must enable <em>users</em> to set the values in the following list. Any properties that are not listed are optional.</p> <table> <tr> <th> </th> <th>Name</th> <th>Description</th> </tr> <tr class="alt"> <td colspan="3"><b>Resource properties</b></td> </tr> <tr> <td><span class="compare-yes"></span></td> <td><code translate="no" dir="ltr"><a href="/web/20220315060001/https://developers.google.com/youtube/v3/docs/videos#snippet.title">snippet.title</a></code></td> <td><b>Required</b>. The video's title. YouTube returns an error if the value exceeds 100 characters. YouTube supports all valid UTF-8 characters except <code translate="no" dir="ltr"><</code> and <code translate="no" dir="ltr">></code>.</p> </tr> <tr> <td><span class="compare-yes"></span></td> <td><code translate="no" dir="ltr"><a href="/web/20220315060001/https://developers.google.com/youtube/v3/docs/videos#snippet.description">snippet.description</a></code></td> <td><b>Required</b>. The video's description. YouTube returns an error if the value exceeds 5000 bytes. YouTube supports all valid UTF-8 characters except <code translate="no" dir="ltr"><</code> and <code translate="no" dir="ltr">></code>.</td> </tr> <tr> <td><span class="compare-yes"></span></td> <td><code translate="no" dir="ltr"><a href="/web/20220315060001/https://developers.google.com/youtube/v3/docs/videos#status.privacyStatus">status.privacyStatus</a></code></td> <td><b>Required</b>. The video's <a href="https://web.archive.org/web/20220315060001/https://support.google.com/youtube/answer/157177">privacy setting</a>. Users must be able to choose whether the uploaded video will be public, private, or unlisted.</td> </tr> <tr class="alt"> <td colspan="3"><b>Request parameters</b></td> </tr> <tr> <td><span class="compare-yes"></span></td> <td><code translate="no" dir="ltr"><a href="/web/20220315060001/https://developers.google.com/youtube/v3/docs/videos/insert#onBehalfOfContentOwnerChannel">onBehalfOfContentOwnerChannel</a></code></td> <td><b>Conditionally required</b>. If the request's authorization credentials identify a content owner and the <code translate="no" dir="ltr"><a href="/web/20220315060001/https://developers.google.com/youtube/v3/docs/videos/insert#onBehalfOfContentOwner">onBehalfOfContentOwner</a></code> parameter is set, the API user must also be able to specify the YouTube channel to which the video is being uploaded.</td> </tr> </table> <h2 id="displaying-comments" data-text="Displaying comments">Displaying comments</h2> <table> <tr> <th> </th> <th>Name</th> <th>Description</th> </tr> <tr class="alt"> <td colspan="3"><b>Resource properties</b></td> </tr> <tr> <td><span class="compare-yes"></span></td> <td><code translate="no" dir="ltr"><a href="/web/20220315060001/https://developers.google.com/youtube/v3/docs/comments#snippet.textDisplay">snippet.textDisplay</a></code></td> <td><b>Required</b>. The comment's text. The API client must either (a) display the full text of a comment or comment reply, or (b) truncate the text and provide a way for the viewer to easily access the full text from the truncated version.<br><br>This requirement applies to all comments and comment replies, regardless of which type of resource the comments are associated with (videos, channels, etc.).<br><br>Note that the <code translate="no" dir="ltr"><a href="/web/20220315060001/https://developers.google.com/youtube/v3/docs/commentThreads">commentThread</a></code> resource's <code translate="no" dir="ltr"><a href="/web/20220315060001/https://developers.google.com/youtube/v3/docs/commentThreads#snippet.topLevelComment">snippet.topLevelComment</a></code> property value is a <code translate="no" dir="ltr">comment</code> resource and the <code translate="no" dir="ltr"><a href="/web/20220315060001/https://developers.google.com/youtube/v3/docs/commentThreads#replies.comments[]">replies.comments[]</a></code> property is a list of <code translate="no" dir="ltr">comment</code> resources. As such, this requirement also applies to the <code translate="no" dir="ltr">snippet.topLevelComment.snippet.textDisplay</code> and <code translate="no" dir="ltr">replies.comments[].snippet.textDisplay</code> properties.</td> </tr> <tr> <td><span class="compare-yes"></span></td> <td><code translate="no" dir="ltr"><a href="/web/20220315060001/https://developers.google.com/youtube/v3/docs/channels#snippet.title">snippet.title</a></code><br>(<code translate="no" dir="ltr">channel</code>)</td> <td><b>Required (suggestion)</b>. The channel's title.<ul><li>If the comment pertains to a channel, the API client must display the channel's name.</li><li>If the comment pertains to a video, the API client must display the name of the channel that uploaded the video.</li></ul></td> </tr> <tr> <td><span class="compare-yes"></span></td> <td><code translate="no" dir="ltr"><a href="/web/20220315060001/https://developers.google.com/youtube/v3/docs/videos#snippet.title">snippet.title</a></code><br>(<code translate="no" dir="ltr">video</code>)</td> <td><b>Conditionally required (suggestion)</b>. The video's title. This value must be displayed if the comment pertains to a video.</td> </tr> <tr> <td><span class="compare-yes"></span></td> <td><code translate="no" dir="ltr"><a href="/web/20220315060001/https://developers.google.com/youtube/v3/docs/comments#snippet.moderationStatus">snippet.moderationStatus</a></code></td> <td><b>Conditionally required</b>. If the <code translate="no" dir="ltr"><a href="/web/20220315060001/https://developers.google.com/youtube/v3/docs/commentThreads/list#moderationStatus">moderationStatus</a></code> parameter value in the API request is <code translate="no" dir="ltr">heldForReview</code> or <code translate="no" dir="ltr">likelySpam</code>, the display must clearly identify that status using the property value, similar language (e.g. "This comment is being held for review"), a header (e.g. "Held for review"), or other unambiguous language. The <code translate="no" dir="ltr">commentThreads.list</code> method supports the ability to retrieve comments based on their moderation status.</td> </tr> </table> <h2 id="adding-comments" data-text="Adding comments">Adding comments</h2> <table> <tr> <th> </th> <th>Name</th> <th>Description</th> </tr> <tr class="alt"> <td colspan="3"><b>Resource properties</b></td> </tr> <tr> <td><span class="compare-yes"></span></td> <td><code translate="no" dir="ltr"><a href="/web/20220315060001/https://developers.google.com/youtube/v3/docs/channels#snippet.title">snippet.title</a></code><br>(<code translate="no" dir="ltr">channel</code>)</td> <td><b>Required</b>. The channel's title.<ul><li>If the user is adding a comment about a channel, the API client must display the channel's name.</li><li>If the user is adding comment about a video, the API client must display the name of the channel that uploaded the video.</li></ul></td> </tr> <tr> <td><span class="compare-yes"></span></td> <td><code translate="no" dir="ltr"><a href="/web/20220315060001/https://developers.google.com/youtube/v3/docs/videos#snippet.title">snippet.title</a></code><br>(<code translate="no" dir="ltr">video</code>)</td> <td><b>Required</b>. If the user is adding a comment about a video, the API client must display the video's title.</td> </tr> <tr class="alt"> <td colspan="3"><b>Other requirements</b></td> </tr> <tr> <td><span class="compare-yes"></span></td> <td><code translate="no" dir="ltr">Comment author's channel name</code></td> <td><b>Required</b>. The API client must clearly identify the YouTube user account to which the comment will be attributed. If the request's authorization credentials identify a content owner and the <code translate="no" dir="ltr"><a href="/web/20220315060001/https://developers.google.com/youtube/v3/docs/videos/insert#onBehalfOfContentOwner">onBehalfOfContentOwner</a></code> parameter is set, the API user must also be able to specify the YouTube channel to which the comment will be attributed.</td> </tr> </table> <h2 id="adding-comment-replies" data-text="Adding comment replies">Adding comment replies</h2> <table> <tr> <th> </th> <th>Name</th> <th>Description</th> </tr> <tr class="alt"> <td colspan="3"><b>Resource properties</b></td> </tr> <tr> <td><span class="compare-yes"></span></td> <td><code translate="no" dir="ltr"><a href="/web/20220315060001/https://developers.google.com/youtube/v3/docs/comments#snippet.textDisplay">snippet.textDisplay</a></code></td> <td><b>Required</b>. The comment's text. The API client must display the text of the comment that the user is replying to in accordance with the rules defined in the <a href="#display-comments">Displaying comments</a> section of this document.</td> </tr> <tr> <td><span class="compare-yes"></span></td> <td><code translate="no" dir="ltr"><a href="/web/20220315060001/https://developers.google.com/youtube/v3/docs/channels#snippet.title">snippet.title</a></code><br>(<code translate="no" dir="ltr">channel</code>)</td> <td><b>Required</b>. The channel's title.<ul><li>If the user is replying to a comment about a channel, the API client must display the channel's name.</li><li>If the user is replying to a comment about a video, the API client must display the name of the channel that uploaded the video.</li></ul></td> </tr> <tr> <td><span class="compare-yes"></span></td> <td><code translate="no" dir="ltr"><a href="/web/20220315060001/https://developers.google.com/youtube/v3/docs/videos#snippet.title">snippet.title</a></code><br>(<code translate="no" dir="ltr">video</code>)</td> <td><b>Required</b>. If the user is replying to a comment about a video, the API client must display the video's title.</td> </tr> <tr class="alt"> <td colspan="3"><b>Other requirements</b></td> </tr> <tr> <td><span class="compare-yes"></span></td> <td><code translate="no" dir="ltr">Comment author's channel name</code></td> <td><b>Required</b>. The API client must clearly identify the YouTube user account to which the comment reply will be attributed. If the request's authorization credentials identify a content owner and the <code translate="no" dir="ltr"><a href="/web/20220315060001/https://developers.google.com/youtube/v3/docs/videos/insert#onBehalfOfContentOwner">onBehalfOfContentOwner</a></code> parameter is set, the API user must also be able to specify the YouTube channel to which the comment reply will be attributed.</td> </tr> </table> <h2 id="editing-or-deleting-comment-replies" data-text="Editing or deleting comment replies">Editing or deleting comment replies</h2> <table> <tr> <th> </th> <th>Name</th> <th>Description</th> </tr> <tr class="alt"> <td colspan="3"><b>Resource properties</b></td> </tr> <tr> <td><span class="compare-yes"></span></td> <td><code translate="no" dir="ltr"><a href="/web/20220315060001/https://developers.google.com/youtube/v3/docs/comments#snippet.textDisplay">snippet.textDisplay</a></code></td> <td><b>Required</b>. The comment's text. The API client must display the text of the comment that the user is editing or deleting in accordance with the rules defined in the <a href="#display-comments">Displaying comments</a> section of this document.</td> </tr> <tr> <td><span class="compare-yes"></span></td> <td><code translate="no" dir="ltr"><a href="/web/20220315060001/https://developers.google.com/youtube/v3/docs/channels#snippet.title">snippet.title</a></code><br>(<code translate="no" dir="ltr">channel</code>)</td> <td><b>Required</b>. The channel's title.<ul><li>If the user is editing or deleting a comment about a channel, the API client must display the channel's name.</li><li>If the user is editing or deleting a comment about a video, the API client must display the name of the channel that uploaded the video.</li></ul></td> </tr> <tr> <td><span class="compare-yes"></span></td> <td><code translate="no" dir="ltr"><a href="/web/20220315060001/https://developers.google.com/youtube/v3/docs/videos#snippet.title">snippet.title</a></code><br>(<code translate="no" dir="ltr">video</code>)</td> <td><b>Required</b>. If the user is editing or deleting a comment about a video, the API client must display the video's title.</td> </tr> <tr class="alt"> <td colspan="3"><b>Other requirements</b></td> </tr> <tr> <td><span class="compare-yes"></span></td> <td><code translate="no" dir="ltr">Comment author's channel name</code></td> <td><b>Required</b>. The API client must clearly identify the YouTube user account to which the comment is attributed.</td> </tr> </table> <h2 id="banning-a-user-from-live-chat-or-removing-a-ban" data-text="Banning a user from live chat (or removing a ban)">Banning a user from live chat (or removing a ban)</h2> <table> <tr> <th> </th> <th>Name</th> <th>Description</th> </tr> <tr class="alt"> <td colspan="3"><b>Resource properties</b></td> </tr> <tr> <td><span class="compare-yes"></span></td> <td><code translate="no" dir="ltr"><a href="/web/20220315060001/https://developers.google.com/youtube/v3/docs/channels#snippet.title">snippet.title</a></code><br>(<code translate="no" dir="ltr">channel</code>)</td> <td><b>Required</b>. The name of the YouTube channel that is being banned or unbanned. In addition, the name must link to the channel or the channel URL must also be displayed.</td> </tr> <tr class="alt"> <td colspan="3"><b>Other requirements</b></td> </tr> <tr> <td><span class="compare-yes"></span></td> <td>Comment author's channel name</td> <td><b>Required</b>. The API client must clearly identify the YouTube user account being used to add or remove the ban.</td> </tr> </table> </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> </article> <devsite-content-footer class="nocontent"> <p>Except as otherwise noted, the content of this page is licensed under the <a href="https://web.archive.org/web/20220315060001/https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 License</a>, and code samples are licensed under the <a href="https://web.archive.org/web/20220315060001/https://www.apache.org/licenses/LICENSE-2.0">Apache 2.0 License</a>. For details, see the <a href="https://web.archive.org/web/20220315060001/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 2020-06-15 UTC.</p> </devsite-content-footer> <devsite-notification> </devsite-notification> <div class="devsite-content-data"> <template class="devsite-thumb-rating-down-categories"> [{ "type": "thumb-down", "id": "missingTheInformationINeed", "label":"Missing the information I need" },{ "type": "thumb-down", "id": "tooComplicatedTooManySteps", "label":"Too complicated / too many steps" },{ "type": "thumb-down", "id": "outOfDate", "label":"Out of date" },{ "type": "thumb-down", "id": "samplesCodeIssue", "label":"Samples / code issue" },{ "type": "thumb-down", "id": "otherDown", "label":"Other" }] </template> <template class="devsite-thumb-rating-up-categories"> [{ "type": "thumb-up", "id": "easyToUnderstand", "label":"Easy to understand" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"Solved my problem" },{ "type": "thumb-up", "id": "otherUp", "label":"Other" }] </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://web.archive.org/web/20220315060001/http://apiblog.youtube.com/" class="devsite-footer-promo-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Promo Link (index 1)"> <img class="devsite-footer-promo-icon" src="https://web.archive.org/web/20220315060001im_/https://www.gstatic.com/images/icons/material/product/2x/blogger_64dp.png" loading="lazy" alt="Blog"> Blog </a> <div class="devsite-footer-promo-description">The latest news on the YouTube API blog</div> </li> <li class="devsite-footer-promo"> <a href="https://web.archive.org/web/20220315060001/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)"> <img class="devsite-footer-promo-icon" src="/web/20220315060001im_/https://developers.google.com/site-assets/logo-github.svg" loading="lazy" alt="GitHub"> GitHub </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://web.archive.org/web/20220315060001/https://issuetracker.google.com/issues/new?component=186600&template=874803" class="devsite-footer-promo-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Promo Link (index 3)"> <img class="devsite-footer-promo-icon" src="/web/20220315060001im_/https://developers.google.com/site-assets/developers_64dp.png" loading="lazy" alt="Issue Tracker"> Issue Tracker </a> <div class="devsite-footer-promo-description">Something wrong? Send us a bug report!</div> </li> <li class="devsite-footer-promo"> <a href="https://web.archive.org/web/20220315060001/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)"> <img class="devsite-footer-promo-icon" src="/web/20220315060001im_/https://developers.google.com/site-assets/logo-stack-overflow.svg" loading="lazy" alt="Stack Overflow"> Stack Overflow </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://web.archive.org/web/20220315060001/https://www.youtube.com/user/YouTubeDev" class="devsite-footer-promo-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Promo Link (index 5)"> <img class="devsite-footer-promo-icon" src="/web/20220315060001im_/https://developers.google.com/site-assets/logo-youtube.svg" loading="lazy" alt="Videos"> Videos </a> <div class="devsite-footer-promo-description">Check out the YouTube Developer Relations team's YouTube channel</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://web.archive.org/web/20220315060001/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="/web/20220315060001/https://developers.google.com/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="/web/20220315060001/https://developers.google.com/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://web.archive.org/web/20220315060001/https://issuetracker.google.com/issues/new?component=186600&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://web.archive.org/web/20220315060001/https://issuetracker.google.com/issues/new?component=186600&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://web.archive.org/web/20220315060001/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="/web/20220315060001/https://developers.google.com/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="/web/20220315060001/https://developers.google.com/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="/web/20220315060001/https://developers.google.com/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="/web/20220315060001/https://developers.google.com/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://web.archive.org/web/20220315060001/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"> <img class="devsite-footer-sites-logo" src="https://web.archive.org/web/20220315060001im_/https://www.gstatic.com/devrel-devsite/prod/vea32910d5631902da7876bf3132bf2a23b4c6e7b82b4223c953da55851058027/developers/images/lockup-developers.svg" loading="lazy" alt="Google Developers"> </a> <ul class="devsite-footer-sites-list"> <li class="devsite-footer-sites-item"> <a href="//web.archive.org/web/20220315060001/https://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="//web.archive.org/web/20220315060001/https://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="//web.archive.org/web/20220315060001/https://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="//web.archive.org/web/20220315060001/https://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="/web/20220315060001/https://developers.google.com/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="/web/20220315060001/https://developers.google.com/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="//web.archive.org/web/20220315060001/https://policies.google.com/privacy" data-category="Site-Wide Custom Events" data-label="Footer Privacy link"> Privacy </a> </li> <li class="devsite-footer-utility-item devsite-footer-utility-button"> <span class="devsite-footer-utility-description">Sign up for the Google Developers newsletter</span> <a class="devsite-footer-utility-link gc-analytics-event" href="//web.archive.org/web/20220315060001/https://services.google.com/fb/forms/googledevelopersnewsletter/?utm_medium=referral&utm_source=google-products&utm_team=googledevs&utm_campaign=201611-newsletter-launch" data-category="Site-Wide Custom Events" data-label="Footer Subscribe link"> Subscribe </a> </li> </ul> <devsite-language-selector> <devsite-select class="devsite-language-selector-menu"> <select aria-label="Select your language preference." class="devsite-language-selector-select" name="language" track-name="click" track-type="languageSelector"> <option>Language</option> <option value="en" lang="en"> English </option> <option value="id" lang="id"> Bahasa Indonesia </option> <option value="de" lang="de"> Deutsch </option> <option value="es" lang="es"> Español </option> <option value="fr" lang="fr"> Français </option> <option value="pt_br" lang="pt_br"> Português – Brasil </option> <option value="ru" lang="ru"> Русский </option> <option value="zh_cn" lang="zh_cn"> 中文 – 简体 </option> <option value="ja" lang="ja"> 日本語 </option> <option value="ko" lang="ko"> 한국어 </option> </select> </devsite-select> </devsite-language-selector> </nav> </div> </devsite-footer-utility> <devsite-panel></devsite-panel> </section></section> <devsite-sitemask></devsite-sitemask> <devsite-snackbar> </devsite-snackbar> <devsite-tooltip></devsite-tooltip> <devsite-heading-link></devsite-heading-link> <devsite-analytics analytics-iframe> <script type="application/json" analytics>[{"dimensions": {"dimension11": false, "dimension5": "en", "dimension3": false, "dimension6": "en", "dimension1": "Signed out", "dimension4": "YouTube"}, "gaid": "UA-24532603-1", "metrics": {"ratings_value": "metric1", "ratings_count": "metric2"}}]</script> <script type="application/json" gtm>{"parameters": {"freeTrialEligibleUser": "True", "internalUser": "False", "language": {"machineTranslated": "False", "requested": "en", "served": "en"}, "pageType": "article", "projectName": "YouTube", "signedIn": "False", "tenant": "developers", "recommendations": {"sourcePage": "", "sourceType": 0, "sourceRank": 0, "sourceIdenticalDescriptions": 0, "sourceTitleWords": 0, "sourceDescriptionWords": 0, "experiment": ""}}, "tags": []}</script> </devsite-analytics> <devsite-badger></devsite-badger> <script nonce="BA2oBZv21WMRbBc10gEJjC+T8SrZvR"> (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://web.archive.org/web/20220315060001/https://www.gstatic.com/devrel-devsite/prod/vea32910d5631902da7876bf3132bf2a23b4c6e7b82b4223c953da55851058027/developers/js/app_loader.js', '[1,"en",null,"/js/devsite_app_module.js","https://web.archive.org/web/20220315060001/https://www.gstatic.com/devrel-devsite/prod/vea32910d5631902da7876bf3132bf2a23b4c6e7b82b4223c953da55851058027","https://web.archive.org/web/20220315060001/https://www.gstatic.com/devrel-devsite/prod/vea32910d5631902da7876bf3132bf2a23b4c6e7b82b4223c953da55851058027/developers","https://web.archive.org/web/20220315060001/https://developers-dot-devsite-v2-prod.appspot.com",null,null,["/_pwa/developers/manifest.json","https://web.archive.org/web/20220315060001/https://www.gstatic.com/devrel-devsite/prod/vea32910d5631902da7876bf3132bf2a23b4c6e7b82b4223c953da55851058027/images/video-placeholder.svg","https://web.archive.org/web/20220315060001/https://www.gstatic.com/devrel-devsite/prod/vea32910d5631902da7876bf3132bf2a23b4c6e7b82b4223c953da55851058027/developers/images/favicon.png","https://web.archive.org/web/20220315060001/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,18,21,25,40,50,63,70,75,76,80,87,91,92,93,97,98,100,101,102,103,104,105,107,108,109,110,111,112,113,115,116,117,118,120,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,138,140,141,144,147,148,149,150,151,152,153,154,155,156,157,159,161,163,164,165,168,169,170,173,179,182,186],"AIzaSyAP-jjEJBzmIyKR4F-3XITp8yM9T1gEEI8","AIzaSyB6xiKGDR5O3Ak2okS4rLkauxGUG7XP0hg","developers.google.com","AIzaSyAQk0fBONSGUqCNznf6Krs82Ap1-NV6J4o","AIzaSyCCxcqdrZ_7QMeLCRY20bh_SXdAYqy70KY"]') </script> <devsite-a11y-announce></devsite-a11y-announce> </body> </html><!-- FILE ARCHIVED ON 06:00:01 Mar 15, 2022 AND RETRIEVED FROM THE INTERNET ARCHIVE ON 11:34:29 Nov 30, 2024. JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE. ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C. SECTION 108(a)(3)). --> <!-- playback timings (ms): captures_list: 0.487 exclusion.robots: 0.027 exclusion.robots.policy: 0.017 esindex: 0.01 cdx.remote: 6.743 LoadShardBlock: 61.782 (3) PetaboxLoader3.datanode: 68.224 (4) load_resource: 3307.393 PetaboxLoader3.resolve: 3256.363 -->