<html><body>
<style>

body, h1, h2, h3, div, span, p, pre, a {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body {
  font-size: 13px;
  padding: 1em;
}

h1 {
  font-size: 26px;
  margin-bottom: 1em;
}

h2 {
  font-size: 24px;
  margin-bottom: 1em;
}

h3 {
  font-size: 20px;
  margin-bottom: 1em;
  margin-top: 1em;
}

pre, code {
  line-height: 1.5;
  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}

pre {
  margin-top: 0.5em;
}

h1, h2, h3, p {
  font-family: Arial, sans serif;
}

h1, h2, h3 {
  border-bottom: solid #CCC 1px;
}

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

.method  {
  margin-top: 1em;
  border: solid 1px #CCC;
  padding: 1em;
  background: #EEE;
}

.details {
  font-weight: bold;
  font-size: 14px;
}

</style>

<h1><a href="youtube_v3.html">YouTube Data API v3</a> . <a href="youtube_v3.videos.html">videos</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#close">close()</a></code></p>
<p class="firstline">Close httplib2 connections.</p>
<p class="toc_element">
  <code><a href="#delete">delete(id, onBehalfOfContentOwner=None, x__xgafv=None)</a></code></p>
<p class="firstline">Deletes a resource.</p>
<p class="toc_element">
  <code><a href="#getRating">getRating(id, onBehalfOfContentOwner=None, x__xgafv=None)</a></code></p>
<p class="firstline">Retrieves the ratings that the authorized user gave to a list of specified videos.</p>
<p class="toc_element">
  <code><a href="#insert">insert(part, autoLevels=None, body=None, media_body=None, media_mime_type=None, notifySubscribers=None, onBehalfOfContentOwner=None, onBehalfOfContentOwnerChannel=None, stabilize=None, x__xgafv=None)</a></code></p>
<p class="firstline">Inserts a new resource into this collection.</p>
<p class="toc_element">
  <code><a href="#list">list(part, chart=None, hl=None, id=None, locale=None, maxHeight=None, maxResults=None, maxWidth=None, myRating=None, onBehalfOfContentOwner=None, pageToken=None, regionCode=None, videoCategoryId=None, x__xgafv=None)</a></code></p>
<p class="firstline">Retrieves a list of resources, possibly filtered.</p>
<p class="toc_element">
  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
<p class="firstline">Retrieves the next page of results.</p>
<p class="toc_element">
  <code><a href="#rate">rate(id, rating, x__xgafv=None)</a></code></p>
<p class="firstline">Adds a like or dislike rating to a video or removes a rating from a video.</p>
<p class="toc_element">
  <code><a href="#reportAbuse">reportAbuse(body=None, onBehalfOfContentOwner=None, x__xgafv=None)</a></code></p>
<p class="firstline">Report abuse for a video.</p>
<p class="toc_element">
  <code><a href="#update">update(part, body=None, onBehalfOfContentOwner=None, x__xgafv=None)</a></code></p>
<p class="firstline">Updates an existing resource.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

<div class="method">
    <code class="details" id="delete">delete(id, onBehalfOfContentOwner=None, x__xgafv=None)</code>
  <pre>Deletes a resource.

Args:
  id: string, A parameter (required)
  onBehalfOfContentOwner: string, *Note:* This parameter is intended exclusively for YouTube content partners. The *onBehalfOfContentOwner* parameter indicates that the request&#x27;s authorization credentials identify a YouTube CMS user who is acting on behalf of the content owner specified in the parameter value. This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and get access to all their video and channel data, without having to provide authentication credentials for each individual channel. The actual CMS account that the user authenticates with must be linked to the specified YouTube content owner.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format
</pre>
</div>

<div class="method">
    <code class="details" id="getRating">getRating(id, onBehalfOfContentOwner=None, x__xgafv=None)</code>
  <pre>Retrieves the ratings that the authorized user gave to a list of specified videos.

Args:
  id: string, A parameter (required) (repeated)
  onBehalfOfContentOwner: string, *Note:* This parameter is intended exclusively for YouTube content partners. The *onBehalfOfContentOwner* parameter indicates that the request&#x27;s authorization credentials identify a YouTube CMS user who is acting on behalf of the content owner specified in the parameter value. This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and get access to all their video and channel data, without having to provide authentication credentials for each individual channel. The CMS account that the user authenticates with must be linked to the specified YouTube content owner.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    {
  &quot;etag&quot;: &quot;A String&quot;, # Etag of this resource.
  &quot;eventId&quot;: &quot;A String&quot;, # Serialized EventId of the request which produced this response.
  &quot;items&quot;: [ # A list of ratings that match the request criteria.
    { # Basic details about rating of a video.
      &quot;rating&quot;: &quot;A String&quot;, # Rating of a video.
      &quot;videoId&quot;: &quot;A String&quot;, # The ID that YouTube uses to uniquely identify the video.
    },
  ],
  &quot;kind&quot;: &quot;youtube#videoGetRatingResponse&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;youtube#videoGetRatingResponse&quot;.
  &quot;visitorId&quot;: &quot;A String&quot;, # The visitorId identifies the visitor.
}</pre>
</div>

<div class="method">
    <code class="details" id="insert">insert(part, autoLevels=None, body=None, media_body=None, media_mime_type=None, notifySubscribers=None, onBehalfOfContentOwner=None, onBehalfOfContentOwnerChannel=None, stabilize=None, x__xgafv=None)</code>
  <pre>Inserts a new resource into this collection.

Args:
  part: string, The *part* parameter serves two purposes in this operation. It identifies the properties that the write operation will set as well as the properties that the API response will include. Note that not all parts contain properties that can be set when inserting or updating a video. For example, the statistics object encapsulates statistics that YouTube calculates for a video and does not contain values that you can set or modify. If the parameter value specifies a part that does not contain mutable values, that part will still be included in the API response. (required) (repeated)
  body: object, The request body.
    The object takes the form of:

{ # A *video* resource represents a YouTube video.
  &quot;ageGating&quot;: { # Age restriction details related to a video. This data can only be retrieved by the video owner.
    &quot;alcoholContent&quot;: True or False, # Indicates whether or not the video has alcoholic beverage content. Only users of legal purchasing age in a particular country, as identified by ICAP, can view the content.
    &quot;restricted&quot;: True or False, # Age-restricted trailers. For redband trailers and adult-rated video-games. Only users aged 18+ can view the content. The the field is true the content is restricted to viewers aged 18+. Otherwise The field won&#x27;t be present.
    &quot;videoGameRating&quot;: &quot;A String&quot;, # Video game rating, if any.
  },
  &quot;contentDetails&quot;: { # Details about the content of a YouTube Video. # The contentDetails object contains information about the video content, including the length of the video and its aspect ratio.
    &quot;caption&quot;: &quot;A String&quot;, # The value of captions indicates whether the video has captions or not.
    &quot;contentRating&quot;: { # Ratings schemes. The country-specific ratings are mostly for movies and shows. LINT.IfChange # Specifies the ratings that the video received under various rating schemes.
      &quot;acbRating&quot;: &quot;A String&quot;, # The video&#x27;s Australian Classification Board (ACB) or Australian Communications and Media Authority (ACMA) rating. ACMA ratings are used to classify children&#x27;s television programming.
      &quot;agcomRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Italy&#x27;s Autorità per le Garanzie nelle Comunicazioni (AGCOM).
      &quot;anatelRating&quot;: &quot;A String&quot;, # The video&#x27;s Anatel (Asociación Nacional de Televisión) rating for Chilean television.
      &quot;bbfcRating&quot;: &quot;A String&quot;, # The video&#x27;s British Board of Film Classification (BBFC) rating.
      &quot;bfvcRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Thailand&#x27;s Board of Film and Video Censors.
      &quot;bmukkRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from the Austrian Board of Media Classification (Bundesministerium für Unterricht, Kunst und Kultur).
      &quot;catvRating&quot;: &quot;A String&quot;, # Rating system for Canadian TV - Canadian TV Classification System The video&#x27;s rating from the Canadian Radio-Television and Telecommunications Commission (CRTC) for Canadian English-language broadcasts. For more information, see the Canadian Broadcast Standards Council website.
      &quot;catvfrRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from the Canadian Radio-Television and Telecommunications Commission (CRTC) for Canadian French-language broadcasts. For more information, see the Canadian Broadcast Standards Council website.
      &quot;cbfcRating&quot;: &quot;A String&quot;, # The video&#x27;s Central Board of Film Certification (CBFC - India) rating.
      &quot;cccRating&quot;: &quot;A String&quot;, # The video&#x27;s Consejo de Calificación Cinematográfica (Chile) rating.
      &quot;cceRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Portugal&#x27;s Comissão de Classificação de Espect´culos.
      &quot;chfilmRating&quot;: &quot;A String&quot;, # The video&#x27;s rating in Switzerland.
      &quot;chvrsRating&quot;: &quot;A String&quot;, # The video&#x27;s Canadian Home Video Rating System (CHVRS) rating.
      &quot;cicfRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from the Commission de Contrôle des Films (Belgium).
      &quot;cnaRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Romania&#x27;s CONSILIUL NATIONAL AL AUDIOVIZUALULUI (CNA).
      &quot;cncRating&quot;: &quot;A String&quot;, # Rating system in France - Commission de classification cinematographique
      &quot;csaRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from France&#x27;s Conseil supérieur de l’audiovisuel, which rates broadcast content.
      &quot;cscfRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Luxembourg&#x27;s Commission de surveillance de la classification des films (CSCF).
      &quot;czfilmRating&quot;: &quot;A String&quot;, # The video&#x27;s rating in the Czech Republic.
      &quot;djctqRating&quot;: &quot;A String&quot;, # The video&#x27;s Departamento de Justiça, Classificação, Qualificação e Títulos (DJCQT - Brazil) rating.
      &quot;djctqRatingReasons&quot;: [ # Reasons that explain why the video received its DJCQT (Brazil) rating.
        &quot;A String&quot;,
      ],
      &quot;ecbmctRating&quot;: &quot;A String&quot;, # Rating system in Turkey - Evaluation and Classification Board of the Ministry of Culture and Tourism
      &quot;eefilmRating&quot;: &quot;A String&quot;, # The video&#x27;s rating in Estonia.
      &quot;egfilmRating&quot;: &quot;A String&quot;, # The video&#x27;s rating in Egypt.
      &quot;eirinRating&quot;: &quot;A String&quot;, # The video&#x27;s Eirin (映倫) rating. Eirin is the Japanese rating system.
      &quot;fcbmRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Malaysia&#x27;s Film Censorship Board.
      &quot;fcoRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Hong Kong&#x27;s Office for Film, Newspaper and Article Administration.
      &quot;fmocRating&quot;: &quot;A String&quot;, # This property has been deprecated. Use the contentDetails.contentRating.cncRating instead.
      &quot;fpbRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from South Africa&#x27;s Film and Publication Board.
      &quot;fpbRatingReasons&quot;: [ # Reasons that explain why the video received its FPB (South Africa) rating.
        &quot;A String&quot;,
      ],
      &quot;fskRating&quot;: &quot;A String&quot;, # The video&#x27;s Freiwillige Selbstkontrolle der Filmwirtschaft (FSK - Germany) rating.
      &quot;grfilmRating&quot;: &quot;A String&quot;, # The video&#x27;s rating in Greece.
      &quot;icaaRating&quot;: &quot;A String&quot;, # The video&#x27;s Instituto de la Cinematografía y de las Artes Audiovisuales (ICAA - Spain) rating.
      &quot;ifcoRating&quot;: &quot;A String&quot;, # The video&#x27;s Irish Film Classification Office (IFCO - Ireland) rating. See the IFCO website for more information.
      &quot;ilfilmRating&quot;: &quot;A String&quot;, # The video&#x27;s rating in Israel.
      &quot;incaaRating&quot;: &quot;A String&quot;, # The video&#x27;s INCAA (Instituto Nacional de Cine y Artes Audiovisuales - Argentina) rating.
      &quot;kfcbRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from the Kenya Film Classification Board.
      &quot;kijkwijzerRating&quot;: &quot;A String&quot;, # The video&#x27;s NICAM/Kijkwijzer rating from the Nederlands Instituut voor de Classificatie van Audiovisuele Media (Netherlands).
      &quot;kmrbRating&quot;: &quot;A String&quot;, # The video&#x27;s Korea Media Rating Board (영상물등급위원회) rating. The KMRB rates videos in South Korea.
      &quot;lsfRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Indonesia&#x27;s Lembaga Sensor Film.
      &quot;mccaaRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Malta&#x27;s Film Age-Classification Board.
      &quot;mccypRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from the Danish Film Institute&#x27;s (Det Danske Filminstitut) Media Council for Children and Young People.
      &quot;mcstRating&quot;: &quot;A String&quot;, # The video&#x27;s rating system for Vietnam - MCST
      &quot;mdaRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Singapore&#x27;s Media Development Authority (MDA) and, specifically, it&#x27;s Board of Film Censors (BFC).
      &quot;medietilsynetRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Medietilsynet, the Norwegian Media Authority.
      &quot;mekuRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Finland&#x27;s Kansallinen Audiovisuaalinen Instituutti (National Audiovisual Institute).
      &quot;menaMpaaRating&quot;: &quot;A String&quot;, # The rating system for MENA countries, a clone of MPAA. It is needed to prevent titles go live w/o additional QC check, since some of them can be inappropriate for the countries at all. See b/33408548 for more details.
      &quot;mibacRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from the Ministero dei Beni e delle Attività Culturali e del Turismo (Italy).
      &quot;mocRating&quot;: &quot;A String&quot;, # The video&#x27;s Ministerio de Cultura (Colombia) rating.
      &quot;moctwRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Taiwan&#x27;s Ministry of Culture (文化部).
      &quot;mpaaRating&quot;: &quot;A String&quot;, # The video&#x27;s Motion Picture Association of America (MPAA) rating.
      &quot;mpaatRating&quot;: &quot;A String&quot;, # The rating system for trailer, DVD, and Ad in the US. See http://movielabs.com/md/ratings/v2.3/html/US_MPAAT_Ratings.html.
      &quot;mtrcbRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from the Movie and Television Review and Classification Board (Philippines).
      &quot;nbcRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from the Maldives National Bureau of Classification.
      &quot;nbcplRating&quot;: &quot;A String&quot;, # The video&#x27;s rating in Poland.
      &quot;nfrcRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from the Bulgarian National Film Center.
      &quot;nfvcbRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Nigeria&#x27;s National Film and Video Censors Board.
      &quot;nkclvRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from the Nacionãlais Kino centrs (National Film Centre of Latvia).
      &quot;nmcRating&quot;: &quot;A String&quot;, # The National Media Council ratings system for United Arab Emirates.
      &quot;oflcRating&quot;: &quot;A String&quot;, # The video&#x27;s Office of Film and Literature Classification (OFLC - New Zealand) rating.
      &quot;pefilmRating&quot;: &quot;A String&quot;, # The video&#x27;s rating in Peru.
      &quot;rcnofRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from the Hungarian Nemzeti Filmiroda, the Rating Committee of the National Office of Film.
      &quot;resorteviolenciaRating&quot;: &quot;A String&quot;, # The video&#x27;s rating in Venezuela.
      &quot;rtcRating&quot;: &quot;A String&quot;, # The video&#x27;s General Directorate of Radio, Television and Cinematography (Mexico) rating.
      &quot;rteRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Ireland&#x27;s Raidió Teilifís Éireann.
      &quot;russiaRating&quot;: &quot;A String&quot;, # The video&#x27;s National Film Registry of the Russian Federation (MKRF - Russia) rating.
      &quot;skfilmRating&quot;: &quot;A String&quot;, # The video&#x27;s rating in Slovakia.
      &quot;smaisRating&quot;: &quot;A String&quot;, # The video&#x27;s rating in Iceland.
      &quot;smsaRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Statens medieråd (Sweden&#x27;s National Media Council).
      &quot;tvpgRating&quot;: &quot;A String&quot;, # The video&#x27;s TV Parental Guidelines (TVPG) rating.
      &quot;ytRating&quot;: &quot;A String&quot;, # A rating that YouTube uses to identify age-restricted content.
    },
    &quot;countryRestriction&quot;: { # Rights management policy for YouTube resources. # The countryRestriction object contains information about the countries where a video is (or is not) viewable.
      &quot;allowed&quot;: True or False, # The value of allowed indicates whether the access to the policy is allowed or denied by default.
      &quot;exception&quot;: [ # A list of region codes that identify countries where the default policy do not apply.
        &quot;A String&quot;,
      ],
    },
    &quot;definition&quot;: &quot;A String&quot;, # The value of definition indicates whether the video is available in high definition or only in standard definition.
    &quot;dimension&quot;: &quot;A String&quot;, # The value of dimension indicates whether the video is available in 3D or in 2D.
    &quot;duration&quot;: &quot;A String&quot;, # The length of the video. The tag value is an ISO 8601 duration in the format PT#M#S, in which the letters PT indicate that the value specifies a period of time, and the letters M and S refer to length in minutes and seconds, respectively. The # characters preceding the M and S letters are both integers that specify the number of minutes (or seconds) of the video. For example, a value of PT15M51S indicates that the video is 15 minutes and 51 seconds long.
    &quot;hasCustomThumbnail&quot;: True or False, # Indicates whether the video uploader has provided a custom thumbnail image for the video. This property is only visible to the video uploader.
    &quot;licensedContent&quot;: True or False, # The value of is_license_content indicates whether the video is licensed content.
    &quot;projection&quot;: &quot;A String&quot;, # Specifies the projection format of the video.
    &quot;regionRestriction&quot;: { # DEPRECATED Region restriction of the video. # The regionRestriction object contains information about the countries where a video is (or is not) viewable. The object will contain either the contentDetails.regionRestriction.allowed property or the contentDetails.regionRestriction.blocked property.
      &quot;allowed&quot;: [ # A list of region codes that identify countries where the video is viewable. If this property is present and a country is not listed in its value, then the video is blocked from appearing in that country. If this property is present and contains an empty list, the video is blocked in all countries.
        &quot;A String&quot;,
      ],
      &quot;blocked&quot;: [ # A list of region codes that identify countries where the video is blocked. If this property is present and a country is not listed in its value, then the video is viewable in that country. If this property is present and contains an empty list, the video is viewable in all countries.
        &quot;A String&quot;,
      ],
    },
  },
  &quot;etag&quot;: &quot;A String&quot;, # Etag of this resource.
  &quot;fileDetails&quot;: { # Describes original video file properties, including technical details about audio and video streams, but also metadata information like content length, digitization time, or geotagging information. # The fileDetails object encapsulates information about the video file that was uploaded to YouTube, including the file&#x27;s resolution, duration, audio and video codecs, stream bitrates, and more. This data can only be retrieved by the video owner.
    &quot;audioStreams&quot;: [ # A list of audio streams contained in the uploaded video file. Each item in the list contains detailed metadata about an audio stream.
      { # Information about an audio stream.
        &quot;bitrateBps&quot;: &quot;A String&quot;, # The audio stream&#x27;s bitrate, in bits per second.
        &quot;channelCount&quot;: 42, # The number of audio channels that the stream contains.
        &quot;codec&quot;: &quot;A String&quot;, # The audio codec that the stream uses.
        &quot;vendor&quot;: &quot;A String&quot;, # A value that uniquely identifies a video vendor. Typically, the value is a four-letter vendor code.
      },
    ],
    &quot;bitrateBps&quot;: &quot;A String&quot;, # The uploaded video file&#x27;s combined (video and audio) bitrate in bits per second.
    &quot;container&quot;: &quot;A String&quot;, # The uploaded video file&#x27;s container format.
    &quot;creationTime&quot;: &quot;A String&quot;, # The date and time when the uploaded video file was created. The value is specified in ISO 8601 format. Currently, the following ISO 8601 formats are supported: - Date only: YYYY-MM-DD - Naive time: YYYY-MM-DDTHH:MM:SS - Time with timezone: YYYY-MM-DDTHH:MM:SS+HH:MM
    &quot;durationMs&quot;: &quot;A String&quot;, # The length of the uploaded video in milliseconds.
    &quot;fileName&quot;: &quot;A String&quot;, # The uploaded file&#x27;s name. This field is present whether a video file or another type of file was uploaded.
    &quot;fileSize&quot;: &quot;A String&quot;, # The uploaded file&#x27;s size in bytes. This field is present whether a video file or another type of file was uploaded.
    &quot;fileType&quot;: &quot;A String&quot;, # The uploaded file&#x27;s type as detected by YouTube&#x27;s video processing engine. Currently, YouTube only processes video files, but this field is present whether a video file or another type of file was uploaded.
    &quot;videoStreams&quot;: [ # A list of video streams contained in the uploaded video file. Each item in the list contains detailed metadata about a video stream.
      { # Information about a video stream.
        &quot;aspectRatio&quot;: 3.14, # The video content&#x27;s display aspect ratio, which specifies the aspect ratio in which the video should be displayed.
        &quot;bitrateBps&quot;: &quot;A String&quot;, # The video stream&#x27;s bitrate, in bits per second.
        &quot;codec&quot;: &quot;A String&quot;, # The video codec that the stream uses.
        &quot;frameRateFps&quot;: 3.14, # The video stream&#x27;s frame rate, in frames per second.
        &quot;heightPixels&quot;: 42, # The encoded video content&#x27;s height in pixels.
        &quot;rotation&quot;: &quot;A String&quot;, # The amount that YouTube needs to rotate the original source content to properly display the video.
        &quot;vendor&quot;: &quot;A String&quot;, # A value that uniquely identifies a video vendor. Typically, the value is a four-letter vendor code.
        &quot;widthPixels&quot;: 42, # The encoded video content&#x27;s width in pixels. You can calculate the video&#x27;s encoding aspect ratio as width_pixels / height_pixels.
      },
    ],
  },
  &quot;id&quot;: &quot;A String&quot;, # The ID that YouTube uses to uniquely identify the video.
  &quot;kind&quot;: &quot;youtube#video&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;youtube#video&quot;.
  &quot;liveStreamingDetails&quot;: { # Details about the live streaming metadata. # The liveStreamingDetails object contains metadata about a live video broadcast. The object will only be present in a video resource if the video is an upcoming, live, or completed live broadcast.
    &quot;activeLiveChatId&quot;: &quot;A String&quot;, # The ID of the currently active live chat attached to this video. This field is filled only if the video is a currently live broadcast that has live chat. Once the broadcast transitions to complete this field will be removed and the live chat closed down. For persistent broadcasts that live chat id will no longer be tied to this video but rather to the new video being displayed at the persistent page.
    &quot;actualEndTime&quot;: &quot;A String&quot;, # The time that the broadcast actually ended. This value will not be available until the broadcast is over.
    &quot;actualStartTime&quot;: &quot;A String&quot;, # The time that the broadcast actually started. This value will not be available until the broadcast begins.
    &quot;concurrentViewers&quot;: &quot;A String&quot;, # The number of viewers currently watching the broadcast. The property and its value will be present if the broadcast has current viewers and the broadcast owner has not hidden the viewcount for the video. Note that YouTube stops tracking the number of concurrent viewers for a broadcast when the broadcast ends. So, this property would not identify the number of viewers watching an archived video of a live broadcast that already ended.
    &quot;scheduledEndTime&quot;: &quot;A String&quot;, # The time that the broadcast is scheduled to end. If the value is empty or the property is not present, then the broadcast is scheduled to contiue indefinitely.
    &quot;scheduledStartTime&quot;: &quot;A String&quot;, # The time that the broadcast is scheduled to begin.
  },
  &quot;localizations&quot;: { # The localizations object contains localized versions of the basic details about the video, such as its title and description.
    &quot;a_key&quot;: { # Localized versions of certain video properties (e.g. title).
      &quot;description&quot;: &quot;A String&quot;, # Localized version of the video&#x27;s description.
      &quot;title&quot;: &quot;A String&quot;, # Localized version of the video&#x27;s title.
    },
  },
  &quot;monetizationDetails&quot;: { # Details about monetization of a YouTube Video. # The monetizationDetails object encapsulates information about the monetization status of the video.
    &quot;access&quot;: { # Rights management policy for YouTube resources. # The value of access indicates whether the video can be monetized or not.
      &quot;allowed&quot;: True or False, # The value of allowed indicates whether the access to the policy is allowed or denied by default.
      &quot;exception&quot;: [ # A list of region codes that identify countries where the default policy do not apply.
        &quot;A String&quot;,
      ],
    },
  },
  &quot;player&quot;: { # Player to be used for a video playback. # The player object contains information that you would use to play the video in an embedded player.
    &quot;embedHeight&quot;: &quot;A String&quot;,
    &quot;embedHtml&quot;: &quot;A String&quot;, # An &lt;iframe&gt; tag that embeds a player that will play the video.
    &quot;embedWidth&quot;: &quot;A String&quot;, # The embed width
  },
  &quot;processingDetails&quot;: { # Describes processing status and progress and availability of some other Video resource parts. # The processingDetails object encapsulates information about YouTube&#x27;s progress in processing the uploaded video file. The properties in the object identify the current processing status and an estimate of the time remaining until YouTube finishes processing the video. This part also indicates whether different types of data or content, such as file details or thumbnail images, are available for the video. The processingProgress object is designed to be polled so that the video uploaded can track the progress that YouTube has made in processing the uploaded video file. This data can only be retrieved by the video owner.
    &quot;editorSuggestionsAvailability&quot;: &quot;A String&quot;, # This value indicates whether video editing suggestions, which might improve video quality or the playback experience, are available for the video. You can retrieve these suggestions by requesting the suggestions part in your videos.list() request.
    &quot;fileDetailsAvailability&quot;: &quot;A String&quot;, # This value indicates whether file details are available for the uploaded video. You can retrieve a video&#x27;s file details by requesting the fileDetails part in your videos.list() request.
    &quot;processingFailureReason&quot;: &quot;A String&quot;, # The reason that YouTube failed to process the video. This property will only have a value if the processingStatus property&#x27;s value is failed.
    &quot;processingIssuesAvailability&quot;: &quot;A String&quot;, # This value indicates whether the video processing engine has generated suggestions that might improve YouTube&#x27;s ability to process the the video, warnings that explain video processing problems, or errors that cause video processing problems. You can retrieve these suggestions by requesting the suggestions part in your videos.list() request.
    &quot;processingProgress&quot;: { # Video processing progress and completion time estimate. # The processingProgress object contains information about the progress YouTube has made in processing the video. The values are really only relevant if the video&#x27;s processing status is processing.
      &quot;partsProcessed&quot;: &quot;A String&quot;, # The number of parts of the video that YouTube has already processed. You can estimate the percentage of the video that YouTube has already processed by calculating: 100 * parts_processed / parts_total Note that since the estimated number of parts could increase without a corresponding increase in the number of parts that have already been processed, it is possible that the calculated progress could periodically decrease while YouTube processes a video.
      &quot;partsTotal&quot;: &quot;A String&quot;, # An estimate of the total number of parts that need to be processed for the video. The number may be updated with more precise estimates while YouTube processes the video.
      &quot;timeLeftMs&quot;: &quot;A String&quot;, # An estimate of the amount of time, in millseconds, that YouTube needs to finish processing the video.
    },
    &quot;processingStatus&quot;: &quot;A String&quot;, # The video&#x27;s processing status. This value indicates whether YouTube was able to process the video or if the video is still being processed.
    &quot;tagSuggestionsAvailability&quot;: &quot;A String&quot;, # This value indicates whether keyword (tag) suggestions are available for the video. Tags can be added to a video&#x27;s metadata to make it easier for other users to find the video. You can retrieve these suggestions by requesting the suggestions part in your videos.list() request.
    &quot;thumbnailsAvailability&quot;: &quot;A String&quot;, # This value indicates whether thumbnail images have been generated for the video.
  },
  &quot;projectDetails&quot;: { # DEPRECATED. b/157517979: This part was never populated after it was added. However, it sees non-zero traffic because there is generated client code in the wild that refers to it [1]. We keep this field and do NOT remove it because otherwise V3 would return an error when this part gets requested [2]. [1] https://developers.google.com/resources/api-libraries/documentation/youtube/v3/csharp/latest/classGoogle_1_1Apis_1_1YouTube_1_1v3_1_1Data_1_1VideoProjectDetails.html [2] http://google3/video/youtube/src/python/servers/data_api/common.py?l=1565-1569&amp;rcl=344141677 # The projectDetails object contains information about the project specific video metadata. b/157517979: This part was never populated after it was added. However, it sees non-zero traffic because there is generated client code in the wild that refers to it [1]. We keep this field and do NOT remove it because otherwise V3 would return an error when this part gets requested [2]. [1] https://developers.google.com/resources/api-libraries/documentation/youtube/v3/csharp/latest/classGoogle_1_1Apis_1_1YouTube_1_1v3_1_1Data_1_1VideoProjectDetails.html [2] http://google3/video/youtube/src/python/servers/data_api/common.py?l=1565-1569&amp;rcl=344141677
  },
  &quot;recordingDetails&quot;: { # Recording information associated with the video. # The recordingDetails object encapsulates information about the location, date and address where the video was recorded.
    &quot;location&quot;: { # Geographical coordinates of a point, in WGS84. # The geolocation information associated with the video.
      &quot;altitude&quot;: 3.14, # Altitude above the reference ellipsoid, in meters.
      &quot;latitude&quot;: 3.14, # Latitude in degrees.
      &quot;longitude&quot;: 3.14, # Longitude in degrees.
    },
    &quot;locationDescription&quot;: &quot;A String&quot;, # The text description of the location where the video was recorded.
    &quot;recordingDate&quot;: &quot;A String&quot;, # The date and time when the video was recorded.
  },
  &quot;snippet&quot;: { # Basic details about a video, including title, description, uploader, thumbnails and category. # The snippet object contains basic details about the video, such as its title, description, and category.
    &quot;categoryId&quot;: &quot;A String&quot;, # The YouTube video category associated with the video.
    &quot;channelId&quot;: &quot;A String&quot;, # The ID that YouTube uses to uniquely identify the channel that the video was uploaded to.
    &quot;channelTitle&quot;: &quot;A String&quot;, # Channel title for the channel that the video belongs to.
    &quot;defaultAudioLanguage&quot;: &quot;A String&quot;, # The default_audio_language property specifies the language spoken in the video&#x27;s default audio track.
    &quot;defaultLanguage&quot;: &quot;A String&quot;, # The language of the videos&#x27;s default snippet.
    &quot;description&quot;: &quot;A String&quot;, # The video&#x27;s description. @mutable youtube.videos.insert youtube.videos.update
    &quot;liveBroadcastContent&quot;: &quot;A String&quot;, # Indicates if the video is an upcoming/active live broadcast. Or it&#x27;s &quot;none&quot; if the video is not an upcoming/active live broadcast.
    &quot;localized&quot;: { # Localized versions of certain video properties (e.g. title). # Localized snippet selected with the hl parameter. If no such localization exists, this field is populated with the default snippet. (Read-only)
      &quot;description&quot;: &quot;A String&quot;, # Localized version of the video&#x27;s description.
      &quot;title&quot;: &quot;A String&quot;, # Localized version of the video&#x27;s title.
    },
    &quot;publishedAt&quot;: &quot;A String&quot;, # The date and time when the video was uploaded.
    &quot;tags&quot;: [ # A list of keyword tags associated with the video. Tags may contain spaces.
      &quot;A String&quot;,
    ],
    &quot;thumbnails&quot;: { # Internal representation of thumbnails for a YouTube resource. # A map of thumbnail images associated with the video. For each object in the map, the key is the name of the thumbnail image, and the value is an object that contains other information about the thumbnail.
      &quot;default&quot;: { # A thumbnail is an image representing a YouTube resource. # The default image for this resource.
        &quot;height&quot;: 42, # (Optional) Height of the thumbnail image.
        &quot;url&quot;: &quot;A String&quot;, # The thumbnail image&#x27;s URL.
        &quot;width&quot;: 42, # (Optional) Width of the thumbnail image.
      },
      &quot;high&quot;: { # A thumbnail is an image representing a YouTube resource. # The high quality image for this resource.
        &quot;height&quot;: 42, # (Optional) Height of the thumbnail image.
        &quot;url&quot;: &quot;A String&quot;, # The thumbnail image&#x27;s URL.
        &quot;width&quot;: 42, # (Optional) Width of the thumbnail image.
      },
      &quot;maxres&quot;: { # A thumbnail is an image representing a YouTube resource. # The maximum resolution quality image for this resource.
        &quot;height&quot;: 42, # (Optional) Height of the thumbnail image.
        &quot;url&quot;: &quot;A String&quot;, # The thumbnail image&#x27;s URL.
        &quot;width&quot;: 42, # (Optional) Width of the thumbnail image.
      },
      &quot;medium&quot;: { # A thumbnail is an image representing a YouTube resource. # The medium quality image for this resource.
        &quot;height&quot;: 42, # (Optional) Height of the thumbnail image.
        &quot;url&quot;: &quot;A String&quot;, # The thumbnail image&#x27;s URL.
        &quot;width&quot;: 42, # (Optional) Width of the thumbnail image.
      },
      &quot;standard&quot;: { # A thumbnail is an image representing a YouTube resource. # The standard quality image for this resource.
        &quot;height&quot;: 42, # (Optional) Height of the thumbnail image.
        &quot;url&quot;: &quot;A String&quot;, # The thumbnail image&#x27;s URL.
        &quot;width&quot;: 42, # (Optional) Width of the thumbnail image.
      },
    },
    &quot;title&quot;: &quot;A String&quot;, # The video&#x27;s title. @mutable youtube.videos.insert youtube.videos.update
  },
  &quot;statistics&quot;: { # Statistics about the video, such as the number of times the video was viewed or liked. # The statistics object contains statistics about the video.
    &quot;commentCount&quot;: &quot;A String&quot;, # The number of comments for the video.
    &quot;dislikeCount&quot;: &quot;A String&quot;, # The number of users who have indicated that they disliked the video by giving it a negative rating.
    &quot;favoriteCount&quot;: &quot;A String&quot;, # The number of users who currently have the video marked as a favorite video.
    &quot;likeCount&quot;: &quot;A String&quot;, # The number of users who have indicated that they liked the video by giving it a positive rating.
    &quot;viewCount&quot;: &quot;A String&quot;, # The number of times the video has been viewed.
  },
  &quot;status&quot;: { # Basic details about a video category, such as its localized title. Next Id: 17 # The status object contains information about the video&#x27;s uploading, processing, and privacy statuses.
    &quot;embeddable&quot;: True or False, # This value indicates if the video can be embedded on another website. @mutable youtube.videos.insert youtube.videos.update
    &quot;failureReason&quot;: &quot;A String&quot;, # This value explains why a video failed to upload. This property is only present if the uploadStatus property indicates that the upload failed.
    &quot;license&quot;: &quot;A String&quot;, # The video&#x27;s license. @mutable youtube.videos.insert youtube.videos.update
    &quot;madeForKids&quot;: True or False,
    &quot;privacyStatus&quot;: &quot;A String&quot;, # The video&#x27;s privacy status.
    &quot;publicStatsViewable&quot;: True or False, # This value indicates if the extended video statistics on the watch page can be viewed by everyone. Note that the view count, likes, etc will still be visible if this is disabled. @mutable youtube.videos.insert youtube.videos.update
    &quot;publishAt&quot;: &quot;A String&quot;, # The date and time when the video is scheduled to publish. It can be set only if the privacy status of the video is private..
    &quot;rejectionReason&quot;: &quot;A String&quot;, # This value explains why YouTube rejected an uploaded video. This property is only present if the uploadStatus property indicates that the upload was rejected.
    &quot;selfDeclaredMadeForKids&quot;: True or False,
    &quot;uploadStatus&quot;: &quot;A String&quot;, # The status of the uploaded video.
  },
  &quot;suggestions&quot;: { # Specifies suggestions on how to improve video content, including encoding hints, tag suggestions, and editor suggestions. # The suggestions object encapsulates suggestions that identify opportunities to improve the video quality or the metadata for the uploaded video. This data can only be retrieved by the video owner.
    &quot;editorSuggestions&quot;: [ # A list of video editing operations that might improve the video quality or playback experience of the uploaded video.
      &quot;A String&quot;,
    ],
    &quot;processingErrors&quot;: [ # A list of errors that will prevent YouTube from successfully processing the uploaded video video. These errors indicate that, regardless of the video&#x27;s current processing status, eventually, that status will almost certainly be failed.
      &quot;A String&quot;,
    ],
    &quot;processingHints&quot;: [ # A list of suggestions that may improve YouTube&#x27;s ability to process the video.
      &quot;A String&quot;,
    ],
    &quot;processingWarnings&quot;: [ # A list of reasons why YouTube may have difficulty transcoding the uploaded video or that might result in an erroneous transcoding. These warnings are generated before YouTube actually processes the uploaded video file. In addition, they identify issues that are unlikely to cause the video processing to fail but that might cause problems such as sync issues, video artifacts, or a missing audio track.
      &quot;A String&quot;,
    ],
    &quot;tagSuggestions&quot;: [ # A list of keyword tags that could be added to the video&#x27;s metadata to increase the likelihood that users will locate your video when searching or browsing on YouTube.
      { # A single tag suggestion with it&#x27;s relevance information.
        &quot;categoryRestricts&quot;: [ # A set of video categories for which the tag is relevant. You can use this information to display appropriate tag suggestions based on the video category that the video uploader associates with the video. By default, tag suggestions are relevant for all categories if there are no restricts defined for the keyword.
          &quot;A String&quot;,
        ],
        &quot;tag&quot;: &quot;A String&quot;, # The keyword tag suggested for the video.
      },
    ],
  },
  &quot;topicDetails&quot;: { # Freebase topic information related to the video. # The topicDetails object encapsulates information about Freebase topics associated with the video.
    &quot;relevantTopicIds&quot;: [ # Similar to topic_id, except that these topics are merely relevant to the video. These are topics that may be mentioned in, or appear in the video. You can retrieve information about each topic using Freebase Topic API.
      &quot;A String&quot;,
    ],
    &quot;topicCategories&quot;: [ # A list of Wikipedia URLs that provide a high-level description of the video&#x27;s content.
      &quot;A String&quot;,
    ],
    &quot;topicIds&quot;: [ # A list of Freebase topic IDs that are centrally associated with the video. These are topics that are centrally featured in the video, and it can be said that the video is mainly about each of these. You can retrieve information about each topic using the &lt; a href=&quot;http://wiki.freebase.com/wiki/Topic_API&quot;&gt;Freebase Topic API.
      &quot;A String&quot;,
    ],
  },
}

  autoLevels: boolean, Should auto-levels be applied to the upload.
  media_body: string, The filename of the media request body, or an instance of a MediaUpload object.
  media_mime_type: string, The MIME type of the media request body, or an instance of a MediaUpload object.
  notifySubscribers: boolean, Notify the channel subscribers about the new video. As default, the notification is enabled.
  onBehalfOfContentOwner: string, *Note:* This parameter is intended exclusively for YouTube content partners. The *onBehalfOfContentOwner* parameter indicates that the request&#x27;s authorization credentials identify a YouTube CMS user who is acting on behalf of the content owner specified in the parameter value. This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and get access to all their video and channel data, without having to provide authentication credentials for each individual channel. The CMS account that the user authenticates with must be linked to the specified YouTube content owner.
  onBehalfOfContentOwnerChannel: string, This parameter can only be used in a properly authorized request. *Note:* This parameter is intended exclusively for YouTube content partners. The *onBehalfOfContentOwnerChannel* parameter specifies the YouTube channel ID of the channel to which a video is being added. This parameter is required when a request specifies a value for the onBehalfOfContentOwner parameter, and it can only be used in conjunction with that parameter. In addition, the request must be authorized using a CMS account that is linked to the content owner that the onBehalfOfContentOwner parameter specifies. Finally, the channel that the onBehalfOfContentOwnerChannel parameter value specifies must be linked to the content owner that the onBehalfOfContentOwner parameter specifies. This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and perform actions on behalf of the channel specified in the parameter value, without having to provide authentication credentials for each separate channel.
  stabilize: boolean, Should stabilize be applied to the upload.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A *video* resource represents a YouTube video.
  &quot;ageGating&quot;: { # Age restriction details related to a video. This data can only be retrieved by the video owner.
    &quot;alcoholContent&quot;: True or False, # Indicates whether or not the video has alcoholic beverage content. Only users of legal purchasing age in a particular country, as identified by ICAP, can view the content.
    &quot;restricted&quot;: True or False, # Age-restricted trailers. For redband trailers and adult-rated video-games. Only users aged 18+ can view the content. The the field is true the content is restricted to viewers aged 18+. Otherwise The field won&#x27;t be present.
    &quot;videoGameRating&quot;: &quot;A String&quot;, # Video game rating, if any.
  },
  &quot;contentDetails&quot;: { # Details about the content of a YouTube Video. # The contentDetails object contains information about the video content, including the length of the video and its aspect ratio.
    &quot;caption&quot;: &quot;A String&quot;, # The value of captions indicates whether the video has captions or not.
    &quot;contentRating&quot;: { # Ratings schemes. The country-specific ratings are mostly for movies and shows. LINT.IfChange # Specifies the ratings that the video received under various rating schemes.
      &quot;acbRating&quot;: &quot;A String&quot;, # The video&#x27;s Australian Classification Board (ACB) or Australian Communications and Media Authority (ACMA) rating. ACMA ratings are used to classify children&#x27;s television programming.
      &quot;agcomRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Italy&#x27;s Autorità per le Garanzie nelle Comunicazioni (AGCOM).
      &quot;anatelRating&quot;: &quot;A String&quot;, # The video&#x27;s Anatel (Asociación Nacional de Televisión) rating for Chilean television.
      &quot;bbfcRating&quot;: &quot;A String&quot;, # The video&#x27;s British Board of Film Classification (BBFC) rating.
      &quot;bfvcRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Thailand&#x27;s Board of Film and Video Censors.
      &quot;bmukkRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from the Austrian Board of Media Classification (Bundesministerium für Unterricht, Kunst und Kultur).
      &quot;catvRating&quot;: &quot;A String&quot;, # Rating system for Canadian TV - Canadian TV Classification System The video&#x27;s rating from the Canadian Radio-Television and Telecommunications Commission (CRTC) for Canadian English-language broadcasts. For more information, see the Canadian Broadcast Standards Council website.
      &quot;catvfrRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from the Canadian Radio-Television and Telecommunications Commission (CRTC) for Canadian French-language broadcasts. For more information, see the Canadian Broadcast Standards Council website.
      &quot;cbfcRating&quot;: &quot;A String&quot;, # The video&#x27;s Central Board of Film Certification (CBFC - India) rating.
      &quot;cccRating&quot;: &quot;A String&quot;, # The video&#x27;s Consejo de Calificación Cinematográfica (Chile) rating.
      &quot;cceRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Portugal&#x27;s Comissão de Classificação de Espect´culos.
      &quot;chfilmRating&quot;: &quot;A String&quot;, # The video&#x27;s rating in Switzerland.
      &quot;chvrsRating&quot;: &quot;A String&quot;, # The video&#x27;s Canadian Home Video Rating System (CHVRS) rating.
      &quot;cicfRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from the Commission de Contrôle des Films (Belgium).
      &quot;cnaRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Romania&#x27;s CONSILIUL NATIONAL AL AUDIOVIZUALULUI (CNA).
      &quot;cncRating&quot;: &quot;A String&quot;, # Rating system in France - Commission de classification cinematographique
      &quot;csaRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from France&#x27;s Conseil supérieur de l’audiovisuel, which rates broadcast content.
      &quot;cscfRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Luxembourg&#x27;s Commission de surveillance de la classification des films (CSCF).
      &quot;czfilmRating&quot;: &quot;A String&quot;, # The video&#x27;s rating in the Czech Republic.
      &quot;djctqRating&quot;: &quot;A String&quot;, # The video&#x27;s Departamento de Justiça, Classificação, Qualificação e Títulos (DJCQT - Brazil) rating.
      &quot;djctqRatingReasons&quot;: [ # Reasons that explain why the video received its DJCQT (Brazil) rating.
        &quot;A String&quot;,
      ],
      &quot;ecbmctRating&quot;: &quot;A String&quot;, # Rating system in Turkey - Evaluation and Classification Board of the Ministry of Culture and Tourism
      &quot;eefilmRating&quot;: &quot;A String&quot;, # The video&#x27;s rating in Estonia.
      &quot;egfilmRating&quot;: &quot;A String&quot;, # The video&#x27;s rating in Egypt.
      &quot;eirinRating&quot;: &quot;A String&quot;, # The video&#x27;s Eirin (映倫) rating. Eirin is the Japanese rating system.
      &quot;fcbmRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Malaysia&#x27;s Film Censorship Board.
      &quot;fcoRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Hong Kong&#x27;s Office for Film, Newspaper and Article Administration.
      &quot;fmocRating&quot;: &quot;A String&quot;, # This property has been deprecated. Use the contentDetails.contentRating.cncRating instead.
      &quot;fpbRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from South Africa&#x27;s Film and Publication Board.
      &quot;fpbRatingReasons&quot;: [ # Reasons that explain why the video received its FPB (South Africa) rating.
        &quot;A String&quot;,
      ],
      &quot;fskRating&quot;: &quot;A String&quot;, # The video&#x27;s Freiwillige Selbstkontrolle der Filmwirtschaft (FSK - Germany) rating.
      &quot;grfilmRating&quot;: &quot;A String&quot;, # The video&#x27;s rating in Greece.
      &quot;icaaRating&quot;: &quot;A String&quot;, # The video&#x27;s Instituto de la Cinematografía y de las Artes Audiovisuales (ICAA - Spain) rating.
      &quot;ifcoRating&quot;: &quot;A String&quot;, # The video&#x27;s Irish Film Classification Office (IFCO - Ireland) rating. See the IFCO website for more information.
      &quot;ilfilmRating&quot;: &quot;A String&quot;, # The video&#x27;s rating in Israel.
      &quot;incaaRating&quot;: &quot;A String&quot;, # The video&#x27;s INCAA (Instituto Nacional de Cine y Artes Audiovisuales - Argentina) rating.
      &quot;kfcbRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from the Kenya Film Classification Board.
      &quot;kijkwijzerRating&quot;: &quot;A String&quot;, # The video&#x27;s NICAM/Kijkwijzer rating from the Nederlands Instituut voor de Classificatie van Audiovisuele Media (Netherlands).
      &quot;kmrbRating&quot;: &quot;A String&quot;, # The video&#x27;s Korea Media Rating Board (영상물등급위원회) rating. The KMRB rates videos in South Korea.
      &quot;lsfRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Indonesia&#x27;s Lembaga Sensor Film.
      &quot;mccaaRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Malta&#x27;s Film Age-Classification Board.
      &quot;mccypRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from the Danish Film Institute&#x27;s (Det Danske Filminstitut) Media Council for Children and Young People.
      &quot;mcstRating&quot;: &quot;A String&quot;, # The video&#x27;s rating system for Vietnam - MCST
      &quot;mdaRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Singapore&#x27;s Media Development Authority (MDA) and, specifically, it&#x27;s Board of Film Censors (BFC).
      &quot;medietilsynetRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Medietilsynet, the Norwegian Media Authority.
      &quot;mekuRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Finland&#x27;s Kansallinen Audiovisuaalinen Instituutti (National Audiovisual Institute).
      &quot;menaMpaaRating&quot;: &quot;A String&quot;, # The rating system for MENA countries, a clone of MPAA. It is needed to prevent titles go live w/o additional QC check, since some of them can be inappropriate for the countries at all. See b/33408548 for more details.
      &quot;mibacRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from the Ministero dei Beni e delle Attività Culturali e del Turismo (Italy).
      &quot;mocRating&quot;: &quot;A String&quot;, # The video&#x27;s Ministerio de Cultura (Colombia) rating.
      &quot;moctwRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Taiwan&#x27;s Ministry of Culture (文化部).
      &quot;mpaaRating&quot;: &quot;A String&quot;, # The video&#x27;s Motion Picture Association of America (MPAA) rating.
      &quot;mpaatRating&quot;: &quot;A String&quot;, # The rating system for trailer, DVD, and Ad in the US. See http://movielabs.com/md/ratings/v2.3/html/US_MPAAT_Ratings.html.
      &quot;mtrcbRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from the Movie and Television Review and Classification Board (Philippines).
      &quot;nbcRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from the Maldives National Bureau of Classification.
      &quot;nbcplRating&quot;: &quot;A String&quot;, # The video&#x27;s rating in Poland.
      &quot;nfrcRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from the Bulgarian National Film Center.
      &quot;nfvcbRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Nigeria&#x27;s National Film and Video Censors Board.
      &quot;nkclvRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from the Nacionãlais Kino centrs (National Film Centre of Latvia).
      &quot;nmcRating&quot;: &quot;A String&quot;, # The National Media Council ratings system for United Arab Emirates.
      &quot;oflcRating&quot;: &quot;A String&quot;, # The video&#x27;s Office of Film and Literature Classification (OFLC - New Zealand) rating.
      &quot;pefilmRating&quot;: &quot;A String&quot;, # The video&#x27;s rating in Peru.
      &quot;rcnofRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from the Hungarian Nemzeti Filmiroda, the Rating Committee of the National Office of Film.
      &quot;resorteviolenciaRating&quot;: &quot;A String&quot;, # The video&#x27;s rating in Venezuela.
      &quot;rtcRating&quot;: &quot;A String&quot;, # The video&#x27;s General Directorate of Radio, Television and Cinematography (Mexico) rating.
      &quot;rteRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Ireland&#x27;s Raidió Teilifís Éireann.
      &quot;russiaRating&quot;: &quot;A String&quot;, # The video&#x27;s National Film Registry of the Russian Federation (MKRF - Russia) rating.
      &quot;skfilmRating&quot;: &quot;A String&quot;, # The video&#x27;s rating in Slovakia.
      &quot;smaisRating&quot;: &quot;A String&quot;, # The video&#x27;s rating in Iceland.
      &quot;smsaRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Statens medieråd (Sweden&#x27;s National Media Council).
      &quot;tvpgRating&quot;: &quot;A String&quot;, # The video&#x27;s TV Parental Guidelines (TVPG) rating.
      &quot;ytRating&quot;: &quot;A String&quot;, # A rating that YouTube uses to identify age-restricted content.
    },
    &quot;countryRestriction&quot;: { # Rights management policy for YouTube resources. # The countryRestriction object contains information about the countries where a video is (or is not) viewable.
      &quot;allowed&quot;: True or False, # The value of allowed indicates whether the access to the policy is allowed or denied by default.
      &quot;exception&quot;: [ # A list of region codes that identify countries where the default policy do not apply.
        &quot;A String&quot;,
      ],
    },
    &quot;definition&quot;: &quot;A String&quot;, # The value of definition indicates whether the video is available in high definition or only in standard definition.
    &quot;dimension&quot;: &quot;A String&quot;, # The value of dimension indicates whether the video is available in 3D or in 2D.
    &quot;duration&quot;: &quot;A String&quot;, # The length of the video. The tag value is an ISO 8601 duration in the format PT#M#S, in which the letters PT indicate that the value specifies a period of time, and the letters M and S refer to length in minutes and seconds, respectively. The # characters preceding the M and S letters are both integers that specify the number of minutes (or seconds) of the video. For example, a value of PT15M51S indicates that the video is 15 minutes and 51 seconds long.
    &quot;hasCustomThumbnail&quot;: True or False, # Indicates whether the video uploader has provided a custom thumbnail image for the video. This property is only visible to the video uploader.
    &quot;licensedContent&quot;: True or False, # The value of is_license_content indicates whether the video is licensed content.
    &quot;projection&quot;: &quot;A String&quot;, # Specifies the projection format of the video.
    &quot;regionRestriction&quot;: { # DEPRECATED Region restriction of the video. # The regionRestriction object contains information about the countries where a video is (or is not) viewable. The object will contain either the contentDetails.regionRestriction.allowed property or the contentDetails.regionRestriction.blocked property.
      &quot;allowed&quot;: [ # A list of region codes that identify countries where the video is viewable. If this property is present and a country is not listed in its value, then the video is blocked from appearing in that country. If this property is present and contains an empty list, the video is blocked in all countries.
        &quot;A String&quot;,
      ],
      &quot;blocked&quot;: [ # A list of region codes that identify countries where the video is blocked. If this property is present and a country is not listed in its value, then the video is viewable in that country. If this property is present and contains an empty list, the video is viewable in all countries.
        &quot;A String&quot;,
      ],
    },
  },
  &quot;etag&quot;: &quot;A String&quot;, # Etag of this resource.
  &quot;fileDetails&quot;: { # Describes original video file properties, including technical details about audio and video streams, but also metadata information like content length, digitization time, or geotagging information. # The fileDetails object encapsulates information about the video file that was uploaded to YouTube, including the file&#x27;s resolution, duration, audio and video codecs, stream bitrates, and more. This data can only be retrieved by the video owner.
    &quot;audioStreams&quot;: [ # A list of audio streams contained in the uploaded video file. Each item in the list contains detailed metadata about an audio stream.
      { # Information about an audio stream.
        &quot;bitrateBps&quot;: &quot;A String&quot;, # The audio stream&#x27;s bitrate, in bits per second.
        &quot;channelCount&quot;: 42, # The number of audio channels that the stream contains.
        &quot;codec&quot;: &quot;A String&quot;, # The audio codec that the stream uses.
        &quot;vendor&quot;: &quot;A String&quot;, # A value that uniquely identifies a video vendor. Typically, the value is a four-letter vendor code.
      },
    ],
    &quot;bitrateBps&quot;: &quot;A String&quot;, # The uploaded video file&#x27;s combined (video and audio) bitrate in bits per second.
    &quot;container&quot;: &quot;A String&quot;, # The uploaded video file&#x27;s container format.
    &quot;creationTime&quot;: &quot;A String&quot;, # The date and time when the uploaded video file was created. The value is specified in ISO 8601 format. Currently, the following ISO 8601 formats are supported: - Date only: YYYY-MM-DD - Naive time: YYYY-MM-DDTHH:MM:SS - Time with timezone: YYYY-MM-DDTHH:MM:SS+HH:MM
    &quot;durationMs&quot;: &quot;A String&quot;, # The length of the uploaded video in milliseconds.
    &quot;fileName&quot;: &quot;A String&quot;, # The uploaded file&#x27;s name. This field is present whether a video file or another type of file was uploaded.
    &quot;fileSize&quot;: &quot;A String&quot;, # The uploaded file&#x27;s size in bytes. This field is present whether a video file or another type of file was uploaded.
    &quot;fileType&quot;: &quot;A String&quot;, # The uploaded file&#x27;s type as detected by YouTube&#x27;s video processing engine. Currently, YouTube only processes video files, but this field is present whether a video file or another type of file was uploaded.
    &quot;videoStreams&quot;: [ # A list of video streams contained in the uploaded video file. Each item in the list contains detailed metadata about a video stream.
      { # Information about a video stream.
        &quot;aspectRatio&quot;: 3.14, # The video content&#x27;s display aspect ratio, which specifies the aspect ratio in which the video should be displayed.
        &quot;bitrateBps&quot;: &quot;A String&quot;, # The video stream&#x27;s bitrate, in bits per second.
        &quot;codec&quot;: &quot;A String&quot;, # The video codec that the stream uses.
        &quot;frameRateFps&quot;: 3.14, # The video stream&#x27;s frame rate, in frames per second.
        &quot;heightPixels&quot;: 42, # The encoded video content&#x27;s height in pixels.
        &quot;rotation&quot;: &quot;A String&quot;, # The amount that YouTube needs to rotate the original source content to properly display the video.
        &quot;vendor&quot;: &quot;A String&quot;, # A value that uniquely identifies a video vendor. Typically, the value is a four-letter vendor code.
        &quot;widthPixels&quot;: 42, # The encoded video content&#x27;s width in pixels. You can calculate the video&#x27;s encoding aspect ratio as width_pixels / height_pixels.
      },
    ],
  },
  &quot;id&quot;: &quot;A String&quot;, # The ID that YouTube uses to uniquely identify the video.
  &quot;kind&quot;: &quot;youtube#video&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;youtube#video&quot;.
  &quot;liveStreamingDetails&quot;: { # Details about the live streaming metadata. # The liveStreamingDetails object contains metadata about a live video broadcast. The object will only be present in a video resource if the video is an upcoming, live, or completed live broadcast.
    &quot;activeLiveChatId&quot;: &quot;A String&quot;, # The ID of the currently active live chat attached to this video. This field is filled only if the video is a currently live broadcast that has live chat. Once the broadcast transitions to complete this field will be removed and the live chat closed down. For persistent broadcasts that live chat id will no longer be tied to this video but rather to the new video being displayed at the persistent page.
    &quot;actualEndTime&quot;: &quot;A String&quot;, # The time that the broadcast actually ended. This value will not be available until the broadcast is over.
    &quot;actualStartTime&quot;: &quot;A String&quot;, # The time that the broadcast actually started. This value will not be available until the broadcast begins.
    &quot;concurrentViewers&quot;: &quot;A String&quot;, # The number of viewers currently watching the broadcast. The property and its value will be present if the broadcast has current viewers and the broadcast owner has not hidden the viewcount for the video. Note that YouTube stops tracking the number of concurrent viewers for a broadcast when the broadcast ends. So, this property would not identify the number of viewers watching an archived video of a live broadcast that already ended.
    &quot;scheduledEndTime&quot;: &quot;A String&quot;, # The time that the broadcast is scheduled to end. If the value is empty or the property is not present, then the broadcast is scheduled to contiue indefinitely.
    &quot;scheduledStartTime&quot;: &quot;A String&quot;, # The time that the broadcast is scheduled to begin.
  },
  &quot;localizations&quot;: { # The localizations object contains localized versions of the basic details about the video, such as its title and description.
    &quot;a_key&quot;: { # Localized versions of certain video properties (e.g. title).
      &quot;description&quot;: &quot;A String&quot;, # Localized version of the video&#x27;s description.
      &quot;title&quot;: &quot;A String&quot;, # Localized version of the video&#x27;s title.
    },
  },
  &quot;monetizationDetails&quot;: { # Details about monetization of a YouTube Video. # The monetizationDetails object encapsulates information about the monetization status of the video.
    &quot;access&quot;: { # Rights management policy for YouTube resources. # The value of access indicates whether the video can be monetized or not.
      &quot;allowed&quot;: True or False, # The value of allowed indicates whether the access to the policy is allowed or denied by default.
      &quot;exception&quot;: [ # A list of region codes that identify countries where the default policy do not apply.
        &quot;A String&quot;,
      ],
    },
  },
  &quot;player&quot;: { # Player to be used for a video playback. # The player object contains information that you would use to play the video in an embedded player.
    &quot;embedHeight&quot;: &quot;A String&quot;,
    &quot;embedHtml&quot;: &quot;A String&quot;, # An &lt;iframe&gt; tag that embeds a player that will play the video.
    &quot;embedWidth&quot;: &quot;A String&quot;, # The embed width
  },
  &quot;processingDetails&quot;: { # Describes processing status and progress and availability of some other Video resource parts. # The processingDetails object encapsulates information about YouTube&#x27;s progress in processing the uploaded video file. The properties in the object identify the current processing status and an estimate of the time remaining until YouTube finishes processing the video. This part also indicates whether different types of data or content, such as file details or thumbnail images, are available for the video. The processingProgress object is designed to be polled so that the video uploaded can track the progress that YouTube has made in processing the uploaded video file. This data can only be retrieved by the video owner.
    &quot;editorSuggestionsAvailability&quot;: &quot;A String&quot;, # This value indicates whether video editing suggestions, which might improve video quality or the playback experience, are available for the video. You can retrieve these suggestions by requesting the suggestions part in your videos.list() request.
    &quot;fileDetailsAvailability&quot;: &quot;A String&quot;, # This value indicates whether file details are available for the uploaded video. You can retrieve a video&#x27;s file details by requesting the fileDetails part in your videos.list() request.
    &quot;processingFailureReason&quot;: &quot;A String&quot;, # The reason that YouTube failed to process the video. This property will only have a value if the processingStatus property&#x27;s value is failed.
    &quot;processingIssuesAvailability&quot;: &quot;A String&quot;, # This value indicates whether the video processing engine has generated suggestions that might improve YouTube&#x27;s ability to process the the video, warnings that explain video processing problems, or errors that cause video processing problems. You can retrieve these suggestions by requesting the suggestions part in your videos.list() request.
    &quot;processingProgress&quot;: { # Video processing progress and completion time estimate. # The processingProgress object contains information about the progress YouTube has made in processing the video. The values are really only relevant if the video&#x27;s processing status is processing.
      &quot;partsProcessed&quot;: &quot;A String&quot;, # The number of parts of the video that YouTube has already processed. You can estimate the percentage of the video that YouTube has already processed by calculating: 100 * parts_processed / parts_total Note that since the estimated number of parts could increase without a corresponding increase in the number of parts that have already been processed, it is possible that the calculated progress could periodically decrease while YouTube processes a video.
      &quot;partsTotal&quot;: &quot;A String&quot;, # An estimate of the total number of parts that need to be processed for the video. The number may be updated with more precise estimates while YouTube processes the video.
      &quot;timeLeftMs&quot;: &quot;A String&quot;, # An estimate of the amount of time, in millseconds, that YouTube needs to finish processing the video.
    },
    &quot;processingStatus&quot;: &quot;A String&quot;, # The video&#x27;s processing status. This value indicates whether YouTube was able to process the video or if the video is still being processed.
    &quot;tagSuggestionsAvailability&quot;: &quot;A String&quot;, # This value indicates whether keyword (tag) suggestions are available for the video. Tags can be added to a video&#x27;s metadata to make it easier for other users to find the video. You can retrieve these suggestions by requesting the suggestions part in your videos.list() request.
    &quot;thumbnailsAvailability&quot;: &quot;A String&quot;, # This value indicates whether thumbnail images have been generated for the video.
  },
  &quot;projectDetails&quot;: { # DEPRECATED. b/157517979: This part was never populated after it was added. However, it sees non-zero traffic because there is generated client code in the wild that refers to it [1]. We keep this field and do NOT remove it because otherwise V3 would return an error when this part gets requested [2]. [1] https://developers.google.com/resources/api-libraries/documentation/youtube/v3/csharp/latest/classGoogle_1_1Apis_1_1YouTube_1_1v3_1_1Data_1_1VideoProjectDetails.html [2] http://google3/video/youtube/src/python/servers/data_api/common.py?l=1565-1569&amp;rcl=344141677 # The projectDetails object contains information about the project specific video metadata. b/157517979: This part was never populated after it was added. However, it sees non-zero traffic because there is generated client code in the wild that refers to it [1]. We keep this field and do NOT remove it because otherwise V3 would return an error when this part gets requested [2]. [1] https://developers.google.com/resources/api-libraries/documentation/youtube/v3/csharp/latest/classGoogle_1_1Apis_1_1YouTube_1_1v3_1_1Data_1_1VideoProjectDetails.html [2] http://google3/video/youtube/src/python/servers/data_api/common.py?l=1565-1569&amp;rcl=344141677
  },
  &quot;recordingDetails&quot;: { # Recording information associated with the video. # The recordingDetails object encapsulates information about the location, date and address where the video was recorded.
    &quot;location&quot;: { # Geographical coordinates of a point, in WGS84. # The geolocation information associated with the video.
      &quot;altitude&quot;: 3.14, # Altitude above the reference ellipsoid, in meters.
      &quot;latitude&quot;: 3.14, # Latitude in degrees.
      &quot;longitude&quot;: 3.14, # Longitude in degrees.
    },
    &quot;locationDescription&quot;: &quot;A String&quot;, # The text description of the location where the video was recorded.
    &quot;recordingDate&quot;: &quot;A String&quot;, # The date and time when the video was recorded.
  },
  &quot;snippet&quot;: { # Basic details about a video, including title, description, uploader, thumbnails and category. # The snippet object contains basic details about the video, such as its title, description, and category.
    &quot;categoryId&quot;: &quot;A String&quot;, # The YouTube video category associated with the video.
    &quot;channelId&quot;: &quot;A String&quot;, # The ID that YouTube uses to uniquely identify the channel that the video was uploaded to.
    &quot;channelTitle&quot;: &quot;A String&quot;, # Channel title for the channel that the video belongs to.
    &quot;defaultAudioLanguage&quot;: &quot;A String&quot;, # The default_audio_language property specifies the language spoken in the video&#x27;s default audio track.
    &quot;defaultLanguage&quot;: &quot;A String&quot;, # The language of the videos&#x27;s default snippet.
    &quot;description&quot;: &quot;A String&quot;, # The video&#x27;s description. @mutable youtube.videos.insert youtube.videos.update
    &quot;liveBroadcastContent&quot;: &quot;A String&quot;, # Indicates if the video is an upcoming/active live broadcast. Or it&#x27;s &quot;none&quot; if the video is not an upcoming/active live broadcast.
    &quot;localized&quot;: { # Localized versions of certain video properties (e.g. title). # Localized snippet selected with the hl parameter. If no such localization exists, this field is populated with the default snippet. (Read-only)
      &quot;description&quot;: &quot;A String&quot;, # Localized version of the video&#x27;s description.
      &quot;title&quot;: &quot;A String&quot;, # Localized version of the video&#x27;s title.
    },
    &quot;publishedAt&quot;: &quot;A String&quot;, # The date and time when the video was uploaded.
    &quot;tags&quot;: [ # A list of keyword tags associated with the video. Tags may contain spaces.
      &quot;A String&quot;,
    ],
    &quot;thumbnails&quot;: { # Internal representation of thumbnails for a YouTube resource. # A map of thumbnail images associated with the video. For each object in the map, the key is the name of the thumbnail image, and the value is an object that contains other information about the thumbnail.
      &quot;default&quot;: { # A thumbnail is an image representing a YouTube resource. # The default image for this resource.
        &quot;height&quot;: 42, # (Optional) Height of the thumbnail image.
        &quot;url&quot;: &quot;A String&quot;, # The thumbnail image&#x27;s URL.
        &quot;width&quot;: 42, # (Optional) Width of the thumbnail image.
      },
      &quot;high&quot;: { # A thumbnail is an image representing a YouTube resource. # The high quality image for this resource.
        &quot;height&quot;: 42, # (Optional) Height of the thumbnail image.
        &quot;url&quot;: &quot;A String&quot;, # The thumbnail image&#x27;s URL.
        &quot;width&quot;: 42, # (Optional) Width of the thumbnail image.
      },
      &quot;maxres&quot;: { # A thumbnail is an image representing a YouTube resource. # The maximum resolution quality image for this resource.
        &quot;height&quot;: 42, # (Optional) Height of the thumbnail image.
        &quot;url&quot;: &quot;A String&quot;, # The thumbnail image&#x27;s URL.
        &quot;width&quot;: 42, # (Optional) Width of the thumbnail image.
      },
      &quot;medium&quot;: { # A thumbnail is an image representing a YouTube resource. # The medium quality image for this resource.
        &quot;height&quot;: 42, # (Optional) Height of the thumbnail image.
        &quot;url&quot;: &quot;A String&quot;, # The thumbnail image&#x27;s URL.
        &quot;width&quot;: 42, # (Optional) Width of the thumbnail image.
      },
      &quot;standard&quot;: { # A thumbnail is an image representing a YouTube resource. # The standard quality image for this resource.
        &quot;height&quot;: 42, # (Optional) Height of the thumbnail image.
        &quot;url&quot;: &quot;A String&quot;, # The thumbnail image&#x27;s URL.
        &quot;width&quot;: 42, # (Optional) Width of the thumbnail image.
      },
    },
    &quot;title&quot;: &quot;A String&quot;, # The video&#x27;s title. @mutable youtube.videos.insert youtube.videos.update
  },
  &quot;statistics&quot;: { # Statistics about the video, such as the number of times the video was viewed or liked. # The statistics object contains statistics about the video.
    &quot;commentCount&quot;: &quot;A String&quot;, # The number of comments for the video.
    &quot;dislikeCount&quot;: &quot;A String&quot;, # The number of users who have indicated that they disliked the video by giving it a negative rating.
    &quot;favoriteCount&quot;: &quot;A String&quot;, # The number of users who currently have the video marked as a favorite video.
    &quot;likeCount&quot;: &quot;A String&quot;, # The number of users who have indicated that they liked the video by giving it a positive rating.
    &quot;viewCount&quot;: &quot;A String&quot;, # The number of times the video has been viewed.
  },
  &quot;status&quot;: { # Basic details about a video category, such as its localized title. Next Id: 17 # The status object contains information about the video&#x27;s uploading, processing, and privacy statuses.
    &quot;embeddable&quot;: True or False, # This value indicates if the video can be embedded on another website. @mutable youtube.videos.insert youtube.videos.update
    &quot;failureReason&quot;: &quot;A String&quot;, # This value explains why a video failed to upload. This property is only present if the uploadStatus property indicates that the upload failed.
    &quot;license&quot;: &quot;A String&quot;, # The video&#x27;s license. @mutable youtube.videos.insert youtube.videos.update
    &quot;madeForKids&quot;: True or False,
    &quot;privacyStatus&quot;: &quot;A String&quot;, # The video&#x27;s privacy status.
    &quot;publicStatsViewable&quot;: True or False, # This value indicates if the extended video statistics on the watch page can be viewed by everyone. Note that the view count, likes, etc will still be visible if this is disabled. @mutable youtube.videos.insert youtube.videos.update
    &quot;publishAt&quot;: &quot;A String&quot;, # The date and time when the video is scheduled to publish. It can be set only if the privacy status of the video is private..
    &quot;rejectionReason&quot;: &quot;A String&quot;, # This value explains why YouTube rejected an uploaded video. This property is only present if the uploadStatus property indicates that the upload was rejected.
    &quot;selfDeclaredMadeForKids&quot;: True or False,
    &quot;uploadStatus&quot;: &quot;A String&quot;, # The status of the uploaded video.
  },
  &quot;suggestions&quot;: { # Specifies suggestions on how to improve video content, including encoding hints, tag suggestions, and editor suggestions. # The suggestions object encapsulates suggestions that identify opportunities to improve the video quality or the metadata for the uploaded video. This data can only be retrieved by the video owner.
    &quot;editorSuggestions&quot;: [ # A list of video editing operations that might improve the video quality or playback experience of the uploaded video.
      &quot;A String&quot;,
    ],
    &quot;processingErrors&quot;: [ # A list of errors that will prevent YouTube from successfully processing the uploaded video video. These errors indicate that, regardless of the video&#x27;s current processing status, eventually, that status will almost certainly be failed.
      &quot;A String&quot;,
    ],
    &quot;processingHints&quot;: [ # A list of suggestions that may improve YouTube&#x27;s ability to process the video.
      &quot;A String&quot;,
    ],
    &quot;processingWarnings&quot;: [ # A list of reasons why YouTube may have difficulty transcoding the uploaded video or that might result in an erroneous transcoding. These warnings are generated before YouTube actually processes the uploaded video file. In addition, they identify issues that are unlikely to cause the video processing to fail but that might cause problems such as sync issues, video artifacts, or a missing audio track.
      &quot;A String&quot;,
    ],
    &quot;tagSuggestions&quot;: [ # A list of keyword tags that could be added to the video&#x27;s metadata to increase the likelihood that users will locate your video when searching or browsing on YouTube.
      { # A single tag suggestion with it&#x27;s relevance information.
        &quot;categoryRestricts&quot;: [ # A set of video categories for which the tag is relevant. You can use this information to display appropriate tag suggestions based on the video category that the video uploader associates with the video. By default, tag suggestions are relevant for all categories if there are no restricts defined for the keyword.
          &quot;A String&quot;,
        ],
        &quot;tag&quot;: &quot;A String&quot;, # The keyword tag suggested for the video.
      },
    ],
  },
  &quot;topicDetails&quot;: { # Freebase topic information related to the video. # The topicDetails object encapsulates information about Freebase topics associated with the video.
    &quot;relevantTopicIds&quot;: [ # Similar to topic_id, except that these topics are merely relevant to the video. These are topics that may be mentioned in, or appear in the video. You can retrieve information about each topic using Freebase Topic API.
      &quot;A String&quot;,
    ],
    &quot;topicCategories&quot;: [ # A list of Wikipedia URLs that provide a high-level description of the video&#x27;s content.
      &quot;A String&quot;,
    ],
    &quot;topicIds&quot;: [ # A list of Freebase topic IDs that are centrally associated with the video. These are topics that are centrally featured in the video, and it can be said that the video is mainly about each of these. You can retrieve information about each topic using the &lt; a href=&quot;http://wiki.freebase.com/wiki/Topic_API&quot;&gt;Freebase Topic API.
      &quot;A String&quot;,
    ],
  },
}</pre>
</div>

<div class="method">
    <code class="details" id="list">list(part, chart=None, hl=None, id=None, locale=None, maxHeight=None, maxResults=None, maxWidth=None, myRating=None, onBehalfOfContentOwner=None, pageToken=None, regionCode=None, videoCategoryId=None, x__xgafv=None)</code>
  <pre>Retrieves a list of resources, possibly filtered.

Args:
  part: string, The *part* parameter specifies a comma-separated list of one or more video resource properties that the API response will include. If the parameter identifies a property that contains child properties, the child properties will be included in the response. For example, in a video resource, the snippet property contains the channelId, title, description, tags, and categoryId properties. As such, if you set *part=snippet*, the API response will contain all of those properties. (required) (repeated)
  chart: string, Return the videos that are in the specified chart.
    Allowed values
      chartUnspecified - 
      mostPopular - Return the most popular videos for the specified content region and video category.
  hl: string, Stands for &quot;host language&quot;. Specifies the localization language of the metadata to be filled into snippet.localized. The field is filled with the default metadata if there is no localization in the specified language. The parameter value must be a language code included in the list returned by the i18nLanguages.list method (e.g. en_US, es_MX).
  id: string, Return videos with the given ids. (repeated)
  locale: string, A parameter
  maxHeight: integer, A parameter
  maxResults: integer, The *maxResults* parameter specifies the maximum number of items that should be returned in the result set. *Note:* This parameter is supported for use in conjunction with the myRating and chart parameters, but it is not supported for use in conjunction with the id parameter.
  maxWidth: integer, Return the player with maximum height specified in
  myRating: string, Return videos liked/disliked by the authenticated user. Does not support RateType.RATED_TYPE_NONE.
    Allowed values
      none - 
      like - The entity is liked.
      dislike - The entity is disliked.
  onBehalfOfContentOwner: string, *Note:* This parameter is intended exclusively for YouTube content partners. The *onBehalfOfContentOwner* parameter indicates that the request&#x27;s authorization credentials identify a YouTube CMS user who is acting on behalf of the content owner specified in the parameter value. This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and get access to all their video and channel data, without having to provide authentication credentials for each individual channel. The CMS account that the user authenticates with must be linked to the specified YouTube content owner.
  pageToken: string, The *pageToken* parameter identifies a specific page in the result set that should be returned. In an API response, the nextPageToken and prevPageToken properties identify other pages that could be retrieved. *Note:* This parameter is supported for use in conjunction with the myRating and chart parameters, but it is not supported for use in conjunction with the id parameter.
  regionCode: string, Use a chart that is specific to the specified region
  videoCategoryId: string, Use chart that is specific to the specified video category
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    {
  &quot;etag&quot;: &quot;A String&quot;, # Etag of this resource.
  &quot;eventId&quot;: &quot;A String&quot;, # Serialized EventId of the request which produced this response.
  &quot;items&quot;: [
    { # A *video* resource represents a YouTube video.
      &quot;ageGating&quot;: { # Age restriction details related to a video. This data can only be retrieved by the video owner.
        &quot;alcoholContent&quot;: True or False, # Indicates whether or not the video has alcoholic beverage content. Only users of legal purchasing age in a particular country, as identified by ICAP, can view the content.
        &quot;restricted&quot;: True or False, # Age-restricted trailers. For redband trailers and adult-rated video-games. Only users aged 18+ can view the content. The the field is true the content is restricted to viewers aged 18+. Otherwise The field won&#x27;t be present.
        &quot;videoGameRating&quot;: &quot;A String&quot;, # Video game rating, if any.
      },
      &quot;contentDetails&quot;: { # Details about the content of a YouTube Video. # The contentDetails object contains information about the video content, including the length of the video and its aspect ratio.
        &quot;caption&quot;: &quot;A String&quot;, # The value of captions indicates whether the video has captions or not.
        &quot;contentRating&quot;: { # Ratings schemes. The country-specific ratings are mostly for movies and shows. LINT.IfChange # Specifies the ratings that the video received under various rating schemes.
          &quot;acbRating&quot;: &quot;A String&quot;, # The video&#x27;s Australian Classification Board (ACB) or Australian Communications and Media Authority (ACMA) rating. ACMA ratings are used to classify children&#x27;s television programming.
          &quot;agcomRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Italy&#x27;s Autorità per le Garanzie nelle Comunicazioni (AGCOM).
          &quot;anatelRating&quot;: &quot;A String&quot;, # The video&#x27;s Anatel (Asociación Nacional de Televisión) rating for Chilean television.
          &quot;bbfcRating&quot;: &quot;A String&quot;, # The video&#x27;s British Board of Film Classification (BBFC) rating.
          &quot;bfvcRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Thailand&#x27;s Board of Film and Video Censors.
          &quot;bmukkRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from the Austrian Board of Media Classification (Bundesministerium für Unterricht, Kunst und Kultur).
          &quot;catvRating&quot;: &quot;A String&quot;, # Rating system for Canadian TV - Canadian TV Classification System The video&#x27;s rating from the Canadian Radio-Television and Telecommunications Commission (CRTC) for Canadian English-language broadcasts. For more information, see the Canadian Broadcast Standards Council website.
          &quot;catvfrRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from the Canadian Radio-Television and Telecommunications Commission (CRTC) for Canadian French-language broadcasts. For more information, see the Canadian Broadcast Standards Council website.
          &quot;cbfcRating&quot;: &quot;A String&quot;, # The video&#x27;s Central Board of Film Certification (CBFC - India) rating.
          &quot;cccRating&quot;: &quot;A String&quot;, # The video&#x27;s Consejo de Calificación Cinematográfica (Chile) rating.
          &quot;cceRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Portugal&#x27;s Comissão de Classificação de Espect´culos.
          &quot;chfilmRating&quot;: &quot;A String&quot;, # The video&#x27;s rating in Switzerland.
          &quot;chvrsRating&quot;: &quot;A String&quot;, # The video&#x27;s Canadian Home Video Rating System (CHVRS) rating.
          &quot;cicfRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from the Commission de Contrôle des Films (Belgium).
          &quot;cnaRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Romania&#x27;s CONSILIUL NATIONAL AL AUDIOVIZUALULUI (CNA).
          &quot;cncRating&quot;: &quot;A String&quot;, # Rating system in France - Commission de classification cinematographique
          &quot;csaRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from France&#x27;s Conseil supérieur de l’audiovisuel, which rates broadcast content.
          &quot;cscfRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Luxembourg&#x27;s Commission de surveillance de la classification des films (CSCF).
          &quot;czfilmRating&quot;: &quot;A String&quot;, # The video&#x27;s rating in the Czech Republic.
          &quot;djctqRating&quot;: &quot;A String&quot;, # The video&#x27;s Departamento de Justiça, Classificação, Qualificação e Títulos (DJCQT - Brazil) rating.
          &quot;djctqRatingReasons&quot;: [ # Reasons that explain why the video received its DJCQT (Brazil) rating.
            &quot;A String&quot;,
          ],
          &quot;ecbmctRating&quot;: &quot;A String&quot;, # Rating system in Turkey - Evaluation and Classification Board of the Ministry of Culture and Tourism
          &quot;eefilmRating&quot;: &quot;A String&quot;, # The video&#x27;s rating in Estonia.
          &quot;egfilmRating&quot;: &quot;A String&quot;, # The video&#x27;s rating in Egypt.
          &quot;eirinRating&quot;: &quot;A String&quot;, # The video&#x27;s Eirin (映倫) rating. Eirin is the Japanese rating system.
          &quot;fcbmRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Malaysia&#x27;s Film Censorship Board.
          &quot;fcoRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Hong Kong&#x27;s Office for Film, Newspaper and Article Administration.
          &quot;fmocRating&quot;: &quot;A String&quot;, # This property has been deprecated. Use the contentDetails.contentRating.cncRating instead.
          &quot;fpbRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from South Africa&#x27;s Film and Publication Board.
          &quot;fpbRatingReasons&quot;: [ # Reasons that explain why the video received its FPB (South Africa) rating.
            &quot;A String&quot;,
          ],
          &quot;fskRating&quot;: &quot;A String&quot;, # The video&#x27;s Freiwillige Selbstkontrolle der Filmwirtschaft (FSK - Germany) rating.
          &quot;grfilmRating&quot;: &quot;A String&quot;, # The video&#x27;s rating in Greece.
          &quot;icaaRating&quot;: &quot;A String&quot;, # The video&#x27;s Instituto de la Cinematografía y de las Artes Audiovisuales (ICAA - Spain) rating.
          &quot;ifcoRating&quot;: &quot;A String&quot;, # The video&#x27;s Irish Film Classification Office (IFCO - Ireland) rating. See the IFCO website for more information.
          &quot;ilfilmRating&quot;: &quot;A String&quot;, # The video&#x27;s rating in Israel.
          &quot;incaaRating&quot;: &quot;A String&quot;, # The video&#x27;s INCAA (Instituto Nacional de Cine y Artes Audiovisuales - Argentina) rating.
          &quot;kfcbRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from the Kenya Film Classification Board.
          &quot;kijkwijzerRating&quot;: &quot;A String&quot;, # The video&#x27;s NICAM/Kijkwijzer rating from the Nederlands Instituut voor de Classificatie van Audiovisuele Media (Netherlands).
          &quot;kmrbRating&quot;: &quot;A String&quot;, # The video&#x27;s Korea Media Rating Board (영상물등급위원회) rating. The KMRB rates videos in South Korea.
          &quot;lsfRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Indonesia&#x27;s Lembaga Sensor Film.
          &quot;mccaaRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Malta&#x27;s Film Age-Classification Board.
          &quot;mccypRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from the Danish Film Institute&#x27;s (Det Danske Filminstitut) Media Council for Children and Young People.
          &quot;mcstRating&quot;: &quot;A String&quot;, # The video&#x27;s rating system for Vietnam - MCST
          &quot;mdaRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Singapore&#x27;s Media Development Authority (MDA) and, specifically, it&#x27;s Board of Film Censors (BFC).
          &quot;medietilsynetRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Medietilsynet, the Norwegian Media Authority.
          &quot;mekuRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Finland&#x27;s Kansallinen Audiovisuaalinen Instituutti (National Audiovisual Institute).
          &quot;menaMpaaRating&quot;: &quot;A String&quot;, # The rating system for MENA countries, a clone of MPAA. It is needed to prevent titles go live w/o additional QC check, since some of them can be inappropriate for the countries at all. See b/33408548 for more details.
          &quot;mibacRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from the Ministero dei Beni e delle Attività Culturali e del Turismo (Italy).
          &quot;mocRating&quot;: &quot;A String&quot;, # The video&#x27;s Ministerio de Cultura (Colombia) rating.
          &quot;moctwRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Taiwan&#x27;s Ministry of Culture (文化部).
          &quot;mpaaRating&quot;: &quot;A String&quot;, # The video&#x27;s Motion Picture Association of America (MPAA) rating.
          &quot;mpaatRating&quot;: &quot;A String&quot;, # The rating system for trailer, DVD, and Ad in the US. See http://movielabs.com/md/ratings/v2.3/html/US_MPAAT_Ratings.html.
          &quot;mtrcbRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from the Movie and Television Review and Classification Board (Philippines).
          &quot;nbcRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from the Maldives National Bureau of Classification.
          &quot;nbcplRating&quot;: &quot;A String&quot;, # The video&#x27;s rating in Poland.
          &quot;nfrcRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from the Bulgarian National Film Center.
          &quot;nfvcbRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Nigeria&#x27;s National Film and Video Censors Board.
          &quot;nkclvRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from the Nacionãlais Kino centrs (National Film Centre of Latvia).
          &quot;nmcRating&quot;: &quot;A String&quot;, # The National Media Council ratings system for United Arab Emirates.
          &quot;oflcRating&quot;: &quot;A String&quot;, # The video&#x27;s Office of Film and Literature Classification (OFLC - New Zealand) rating.
          &quot;pefilmRating&quot;: &quot;A String&quot;, # The video&#x27;s rating in Peru.
          &quot;rcnofRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from the Hungarian Nemzeti Filmiroda, the Rating Committee of the National Office of Film.
          &quot;resorteviolenciaRating&quot;: &quot;A String&quot;, # The video&#x27;s rating in Venezuela.
          &quot;rtcRating&quot;: &quot;A String&quot;, # The video&#x27;s General Directorate of Radio, Television and Cinematography (Mexico) rating.
          &quot;rteRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Ireland&#x27;s Raidió Teilifís Éireann.
          &quot;russiaRating&quot;: &quot;A String&quot;, # The video&#x27;s National Film Registry of the Russian Federation (MKRF - Russia) rating.
          &quot;skfilmRating&quot;: &quot;A String&quot;, # The video&#x27;s rating in Slovakia.
          &quot;smaisRating&quot;: &quot;A String&quot;, # The video&#x27;s rating in Iceland.
          &quot;smsaRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Statens medieråd (Sweden&#x27;s National Media Council).
          &quot;tvpgRating&quot;: &quot;A String&quot;, # The video&#x27;s TV Parental Guidelines (TVPG) rating.
          &quot;ytRating&quot;: &quot;A String&quot;, # A rating that YouTube uses to identify age-restricted content.
        },
        &quot;countryRestriction&quot;: { # Rights management policy for YouTube resources. # The countryRestriction object contains information about the countries where a video is (or is not) viewable.
          &quot;allowed&quot;: True or False, # The value of allowed indicates whether the access to the policy is allowed or denied by default.
          &quot;exception&quot;: [ # A list of region codes that identify countries where the default policy do not apply.
            &quot;A String&quot;,
          ],
        },
        &quot;definition&quot;: &quot;A String&quot;, # The value of definition indicates whether the video is available in high definition or only in standard definition.
        &quot;dimension&quot;: &quot;A String&quot;, # The value of dimension indicates whether the video is available in 3D or in 2D.
        &quot;duration&quot;: &quot;A String&quot;, # The length of the video. The tag value is an ISO 8601 duration in the format PT#M#S, in which the letters PT indicate that the value specifies a period of time, and the letters M and S refer to length in minutes and seconds, respectively. The # characters preceding the M and S letters are both integers that specify the number of minutes (or seconds) of the video. For example, a value of PT15M51S indicates that the video is 15 minutes and 51 seconds long.
        &quot;hasCustomThumbnail&quot;: True or False, # Indicates whether the video uploader has provided a custom thumbnail image for the video. This property is only visible to the video uploader.
        &quot;licensedContent&quot;: True or False, # The value of is_license_content indicates whether the video is licensed content.
        &quot;projection&quot;: &quot;A String&quot;, # Specifies the projection format of the video.
        &quot;regionRestriction&quot;: { # DEPRECATED Region restriction of the video. # The regionRestriction object contains information about the countries where a video is (or is not) viewable. The object will contain either the contentDetails.regionRestriction.allowed property or the contentDetails.regionRestriction.blocked property.
          &quot;allowed&quot;: [ # A list of region codes that identify countries where the video is viewable. If this property is present and a country is not listed in its value, then the video is blocked from appearing in that country. If this property is present and contains an empty list, the video is blocked in all countries.
            &quot;A String&quot;,
          ],
          &quot;blocked&quot;: [ # A list of region codes that identify countries where the video is blocked. If this property is present and a country is not listed in its value, then the video is viewable in that country. If this property is present and contains an empty list, the video is viewable in all countries.
            &quot;A String&quot;,
          ],
        },
      },
      &quot;etag&quot;: &quot;A String&quot;, # Etag of this resource.
      &quot;fileDetails&quot;: { # Describes original video file properties, including technical details about audio and video streams, but also metadata information like content length, digitization time, or geotagging information. # The fileDetails object encapsulates information about the video file that was uploaded to YouTube, including the file&#x27;s resolution, duration, audio and video codecs, stream bitrates, and more. This data can only be retrieved by the video owner.
        &quot;audioStreams&quot;: [ # A list of audio streams contained in the uploaded video file. Each item in the list contains detailed metadata about an audio stream.
          { # Information about an audio stream.
            &quot;bitrateBps&quot;: &quot;A String&quot;, # The audio stream&#x27;s bitrate, in bits per second.
            &quot;channelCount&quot;: 42, # The number of audio channels that the stream contains.
            &quot;codec&quot;: &quot;A String&quot;, # The audio codec that the stream uses.
            &quot;vendor&quot;: &quot;A String&quot;, # A value that uniquely identifies a video vendor. Typically, the value is a four-letter vendor code.
          },
        ],
        &quot;bitrateBps&quot;: &quot;A String&quot;, # The uploaded video file&#x27;s combined (video and audio) bitrate in bits per second.
        &quot;container&quot;: &quot;A String&quot;, # The uploaded video file&#x27;s container format.
        &quot;creationTime&quot;: &quot;A String&quot;, # The date and time when the uploaded video file was created. The value is specified in ISO 8601 format. Currently, the following ISO 8601 formats are supported: - Date only: YYYY-MM-DD - Naive time: YYYY-MM-DDTHH:MM:SS - Time with timezone: YYYY-MM-DDTHH:MM:SS+HH:MM
        &quot;durationMs&quot;: &quot;A String&quot;, # The length of the uploaded video in milliseconds.
        &quot;fileName&quot;: &quot;A String&quot;, # The uploaded file&#x27;s name. This field is present whether a video file or another type of file was uploaded.
        &quot;fileSize&quot;: &quot;A String&quot;, # The uploaded file&#x27;s size in bytes. This field is present whether a video file or another type of file was uploaded.
        &quot;fileType&quot;: &quot;A String&quot;, # The uploaded file&#x27;s type as detected by YouTube&#x27;s video processing engine. Currently, YouTube only processes video files, but this field is present whether a video file or another type of file was uploaded.
        &quot;videoStreams&quot;: [ # A list of video streams contained in the uploaded video file. Each item in the list contains detailed metadata about a video stream.
          { # Information about a video stream.
            &quot;aspectRatio&quot;: 3.14, # The video content&#x27;s display aspect ratio, which specifies the aspect ratio in which the video should be displayed.
            &quot;bitrateBps&quot;: &quot;A String&quot;, # The video stream&#x27;s bitrate, in bits per second.
            &quot;codec&quot;: &quot;A String&quot;, # The video codec that the stream uses.
            &quot;frameRateFps&quot;: 3.14, # The video stream&#x27;s frame rate, in frames per second.
            &quot;heightPixels&quot;: 42, # The encoded video content&#x27;s height in pixels.
            &quot;rotation&quot;: &quot;A String&quot;, # The amount that YouTube needs to rotate the original source content to properly display the video.
            &quot;vendor&quot;: &quot;A String&quot;, # A value that uniquely identifies a video vendor. Typically, the value is a four-letter vendor code.
            &quot;widthPixels&quot;: 42, # The encoded video content&#x27;s width in pixels. You can calculate the video&#x27;s encoding aspect ratio as width_pixels / height_pixels.
          },
        ],
      },
      &quot;id&quot;: &quot;A String&quot;, # The ID that YouTube uses to uniquely identify the video.
      &quot;kind&quot;: &quot;youtube#video&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;youtube#video&quot;.
      &quot;liveStreamingDetails&quot;: { # Details about the live streaming metadata. # The liveStreamingDetails object contains metadata about a live video broadcast. The object will only be present in a video resource if the video is an upcoming, live, or completed live broadcast.
        &quot;activeLiveChatId&quot;: &quot;A String&quot;, # The ID of the currently active live chat attached to this video. This field is filled only if the video is a currently live broadcast that has live chat. Once the broadcast transitions to complete this field will be removed and the live chat closed down. For persistent broadcasts that live chat id will no longer be tied to this video but rather to the new video being displayed at the persistent page.
        &quot;actualEndTime&quot;: &quot;A String&quot;, # The time that the broadcast actually ended. This value will not be available until the broadcast is over.
        &quot;actualStartTime&quot;: &quot;A String&quot;, # The time that the broadcast actually started. This value will not be available until the broadcast begins.
        &quot;concurrentViewers&quot;: &quot;A String&quot;, # The number of viewers currently watching the broadcast. The property and its value will be present if the broadcast has current viewers and the broadcast owner has not hidden the viewcount for the video. Note that YouTube stops tracking the number of concurrent viewers for a broadcast when the broadcast ends. So, this property would not identify the number of viewers watching an archived video of a live broadcast that already ended.
        &quot;scheduledEndTime&quot;: &quot;A String&quot;, # The time that the broadcast is scheduled to end. If the value is empty or the property is not present, then the broadcast is scheduled to contiue indefinitely.
        &quot;scheduledStartTime&quot;: &quot;A String&quot;, # The time that the broadcast is scheduled to begin.
      },
      &quot;localizations&quot;: { # The localizations object contains localized versions of the basic details about the video, such as its title and description.
        &quot;a_key&quot;: { # Localized versions of certain video properties (e.g. title).
          &quot;description&quot;: &quot;A String&quot;, # Localized version of the video&#x27;s description.
          &quot;title&quot;: &quot;A String&quot;, # Localized version of the video&#x27;s title.
        },
      },
      &quot;monetizationDetails&quot;: { # Details about monetization of a YouTube Video. # The monetizationDetails object encapsulates information about the monetization status of the video.
        &quot;access&quot;: { # Rights management policy for YouTube resources. # The value of access indicates whether the video can be monetized or not.
          &quot;allowed&quot;: True or False, # The value of allowed indicates whether the access to the policy is allowed or denied by default.
          &quot;exception&quot;: [ # A list of region codes that identify countries where the default policy do not apply.
            &quot;A String&quot;,
          ],
        },
      },
      &quot;player&quot;: { # Player to be used for a video playback. # The player object contains information that you would use to play the video in an embedded player.
        &quot;embedHeight&quot;: &quot;A String&quot;,
        &quot;embedHtml&quot;: &quot;A String&quot;, # An &lt;iframe&gt; tag that embeds a player that will play the video.
        &quot;embedWidth&quot;: &quot;A String&quot;, # The embed width
      },
      &quot;processingDetails&quot;: { # Describes processing status and progress and availability of some other Video resource parts. # The processingDetails object encapsulates information about YouTube&#x27;s progress in processing the uploaded video file. The properties in the object identify the current processing status and an estimate of the time remaining until YouTube finishes processing the video. This part also indicates whether different types of data or content, such as file details or thumbnail images, are available for the video. The processingProgress object is designed to be polled so that the video uploaded can track the progress that YouTube has made in processing the uploaded video file. This data can only be retrieved by the video owner.
        &quot;editorSuggestionsAvailability&quot;: &quot;A String&quot;, # This value indicates whether video editing suggestions, which might improve video quality or the playback experience, are available for the video. You can retrieve these suggestions by requesting the suggestions part in your videos.list() request.
        &quot;fileDetailsAvailability&quot;: &quot;A String&quot;, # This value indicates whether file details are available for the uploaded video. You can retrieve a video&#x27;s file details by requesting the fileDetails part in your videos.list() request.
        &quot;processingFailureReason&quot;: &quot;A String&quot;, # The reason that YouTube failed to process the video. This property will only have a value if the processingStatus property&#x27;s value is failed.
        &quot;processingIssuesAvailability&quot;: &quot;A String&quot;, # This value indicates whether the video processing engine has generated suggestions that might improve YouTube&#x27;s ability to process the the video, warnings that explain video processing problems, or errors that cause video processing problems. You can retrieve these suggestions by requesting the suggestions part in your videos.list() request.
        &quot;processingProgress&quot;: { # Video processing progress and completion time estimate. # The processingProgress object contains information about the progress YouTube has made in processing the video. The values are really only relevant if the video&#x27;s processing status is processing.
          &quot;partsProcessed&quot;: &quot;A String&quot;, # The number of parts of the video that YouTube has already processed. You can estimate the percentage of the video that YouTube has already processed by calculating: 100 * parts_processed / parts_total Note that since the estimated number of parts could increase without a corresponding increase in the number of parts that have already been processed, it is possible that the calculated progress could periodically decrease while YouTube processes a video.
          &quot;partsTotal&quot;: &quot;A String&quot;, # An estimate of the total number of parts that need to be processed for the video. The number may be updated with more precise estimates while YouTube processes the video.
          &quot;timeLeftMs&quot;: &quot;A String&quot;, # An estimate of the amount of time, in millseconds, that YouTube needs to finish processing the video.
        },
        &quot;processingStatus&quot;: &quot;A String&quot;, # The video&#x27;s processing status. This value indicates whether YouTube was able to process the video or if the video is still being processed.
        &quot;tagSuggestionsAvailability&quot;: &quot;A String&quot;, # This value indicates whether keyword (tag) suggestions are available for the video. Tags can be added to a video&#x27;s metadata to make it easier for other users to find the video. You can retrieve these suggestions by requesting the suggestions part in your videos.list() request.
        &quot;thumbnailsAvailability&quot;: &quot;A String&quot;, # This value indicates whether thumbnail images have been generated for the video.
      },
      &quot;projectDetails&quot;: { # DEPRECATED. b/157517979: This part was never populated after it was added. However, it sees non-zero traffic because there is generated client code in the wild that refers to it [1]. We keep this field and do NOT remove it because otherwise V3 would return an error when this part gets requested [2]. [1] https://developers.google.com/resources/api-libraries/documentation/youtube/v3/csharp/latest/classGoogle_1_1Apis_1_1YouTube_1_1v3_1_1Data_1_1VideoProjectDetails.html [2] http://google3/video/youtube/src/python/servers/data_api/common.py?l=1565-1569&amp;rcl=344141677 # The projectDetails object contains information about the project specific video metadata. b/157517979: This part was never populated after it was added. However, it sees non-zero traffic because there is generated client code in the wild that refers to it [1]. We keep this field and do NOT remove it because otherwise V3 would return an error when this part gets requested [2]. [1] https://developers.google.com/resources/api-libraries/documentation/youtube/v3/csharp/latest/classGoogle_1_1Apis_1_1YouTube_1_1v3_1_1Data_1_1VideoProjectDetails.html [2] http://google3/video/youtube/src/python/servers/data_api/common.py?l=1565-1569&amp;rcl=344141677
      },
      &quot;recordingDetails&quot;: { # Recording information associated with the video. # The recordingDetails object encapsulates information about the location, date and address where the video was recorded.
        &quot;location&quot;: { # Geographical coordinates of a point, in WGS84. # The geolocation information associated with the video.
          &quot;altitude&quot;: 3.14, # Altitude above the reference ellipsoid, in meters.
          &quot;latitude&quot;: 3.14, # Latitude in degrees.
          &quot;longitude&quot;: 3.14, # Longitude in degrees.
        },
        &quot;locationDescription&quot;: &quot;A String&quot;, # The text description of the location where the video was recorded.
        &quot;recordingDate&quot;: &quot;A String&quot;, # The date and time when the video was recorded.
      },
      &quot;snippet&quot;: { # Basic details about a video, including title, description, uploader, thumbnails and category. # The snippet object contains basic details about the video, such as its title, description, and category.
        &quot;categoryId&quot;: &quot;A String&quot;, # The YouTube video category associated with the video.
        &quot;channelId&quot;: &quot;A String&quot;, # The ID that YouTube uses to uniquely identify the channel that the video was uploaded to.
        &quot;channelTitle&quot;: &quot;A String&quot;, # Channel title for the channel that the video belongs to.
        &quot;defaultAudioLanguage&quot;: &quot;A String&quot;, # The default_audio_language property specifies the language spoken in the video&#x27;s default audio track.
        &quot;defaultLanguage&quot;: &quot;A String&quot;, # The language of the videos&#x27;s default snippet.
        &quot;description&quot;: &quot;A String&quot;, # The video&#x27;s description. @mutable youtube.videos.insert youtube.videos.update
        &quot;liveBroadcastContent&quot;: &quot;A String&quot;, # Indicates if the video is an upcoming/active live broadcast. Or it&#x27;s &quot;none&quot; if the video is not an upcoming/active live broadcast.
        &quot;localized&quot;: { # Localized versions of certain video properties (e.g. title). # Localized snippet selected with the hl parameter. If no such localization exists, this field is populated with the default snippet. (Read-only)
          &quot;description&quot;: &quot;A String&quot;, # Localized version of the video&#x27;s description.
          &quot;title&quot;: &quot;A String&quot;, # Localized version of the video&#x27;s title.
        },
        &quot;publishedAt&quot;: &quot;A String&quot;, # The date and time when the video was uploaded.
        &quot;tags&quot;: [ # A list of keyword tags associated with the video. Tags may contain spaces.
          &quot;A String&quot;,
        ],
        &quot;thumbnails&quot;: { # Internal representation of thumbnails for a YouTube resource. # A map of thumbnail images associated with the video. For each object in the map, the key is the name of the thumbnail image, and the value is an object that contains other information about the thumbnail.
          &quot;default&quot;: { # A thumbnail is an image representing a YouTube resource. # The default image for this resource.
            &quot;height&quot;: 42, # (Optional) Height of the thumbnail image.
            &quot;url&quot;: &quot;A String&quot;, # The thumbnail image&#x27;s URL.
            &quot;width&quot;: 42, # (Optional) Width of the thumbnail image.
          },
          &quot;high&quot;: { # A thumbnail is an image representing a YouTube resource. # The high quality image for this resource.
            &quot;height&quot;: 42, # (Optional) Height of the thumbnail image.
            &quot;url&quot;: &quot;A String&quot;, # The thumbnail image&#x27;s URL.
            &quot;width&quot;: 42, # (Optional) Width of the thumbnail image.
          },
          &quot;maxres&quot;: { # A thumbnail is an image representing a YouTube resource. # The maximum resolution quality image for this resource.
            &quot;height&quot;: 42, # (Optional) Height of the thumbnail image.
            &quot;url&quot;: &quot;A String&quot;, # The thumbnail image&#x27;s URL.
            &quot;width&quot;: 42, # (Optional) Width of the thumbnail image.
          },
          &quot;medium&quot;: { # A thumbnail is an image representing a YouTube resource. # The medium quality image for this resource.
            &quot;height&quot;: 42, # (Optional) Height of the thumbnail image.
            &quot;url&quot;: &quot;A String&quot;, # The thumbnail image&#x27;s URL.
            &quot;width&quot;: 42, # (Optional) Width of the thumbnail image.
          },
          &quot;standard&quot;: { # A thumbnail is an image representing a YouTube resource. # The standard quality image for this resource.
            &quot;height&quot;: 42, # (Optional) Height of the thumbnail image.
            &quot;url&quot;: &quot;A String&quot;, # The thumbnail image&#x27;s URL.
            &quot;width&quot;: 42, # (Optional) Width of the thumbnail image.
          },
        },
        &quot;title&quot;: &quot;A String&quot;, # The video&#x27;s title. @mutable youtube.videos.insert youtube.videos.update
      },
      &quot;statistics&quot;: { # Statistics about the video, such as the number of times the video was viewed or liked. # The statistics object contains statistics about the video.
        &quot;commentCount&quot;: &quot;A String&quot;, # The number of comments for the video.
        &quot;dislikeCount&quot;: &quot;A String&quot;, # The number of users who have indicated that they disliked the video by giving it a negative rating.
        &quot;favoriteCount&quot;: &quot;A String&quot;, # The number of users who currently have the video marked as a favorite video.
        &quot;likeCount&quot;: &quot;A String&quot;, # The number of users who have indicated that they liked the video by giving it a positive rating.
        &quot;viewCount&quot;: &quot;A String&quot;, # The number of times the video has been viewed.
      },
      &quot;status&quot;: { # Basic details about a video category, such as its localized title. Next Id: 17 # The status object contains information about the video&#x27;s uploading, processing, and privacy statuses.
        &quot;embeddable&quot;: True or False, # This value indicates if the video can be embedded on another website. @mutable youtube.videos.insert youtube.videos.update
        &quot;failureReason&quot;: &quot;A String&quot;, # This value explains why a video failed to upload. This property is only present if the uploadStatus property indicates that the upload failed.
        &quot;license&quot;: &quot;A String&quot;, # The video&#x27;s license. @mutable youtube.videos.insert youtube.videos.update
        &quot;madeForKids&quot;: True or False,
        &quot;privacyStatus&quot;: &quot;A String&quot;, # The video&#x27;s privacy status.
        &quot;publicStatsViewable&quot;: True or False, # This value indicates if the extended video statistics on the watch page can be viewed by everyone. Note that the view count, likes, etc will still be visible if this is disabled. @mutable youtube.videos.insert youtube.videos.update
        &quot;publishAt&quot;: &quot;A String&quot;, # The date and time when the video is scheduled to publish. It can be set only if the privacy status of the video is private..
        &quot;rejectionReason&quot;: &quot;A String&quot;, # This value explains why YouTube rejected an uploaded video. This property is only present if the uploadStatus property indicates that the upload was rejected.
        &quot;selfDeclaredMadeForKids&quot;: True or False,
        &quot;uploadStatus&quot;: &quot;A String&quot;, # The status of the uploaded video.
      },
      &quot;suggestions&quot;: { # Specifies suggestions on how to improve video content, including encoding hints, tag suggestions, and editor suggestions. # The suggestions object encapsulates suggestions that identify opportunities to improve the video quality or the metadata for the uploaded video. This data can only be retrieved by the video owner.
        &quot;editorSuggestions&quot;: [ # A list of video editing operations that might improve the video quality or playback experience of the uploaded video.
          &quot;A String&quot;,
        ],
        &quot;processingErrors&quot;: [ # A list of errors that will prevent YouTube from successfully processing the uploaded video video. These errors indicate that, regardless of the video&#x27;s current processing status, eventually, that status will almost certainly be failed.
          &quot;A String&quot;,
        ],
        &quot;processingHints&quot;: [ # A list of suggestions that may improve YouTube&#x27;s ability to process the video.
          &quot;A String&quot;,
        ],
        &quot;processingWarnings&quot;: [ # A list of reasons why YouTube may have difficulty transcoding the uploaded video or that might result in an erroneous transcoding. These warnings are generated before YouTube actually processes the uploaded video file. In addition, they identify issues that are unlikely to cause the video processing to fail but that might cause problems such as sync issues, video artifacts, or a missing audio track.
          &quot;A String&quot;,
        ],
        &quot;tagSuggestions&quot;: [ # A list of keyword tags that could be added to the video&#x27;s metadata to increase the likelihood that users will locate your video when searching or browsing on YouTube.
          { # A single tag suggestion with it&#x27;s relevance information.
            &quot;categoryRestricts&quot;: [ # A set of video categories for which the tag is relevant. You can use this information to display appropriate tag suggestions based on the video category that the video uploader associates with the video. By default, tag suggestions are relevant for all categories if there are no restricts defined for the keyword.
              &quot;A String&quot;,
            ],
            &quot;tag&quot;: &quot;A String&quot;, # The keyword tag suggested for the video.
          },
        ],
      },
      &quot;topicDetails&quot;: { # Freebase topic information related to the video. # The topicDetails object encapsulates information about Freebase topics associated with the video.
        &quot;relevantTopicIds&quot;: [ # Similar to topic_id, except that these topics are merely relevant to the video. These are topics that may be mentioned in, or appear in the video. You can retrieve information about each topic using Freebase Topic API.
          &quot;A String&quot;,
        ],
        &quot;topicCategories&quot;: [ # A list of Wikipedia URLs that provide a high-level description of the video&#x27;s content.
          &quot;A String&quot;,
        ],
        &quot;topicIds&quot;: [ # A list of Freebase topic IDs that are centrally associated with the video. These are topics that are centrally featured in the video, and it can be said that the video is mainly about each of these. You can retrieve information about each topic using the &lt; a href=&quot;http://wiki.freebase.com/wiki/Topic_API&quot;&gt;Freebase Topic API.
          &quot;A String&quot;,
        ],
      },
    },
  ],
  &quot;kind&quot;: &quot;youtube#videoListResponse&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;youtube#videoListResponse&quot;.
  &quot;nextPageToken&quot;: &quot;A String&quot;, # The token that can be used as the value of the pageToken parameter to retrieve the next page in the result set.
  &quot;pageInfo&quot;: { # Paging details for lists of resources, including total number of items available and number of resources returned in a single page. # General pagination information.
    &quot;resultsPerPage&quot;: 42, # The number of results included in the API response.
    &quot;totalResults&quot;: 42, # The total number of results in the result set.
  },
  &quot;prevPageToken&quot;: &quot;A String&quot;, # The token that can be used as the value of the pageToken parameter to retrieve the previous page in the result set.
  &quot;tokenPagination&quot;: { # Stub token pagination template to suppress results.
  },
  &quot;visitorId&quot;: &quot;A String&quot;, # The visitorId identifies the visitor.
}</pre>
</div>

<div class="method">
    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
  <pre>Retrieves the next page of results.

Args:
  previous_request: The request for the previous page. (required)
  previous_response: The response from the request for the previous page. (required)

Returns:
  A request object that you can call &#x27;execute()&#x27; on to request the next
  page. Returns None if there are no more items in the collection.
    </pre>
</div>

<div class="method">
    <code class="details" id="rate">rate(id, rating, x__xgafv=None)</code>
  <pre>Adds a like or dislike rating to a video or removes a rating from a video.

Args:
  id: string, A parameter (required)
  rating: string, A parameter (required)
    Allowed values
      none - 
      like - The entity is liked.
      dislike - The entity is disliked.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format
</pre>
</div>

<div class="method">
    <code class="details" id="reportAbuse">reportAbuse(body=None, onBehalfOfContentOwner=None, x__xgafv=None)</code>
  <pre>Report abuse for a video.

Args:
  body: object, The request body.
    The object takes the form of:

{
  &quot;comments&quot;: &quot;A String&quot;, # Additional comments regarding the abuse report.
  &quot;language&quot;: &quot;A String&quot;, # The language that the content was viewed in.
  &quot;reasonId&quot;: &quot;A String&quot;, # The high-level, or primary, reason that the content is abusive. The value is an abuse report reason ID.
  &quot;secondaryReasonId&quot;: &quot;A String&quot;, # The specific, or secondary, reason that this content is abusive (if available). The value is an abuse report reason ID that is a valid secondary reason for the primary reason.
  &quot;videoId&quot;: &quot;A String&quot;, # The ID that YouTube uses to uniquely identify the video.
}

  onBehalfOfContentOwner: string, *Note:* This parameter is intended exclusively for YouTube content partners. The *onBehalfOfContentOwner* parameter indicates that the request&#x27;s authorization credentials identify a YouTube CMS user who is acting on behalf of the content owner specified in the parameter value. This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and get access to all their video and channel data, without having to provide authentication credentials for each individual channel. The CMS account that the user authenticates with must be linked to the specified YouTube content owner.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format
</pre>
</div>

<div class="method">
    <code class="details" id="update">update(part, body=None, onBehalfOfContentOwner=None, x__xgafv=None)</code>
  <pre>Updates an existing resource.

Args:
  part: string, The *part* parameter serves two purposes in this operation. It identifies the properties that the write operation will set as well as the properties that the API response will include. Note that this method will override the existing values for all of the mutable properties that are contained in any parts that the parameter value specifies. For example, a video&#x27;s privacy setting is contained in the status part. As such, if your request is updating a private video, and the request&#x27;s part parameter value includes the status part, the video&#x27;s privacy setting will be updated to whatever value the request body specifies. If the request body does not specify a value, the existing privacy setting will be removed and the video will revert to the default privacy setting. In addition, not all parts contain properties that can be set when inserting or updating a video. For example, the statistics object encapsulates statistics that YouTube calculates for a video and does not contain values that you can set or modify. If the parameter value specifies a part that does not contain mutable values, that part will still be included in the API response. (required) (repeated)
  body: object, The request body.
    The object takes the form of:

{ # A *video* resource represents a YouTube video.
  &quot;ageGating&quot;: { # Age restriction details related to a video. This data can only be retrieved by the video owner.
    &quot;alcoholContent&quot;: True or False, # Indicates whether or not the video has alcoholic beverage content. Only users of legal purchasing age in a particular country, as identified by ICAP, can view the content.
    &quot;restricted&quot;: True or False, # Age-restricted trailers. For redband trailers and adult-rated video-games. Only users aged 18+ can view the content. The the field is true the content is restricted to viewers aged 18+. Otherwise The field won&#x27;t be present.
    &quot;videoGameRating&quot;: &quot;A String&quot;, # Video game rating, if any.
  },
  &quot;contentDetails&quot;: { # Details about the content of a YouTube Video. # The contentDetails object contains information about the video content, including the length of the video and its aspect ratio.
    &quot;caption&quot;: &quot;A String&quot;, # The value of captions indicates whether the video has captions or not.
    &quot;contentRating&quot;: { # Ratings schemes. The country-specific ratings are mostly for movies and shows. LINT.IfChange # Specifies the ratings that the video received under various rating schemes.
      &quot;acbRating&quot;: &quot;A String&quot;, # The video&#x27;s Australian Classification Board (ACB) or Australian Communications and Media Authority (ACMA) rating. ACMA ratings are used to classify children&#x27;s television programming.
      &quot;agcomRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Italy&#x27;s Autorità per le Garanzie nelle Comunicazioni (AGCOM).
      &quot;anatelRating&quot;: &quot;A String&quot;, # The video&#x27;s Anatel (Asociación Nacional de Televisión) rating for Chilean television.
      &quot;bbfcRating&quot;: &quot;A String&quot;, # The video&#x27;s British Board of Film Classification (BBFC) rating.
      &quot;bfvcRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Thailand&#x27;s Board of Film and Video Censors.
      &quot;bmukkRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from the Austrian Board of Media Classification (Bundesministerium für Unterricht, Kunst und Kultur).
      &quot;catvRating&quot;: &quot;A String&quot;, # Rating system for Canadian TV - Canadian TV Classification System The video&#x27;s rating from the Canadian Radio-Television and Telecommunications Commission (CRTC) for Canadian English-language broadcasts. For more information, see the Canadian Broadcast Standards Council website.
      &quot;catvfrRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from the Canadian Radio-Television and Telecommunications Commission (CRTC) for Canadian French-language broadcasts. For more information, see the Canadian Broadcast Standards Council website.
      &quot;cbfcRating&quot;: &quot;A String&quot;, # The video&#x27;s Central Board of Film Certification (CBFC - India) rating.
      &quot;cccRating&quot;: &quot;A String&quot;, # The video&#x27;s Consejo de Calificación Cinematográfica (Chile) rating.
      &quot;cceRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Portugal&#x27;s Comissão de Classificação de Espect´culos.
      &quot;chfilmRating&quot;: &quot;A String&quot;, # The video&#x27;s rating in Switzerland.
      &quot;chvrsRating&quot;: &quot;A String&quot;, # The video&#x27;s Canadian Home Video Rating System (CHVRS) rating.
      &quot;cicfRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from the Commission de Contrôle des Films (Belgium).
      &quot;cnaRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Romania&#x27;s CONSILIUL NATIONAL AL AUDIOVIZUALULUI (CNA).
      &quot;cncRating&quot;: &quot;A String&quot;, # Rating system in France - Commission de classification cinematographique
      &quot;csaRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from France&#x27;s Conseil supérieur de l’audiovisuel, which rates broadcast content.
      &quot;cscfRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Luxembourg&#x27;s Commission de surveillance de la classification des films (CSCF).
      &quot;czfilmRating&quot;: &quot;A String&quot;, # The video&#x27;s rating in the Czech Republic.
      &quot;djctqRating&quot;: &quot;A String&quot;, # The video&#x27;s Departamento de Justiça, Classificação, Qualificação e Títulos (DJCQT - Brazil) rating.
      &quot;djctqRatingReasons&quot;: [ # Reasons that explain why the video received its DJCQT (Brazil) rating.
        &quot;A String&quot;,
      ],
      &quot;ecbmctRating&quot;: &quot;A String&quot;, # Rating system in Turkey - Evaluation and Classification Board of the Ministry of Culture and Tourism
      &quot;eefilmRating&quot;: &quot;A String&quot;, # The video&#x27;s rating in Estonia.
      &quot;egfilmRating&quot;: &quot;A String&quot;, # The video&#x27;s rating in Egypt.
      &quot;eirinRating&quot;: &quot;A String&quot;, # The video&#x27;s Eirin (映倫) rating. Eirin is the Japanese rating system.
      &quot;fcbmRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Malaysia&#x27;s Film Censorship Board.
      &quot;fcoRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Hong Kong&#x27;s Office for Film, Newspaper and Article Administration.
      &quot;fmocRating&quot;: &quot;A String&quot;, # This property has been deprecated. Use the contentDetails.contentRating.cncRating instead.
      &quot;fpbRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from South Africa&#x27;s Film and Publication Board.
      &quot;fpbRatingReasons&quot;: [ # Reasons that explain why the video received its FPB (South Africa) rating.
        &quot;A String&quot;,
      ],
      &quot;fskRating&quot;: &quot;A String&quot;, # The video&#x27;s Freiwillige Selbstkontrolle der Filmwirtschaft (FSK - Germany) rating.
      &quot;grfilmRating&quot;: &quot;A String&quot;, # The video&#x27;s rating in Greece.
      &quot;icaaRating&quot;: &quot;A String&quot;, # The video&#x27;s Instituto de la Cinematografía y de las Artes Audiovisuales (ICAA - Spain) rating.
      &quot;ifcoRating&quot;: &quot;A String&quot;, # The video&#x27;s Irish Film Classification Office (IFCO - Ireland) rating. See the IFCO website for more information.
      &quot;ilfilmRating&quot;: &quot;A String&quot;, # The video&#x27;s rating in Israel.
      &quot;incaaRating&quot;: &quot;A String&quot;, # The video&#x27;s INCAA (Instituto Nacional de Cine y Artes Audiovisuales - Argentina) rating.
      &quot;kfcbRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from the Kenya Film Classification Board.
      &quot;kijkwijzerRating&quot;: &quot;A String&quot;, # The video&#x27;s NICAM/Kijkwijzer rating from the Nederlands Instituut voor de Classificatie van Audiovisuele Media (Netherlands).
      &quot;kmrbRating&quot;: &quot;A String&quot;, # The video&#x27;s Korea Media Rating Board (영상물등급위원회) rating. The KMRB rates videos in South Korea.
      &quot;lsfRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Indonesia&#x27;s Lembaga Sensor Film.
      &quot;mccaaRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Malta&#x27;s Film Age-Classification Board.
      &quot;mccypRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from the Danish Film Institute&#x27;s (Det Danske Filminstitut) Media Council for Children and Young People.
      &quot;mcstRating&quot;: &quot;A String&quot;, # The video&#x27;s rating system for Vietnam - MCST
      &quot;mdaRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Singapore&#x27;s Media Development Authority (MDA) and, specifically, it&#x27;s Board of Film Censors (BFC).
      &quot;medietilsynetRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Medietilsynet, the Norwegian Media Authority.
      &quot;mekuRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Finland&#x27;s Kansallinen Audiovisuaalinen Instituutti (National Audiovisual Institute).
      &quot;menaMpaaRating&quot;: &quot;A String&quot;, # The rating system for MENA countries, a clone of MPAA. It is needed to prevent titles go live w/o additional QC check, since some of them can be inappropriate for the countries at all. See b/33408548 for more details.
      &quot;mibacRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from the Ministero dei Beni e delle Attività Culturali e del Turismo (Italy).
      &quot;mocRating&quot;: &quot;A String&quot;, # The video&#x27;s Ministerio de Cultura (Colombia) rating.
      &quot;moctwRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Taiwan&#x27;s Ministry of Culture (文化部).
      &quot;mpaaRating&quot;: &quot;A String&quot;, # The video&#x27;s Motion Picture Association of America (MPAA) rating.
      &quot;mpaatRating&quot;: &quot;A String&quot;, # The rating system for trailer, DVD, and Ad in the US. See http://movielabs.com/md/ratings/v2.3/html/US_MPAAT_Ratings.html.
      &quot;mtrcbRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from the Movie and Television Review and Classification Board (Philippines).
      &quot;nbcRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from the Maldives National Bureau of Classification.
      &quot;nbcplRating&quot;: &quot;A String&quot;, # The video&#x27;s rating in Poland.
      &quot;nfrcRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from the Bulgarian National Film Center.
      &quot;nfvcbRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Nigeria&#x27;s National Film and Video Censors Board.
      &quot;nkclvRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from the Nacionãlais Kino centrs (National Film Centre of Latvia).
      &quot;nmcRating&quot;: &quot;A String&quot;, # The National Media Council ratings system for United Arab Emirates.
      &quot;oflcRating&quot;: &quot;A String&quot;, # The video&#x27;s Office of Film and Literature Classification (OFLC - New Zealand) rating.
      &quot;pefilmRating&quot;: &quot;A String&quot;, # The video&#x27;s rating in Peru.
      &quot;rcnofRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from the Hungarian Nemzeti Filmiroda, the Rating Committee of the National Office of Film.
      &quot;resorteviolenciaRating&quot;: &quot;A String&quot;, # The video&#x27;s rating in Venezuela.
      &quot;rtcRating&quot;: &quot;A String&quot;, # The video&#x27;s General Directorate of Radio, Television and Cinematography (Mexico) rating.
      &quot;rteRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Ireland&#x27;s Raidió Teilifís Éireann.
      &quot;russiaRating&quot;: &quot;A String&quot;, # The video&#x27;s National Film Registry of the Russian Federation (MKRF - Russia) rating.
      &quot;skfilmRating&quot;: &quot;A String&quot;, # The video&#x27;s rating in Slovakia.
      &quot;smaisRating&quot;: &quot;A String&quot;, # The video&#x27;s rating in Iceland.
      &quot;smsaRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Statens medieråd (Sweden&#x27;s National Media Council).
      &quot;tvpgRating&quot;: &quot;A String&quot;, # The video&#x27;s TV Parental Guidelines (TVPG) rating.
      &quot;ytRating&quot;: &quot;A String&quot;, # A rating that YouTube uses to identify age-restricted content.
    },
    &quot;countryRestriction&quot;: { # Rights management policy for YouTube resources. # The countryRestriction object contains information about the countries where a video is (or is not) viewable.
      &quot;allowed&quot;: True or False, # The value of allowed indicates whether the access to the policy is allowed or denied by default.
      &quot;exception&quot;: [ # A list of region codes that identify countries where the default policy do not apply.
        &quot;A String&quot;,
      ],
    },
    &quot;definition&quot;: &quot;A String&quot;, # The value of definition indicates whether the video is available in high definition or only in standard definition.
    &quot;dimension&quot;: &quot;A String&quot;, # The value of dimension indicates whether the video is available in 3D or in 2D.
    &quot;duration&quot;: &quot;A String&quot;, # The length of the video. The tag value is an ISO 8601 duration in the format PT#M#S, in which the letters PT indicate that the value specifies a period of time, and the letters M and S refer to length in minutes and seconds, respectively. The # characters preceding the M and S letters are both integers that specify the number of minutes (or seconds) of the video. For example, a value of PT15M51S indicates that the video is 15 minutes and 51 seconds long.
    &quot;hasCustomThumbnail&quot;: True or False, # Indicates whether the video uploader has provided a custom thumbnail image for the video. This property is only visible to the video uploader.
    &quot;licensedContent&quot;: True or False, # The value of is_license_content indicates whether the video is licensed content.
    &quot;projection&quot;: &quot;A String&quot;, # Specifies the projection format of the video.
    &quot;regionRestriction&quot;: { # DEPRECATED Region restriction of the video. # The regionRestriction object contains information about the countries where a video is (or is not) viewable. The object will contain either the contentDetails.regionRestriction.allowed property or the contentDetails.regionRestriction.blocked property.
      &quot;allowed&quot;: [ # A list of region codes that identify countries where the video is viewable. If this property is present and a country is not listed in its value, then the video is blocked from appearing in that country. If this property is present and contains an empty list, the video is blocked in all countries.
        &quot;A String&quot;,
      ],
      &quot;blocked&quot;: [ # A list of region codes that identify countries where the video is blocked. If this property is present and a country is not listed in its value, then the video is viewable in that country. If this property is present and contains an empty list, the video is viewable in all countries.
        &quot;A String&quot;,
      ],
    },
  },
  &quot;etag&quot;: &quot;A String&quot;, # Etag of this resource.
  &quot;fileDetails&quot;: { # Describes original video file properties, including technical details about audio and video streams, but also metadata information like content length, digitization time, or geotagging information. # The fileDetails object encapsulates information about the video file that was uploaded to YouTube, including the file&#x27;s resolution, duration, audio and video codecs, stream bitrates, and more. This data can only be retrieved by the video owner.
    &quot;audioStreams&quot;: [ # A list of audio streams contained in the uploaded video file. Each item in the list contains detailed metadata about an audio stream.
      { # Information about an audio stream.
        &quot;bitrateBps&quot;: &quot;A String&quot;, # The audio stream&#x27;s bitrate, in bits per second.
        &quot;channelCount&quot;: 42, # The number of audio channels that the stream contains.
        &quot;codec&quot;: &quot;A String&quot;, # The audio codec that the stream uses.
        &quot;vendor&quot;: &quot;A String&quot;, # A value that uniquely identifies a video vendor. Typically, the value is a four-letter vendor code.
      },
    ],
    &quot;bitrateBps&quot;: &quot;A String&quot;, # The uploaded video file&#x27;s combined (video and audio) bitrate in bits per second.
    &quot;container&quot;: &quot;A String&quot;, # The uploaded video file&#x27;s container format.
    &quot;creationTime&quot;: &quot;A String&quot;, # The date and time when the uploaded video file was created. The value is specified in ISO 8601 format. Currently, the following ISO 8601 formats are supported: - Date only: YYYY-MM-DD - Naive time: YYYY-MM-DDTHH:MM:SS - Time with timezone: YYYY-MM-DDTHH:MM:SS+HH:MM
    &quot;durationMs&quot;: &quot;A String&quot;, # The length of the uploaded video in milliseconds.
    &quot;fileName&quot;: &quot;A String&quot;, # The uploaded file&#x27;s name. This field is present whether a video file or another type of file was uploaded.
    &quot;fileSize&quot;: &quot;A String&quot;, # The uploaded file&#x27;s size in bytes. This field is present whether a video file or another type of file was uploaded.
    &quot;fileType&quot;: &quot;A String&quot;, # The uploaded file&#x27;s type as detected by YouTube&#x27;s video processing engine. Currently, YouTube only processes video files, but this field is present whether a video file or another type of file was uploaded.
    &quot;videoStreams&quot;: [ # A list of video streams contained in the uploaded video file. Each item in the list contains detailed metadata about a video stream.
      { # Information about a video stream.
        &quot;aspectRatio&quot;: 3.14, # The video content&#x27;s display aspect ratio, which specifies the aspect ratio in which the video should be displayed.
        &quot;bitrateBps&quot;: &quot;A String&quot;, # The video stream&#x27;s bitrate, in bits per second.
        &quot;codec&quot;: &quot;A String&quot;, # The video codec that the stream uses.
        &quot;frameRateFps&quot;: 3.14, # The video stream&#x27;s frame rate, in frames per second.
        &quot;heightPixels&quot;: 42, # The encoded video content&#x27;s height in pixels.
        &quot;rotation&quot;: &quot;A String&quot;, # The amount that YouTube needs to rotate the original source content to properly display the video.
        &quot;vendor&quot;: &quot;A String&quot;, # A value that uniquely identifies a video vendor. Typically, the value is a four-letter vendor code.
        &quot;widthPixels&quot;: 42, # The encoded video content&#x27;s width in pixels. You can calculate the video&#x27;s encoding aspect ratio as width_pixels / height_pixels.
      },
    ],
  },
  &quot;id&quot;: &quot;A String&quot;, # The ID that YouTube uses to uniquely identify the video.
  &quot;kind&quot;: &quot;youtube#video&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;youtube#video&quot;.
  &quot;liveStreamingDetails&quot;: { # Details about the live streaming metadata. # The liveStreamingDetails object contains metadata about a live video broadcast. The object will only be present in a video resource if the video is an upcoming, live, or completed live broadcast.
    &quot;activeLiveChatId&quot;: &quot;A String&quot;, # The ID of the currently active live chat attached to this video. This field is filled only if the video is a currently live broadcast that has live chat. Once the broadcast transitions to complete this field will be removed and the live chat closed down. For persistent broadcasts that live chat id will no longer be tied to this video but rather to the new video being displayed at the persistent page.
    &quot;actualEndTime&quot;: &quot;A String&quot;, # The time that the broadcast actually ended. This value will not be available until the broadcast is over.
    &quot;actualStartTime&quot;: &quot;A String&quot;, # The time that the broadcast actually started. This value will not be available until the broadcast begins.
    &quot;concurrentViewers&quot;: &quot;A String&quot;, # The number of viewers currently watching the broadcast. The property and its value will be present if the broadcast has current viewers and the broadcast owner has not hidden the viewcount for the video. Note that YouTube stops tracking the number of concurrent viewers for a broadcast when the broadcast ends. So, this property would not identify the number of viewers watching an archived video of a live broadcast that already ended.
    &quot;scheduledEndTime&quot;: &quot;A String&quot;, # The time that the broadcast is scheduled to end. If the value is empty or the property is not present, then the broadcast is scheduled to contiue indefinitely.
    &quot;scheduledStartTime&quot;: &quot;A String&quot;, # The time that the broadcast is scheduled to begin.
  },
  &quot;localizations&quot;: { # The localizations object contains localized versions of the basic details about the video, such as its title and description.
    &quot;a_key&quot;: { # Localized versions of certain video properties (e.g. title).
      &quot;description&quot;: &quot;A String&quot;, # Localized version of the video&#x27;s description.
      &quot;title&quot;: &quot;A String&quot;, # Localized version of the video&#x27;s title.
    },
  },
  &quot;monetizationDetails&quot;: { # Details about monetization of a YouTube Video. # The monetizationDetails object encapsulates information about the monetization status of the video.
    &quot;access&quot;: { # Rights management policy for YouTube resources. # The value of access indicates whether the video can be monetized or not.
      &quot;allowed&quot;: True or False, # The value of allowed indicates whether the access to the policy is allowed or denied by default.
      &quot;exception&quot;: [ # A list of region codes that identify countries where the default policy do not apply.
        &quot;A String&quot;,
      ],
    },
  },
  &quot;player&quot;: { # Player to be used for a video playback. # The player object contains information that you would use to play the video in an embedded player.
    &quot;embedHeight&quot;: &quot;A String&quot;,
    &quot;embedHtml&quot;: &quot;A String&quot;, # An &lt;iframe&gt; tag that embeds a player that will play the video.
    &quot;embedWidth&quot;: &quot;A String&quot;, # The embed width
  },
  &quot;processingDetails&quot;: { # Describes processing status and progress and availability of some other Video resource parts. # The processingDetails object encapsulates information about YouTube&#x27;s progress in processing the uploaded video file. The properties in the object identify the current processing status and an estimate of the time remaining until YouTube finishes processing the video. This part also indicates whether different types of data or content, such as file details or thumbnail images, are available for the video. The processingProgress object is designed to be polled so that the video uploaded can track the progress that YouTube has made in processing the uploaded video file. This data can only be retrieved by the video owner.
    &quot;editorSuggestionsAvailability&quot;: &quot;A String&quot;, # This value indicates whether video editing suggestions, which might improve video quality or the playback experience, are available for the video. You can retrieve these suggestions by requesting the suggestions part in your videos.list() request.
    &quot;fileDetailsAvailability&quot;: &quot;A String&quot;, # This value indicates whether file details are available for the uploaded video. You can retrieve a video&#x27;s file details by requesting the fileDetails part in your videos.list() request.
    &quot;processingFailureReason&quot;: &quot;A String&quot;, # The reason that YouTube failed to process the video. This property will only have a value if the processingStatus property&#x27;s value is failed.
    &quot;processingIssuesAvailability&quot;: &quot;A String&quot;, # This value indicates whether the video processing engine has generated suggestions that might improve YouTube&#x27;s ability to process the the video, warnings that explain video processing problems, or errors that cause video processing problems. You can retrieve these suggestions by requesting the suggestions part in your videos.list() request.
    &quot;processingProgress&quot;: { # Video processing progress and completion time estimate. # The processingProgress object contains information about the progress YouTube has made in processing the video. The values are really only relevant if the video&#x27;s processing status is processing.
      &quot;partsProcessed&quot;: &quot;A String&quot;, # The number of parts of the video that YouTube has already processed. You can estimate the percentage of the video that YouTube has already processed by calculating: 100 * parts_processed / parts_total Note that since the estimated number of parts could increase without a corresponding increase in the number of parts that have already been processed, it is possible that the calculated progress could periodically decrease while YouTube processes a video.
      &quot;partsTotal&quot;: &quot;A String&quot;, # An estimate of the total number of parts that need to be processed for the video. The number may be updated with more precise estimates while YouTube processes the video.
      &quot;timeLeftMs&quot;: &quot;A String&quot;, # An estimate of the amount of time, in millseconds, that YouTube needs to finish processing the video.
    },
    &quot;processingStatus&quot;: &quot;A String&quot;, # The video&#x27;s processing status. This value indicates whether YouTube was able to process the video or if the video is still being processed.
    &quot;tagSuggestionsAvailability&quot;: &quot;A String&quot;, # This value indicates whether keyword (tag) suggestions are available for the video. Tags can be added to a video&#x27;s metadata to make it easier for other users to find the video. You can retrieve these suggestions by requesting the suggestions part in your videos.list() request.
    &quot;thumbnailsAvailability&quot;: &quot;A String&quot;, # This value indicates whether thumbnail images have been generated for the video.
  },
  &quot;projectDetails&quot;: { # DEPRECATED. b/157517979: This part was never populated after it was added. However, it sees non-zero traffic because there is generated client code in the wild that refers to it [1]. We keep this field and do NOT remove it because otherwise V3 would return an error when this part gets requested [2]. [1] https://developers.google.com/resources/api-libraries/documentation/youtube/v3/csharp/latest/classGoogle_1_1Apis_1_1YouTube_1_1v3_1_1Data_1_1VideoProjectDetails.html [2] http://google3/video/youtube/src/python/servers/data_api/common.py?l=1565-1569&amp;rcl=344141677 # The projectDetails object contains information about the project specific video metadata. b/157517979: This part was never populated after it was added. However, it sees non-zero traffic because there is generated client code in the wild that refers to it [1]. We keep this field and do NOT remove it because otherwise V3 would return an error when this part gets requested [2]. [1] https://developers.google.com/resources/api-libraries/documentation/youtube/v3/csharp/latest/classGoogle_1_1Apis_1_1YouTube_1_1v3_1_1Data_1_1VideoProjectDetails.html [2] http://google3/video/youtube/src/python/servers/data_api/common.py?l=1565-1569&amp;rcl=344141677
  },
  &quot;recordingDetails&quot;: { # Recording information associated with the video. # The recordingDetails object encapsulates information about the location, date and address where the video was recorded.
    &quot;location&quot;: { # Geographical coordinates of a point, in WGS84. # The geolocation information associated with the video.
      &quot;altitude&quot;: 3.14, # Altitude above the reference ellipsoid, in meters.
      &quot;latitude&quot;: 3.14, # Latitude in degrees.
      &quot;longitude&quot;: 3.14, # Longitude in degrees.
    },
    &quot;locationDescription&quot;: &quot;A String&quot;, # The text description of the location where the video was recorded.
    &quot;recordingDate&quot;: &quot;A String&quot;, # The date and time when the video was recorded.
  },
  &quot;snippet&quot;: { # Basic details about a video, including title, description, uploader, thumbnails and category. # The snippet object contains basic details about the video, such as its title, description, and category.
    &quot;categoryId&quot;: &quot;A String&quot;, # The YouTube video category associated with the video.
    &quot;channelId&quot;: &quot;A String&quot;, # The ID that YouTube uses to uniquely identify the channel that the video was uploaded to.
    &quot;channelTitle&quot;: &quot;A String&quot;, # Channel title for the channel that the video belongs to.
    &quot;defaultAudioLanguage&quot;: &quot;A String&quot;, # The default_audio_language property specifies the language spoken in the video&#x27;s default audio track.
    &quot;defaultLanguage&quot;: &quot;A String&quot;, # The language of the videos&#x27;s default snippet.
    &quot;description&quot;: &quot;A String&quot;, # The video&#x27;s description. @mutable youtube.videos.insert youtube.videos.update
    &quot;liveBroadcastContent&quot;: &quot;A String&quot;, # Indicates if the video is an upcoming/active live broadcast. Or it&#x27;s &quot;none&quot; if the video is not an upcoming/active live broadcast.
    &quot;localized&quot;: { # Localized versions of certain video properties (e.g. title). # Localized snippet selected with the hl parameter. If no such localization exists, this field is populated with the default snippet. (Read-only)
      &quot;description&quot;: &quot;A String&quot;, # Localized version of the video&#x27;s description.
      &quot;title&quot;: &quot;A String&quot;, # Localized version of the video&#x27;s title.
    },
    &quot;publishedAt&quot;: &quot;A String&quot;, # The date and time when the video was uploaded.
    &quot;tags&quot;: [ # A list of keyword tags associated with the video. Tags may contain spaces.
      &quot;A String&quot;,
    ],
    &quot;thumbnails&quot;: { # Internal representation of thumbnails for a YouTube resource. # A map of thumbnail images associated with the video. For each object in the map, the key is the name of the thumbnail image, and the value is an object that contains other information about the thumbnail.
      &quot;default&quot;: { # A thumbnail is an image representing a YouTube resource. # The default image for this resource.
        &quot;height&quot;: 42, # (Optional) Height of the thumbnail image.
        &quot;url&quot;: &quot;A String&quot;, # The thumbnail image&#x27;s URL.
        &quot;width&quot;: 42, # (Optional) Width of the thumbnail image.
      },
      &quot;high&quot;: { # A thumbnail is an image representing a YouTube resource. # The high quality image for this resource.
        &quot;height&quot;: 42, # (Optional) Height of the thumbnail image.
        &quot;url&quot;: &quot;A String&quot;, # The thumbnail image&#x27;s URL.
        &quot;width&quot;: 42, # (Optional) Width of the thumbnail image.
      },
      &quot;maxres&quot;: { # A thumbnail is an image representing a YouTube resource. # The maximum resolution quality image for this resource.
        &quot;height&quot;: 42, # (Optional) Height of the thumbnail image.
        &quot;url&quot;: &quot;A String&quot;, # The thumbnail image&#x27;s URL.
        &quot;width&quot;: 42, # (Optional) Width of the thumbnail image.
      },
      &quot;medium&quot;: { # A thumbnail is an image representing a YouTube resource. # The medium quality image for this resource.
        &quot;height&quot;: 42, # (Optional) Height of the thumbnail image.
        &quot;url&quot;: &quot;A String&quot;, # The thumbnail image&#x27;s URL.
        &quot;width&quot;: 42, # (Optional) Width of the thumbnail image.
      },
      &quot;standard&quot;: { # A thumbnail is an image representing a YouTube resource. # The standard quality image for this resource.
        &quot;height&quot;: 42, # (Optional) Height of the thumbnail image.
        &quot;url&quot;: &quot;A String&quot;, # The thumbnail image&#x27;s URL.
        &quot;width&quot;: 42, # (Optional) Width of the thumbnail image.
      },
    },
    &quot;title&quot;: &quot;A String&quot;, # The video&#x27;s title. @mutable youtube.videos.insert youtube.videos.update
  },
  &quot;statistics&quot;: { # Statistics about the video, such as the number of times the video was viewed or liked. # The statistics object contains statistics about the video.
    &quot;commentCount&quot;: &quot;A String&quot;, # The number of comments for the video.
    &quot;dislikeCount&quot;: &quot;A String&quot;, # The number of users who have indicated that they disliked the video by giving it a negative rating.
    &quot;favoriteCount&quot;: &quot;A String&quot;, # The number of users who currently have the video marked as a favorite video.
    &quot;likeCount&quot;: &quot;A String&quot;, # The number of users who have indicated that they liked the video by giving it a positive rating.
    &quot;viewCount&quot;: &quot;A String&quot;, # The number of times the video has been viewed.
  },
  &quot;status&quot;: { # Basic details about a video category, such as its localized title. Next Id: 17 # The status object contains information about the video&#x27;s uploading, processing, and privacy statuses.
    &quot;embeddable&quot;: True or False, # This value indicates if the video can be embedded on another website. @mutable youtube.videos.insert youtube.videos.update
    &quot;failureReason&quot;: &quot;A String&quot;, # This value explains why a video failed to upload. This property is only present if the uploadStatus property indicates that the upload failed.
    &quot;license&quot;: &quot;A String&quot;, # The video&#x27;s license. @mutable youtube.videos.insert youtube.videos.update
    &quot;madeForKids&quot;: True or False,
    &quot;privacyStatus&quot;: &quot;A String&quot;, # The video&#x27;s privacy status.
    &quot;publicStatsViewable&quot;: True or False, # This value indicates if the extended video statistics on the watch page can be viewed by everyone. Note that the view count, likes, etc will still be visible if this is disabled. @mutable youtube.videos.insert youtube.videos.update
    &quot;publishAt&quot;: &quot;A String&quot;, # The date and time when the video is scheduled to publish. It can be set only if the privacy status of the video is private..
    &quot;rejectionReason&quot;: &quot;A String&quot;, # This value explains why YouTube rejected an uploaded video. This property is only present if the uploadStatus property indicates that the upload was rejected.
    &quot;selfDeclaredMadeForKids&quot;: True or False,
    &quot;uploadStatus&quot;: &quot;A String&quot;, # The status of the uploaded video.
  },
  &quot;suggestions&quot;: { # Specifies suggestions on how to improve video content, including encoding hints, tag suggestions, and editor suggestions. # The suggestions object encapsulates suggestions that identify opportunities to improve the video quality or the metadata for the uploaded video. This data can only be retrieved by the video owner.
    &quot;editorSuggestions&quot;: [ # A list of video editing operations that might improve the video quality or playback experience of the uploaded video.
      &quot;A String&quot;,
    ],
    &quot;processingErrors&quot;: [ # A list of errors that will prevent YouTube from successfully processing the uploaded video video. These errors indicate that, regardless of the video&#x27;s current processing status, eventually, that status will almost certainly be failed.
      &quot;A String&quot;,
    ],
    &quot;processingHints&quot;: [ # A list of suggestions that may improve YouTube&#x27;s ability to process the video.
      &quot;A String&quot;,
    ],
    &quot;processingWarnings&quot;: [ # A list of reasons why YouTube may have difficulty transcoding the uploaded video or that might result in an erroneous transcoding. These warnings are generated before YouTube actually processes the uploaded video file. In addition, they identify issues that are unlikely to cause the video processing to fail but that might cause problems such as sync issues, video artifacts, or a missing audio track.
      &quot;A String&quot;,
    ],
    &quot;tagSuggestions&quot;: [ # A list of keyword tags that could be added to the video&#x27;s metadata to increase the likelihood that users will locate your video when searching or browsing on YouTube.
      { # A single tag suggestion with it&#x27;s relevance information.
        &quot;categoryRestricts&quot;: [ # A set of video categories for which the tag is relevant. You can use this information to display appropriate tag suggestions based on the video category that the video uploader associates with the video. By default, tag suggestions are relevant for all categories if there are no restricts defined for the keyword.
          &quot;A String&quot;,
        ],
        &quot;tag&quot;: &quot;A String&quot;, # The keyword tag suggested for the video.
      },
    ],
  },
  &quot;topicDetails&quot;: { # Freebase topic information related to the video. # The topicDetails object encapsulates information about Freebase topics associated with the video.
    &quot;relevantTopicIds&quot;: [ # Similar to topic_id, except that these topics are merely relevant to the video. These are topics that may be mentioned in, or appear in the video. You can retrieve information about each topic using Freebase Topic API.
      &quot;A String&quot;,
    ],
    &quot;topicCategories&quot;: [ # A list of Wikipedia URLs that provide a high-level description of the video&#x27;s content.
      &quot;A String&quot;,
    ],
    &quot;topicIds&quot;: [ # A list of Freebase topic IDs that are centrally associated with the video. These are topics that are centrally featured in the video, and it can be said that the video is mainly about each of these. You can retrieve information about each topic using the &lt; a href=&quot;http://wiki.freebase.com/wiki/Topic_API&quot;&gt;Freebase Topic API.
      &quot;A String&quot;,
    ],
  },
}

  onBehalfOfContentOwner: string, *Note:* This parameter is intended exclusively for YouTube content partners. The *onBehalfOfContentOwner* parameter indicates that the request&#x27;s authorization credentials identify a YouTube CMS user who is acting on behalf of the content owner specified in the parameter value. This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and get access to all their video and channel data, without having to provide authentication credentials for each individual channel. The actual CMS account that the user authenticates with must be linked to the specified YouTube content owner.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A *video* resource represents a YouTube video.
  &quot;ageGating&quot;: { # Age restriction details related to a video. This data can only be retrieved by the video owner.
    &quot;alcoholContent&quot;: True or False, # Indicates whether or not the video has alcoholic beverage content. Only users of legal purchasing age in a particular country, as identified by ICAP, can view the content.
    &quot;restricted&quot;: True or False, # Age-restricted trailers. For redband trailers and adult-rated video-games. Only users aged 18+ can view the content. The the field is true the content is restricted to viewers aged 18+. Otherwise The field won&#x27;t be present.
    &quot;videoGameRating&quot;: &quot;A String&quot;, # Video game rating, if any.
  },
  &quot;contentDetails&quot;: { # Details about the content of a YouTube Video. # The contentDetails object contains information about the video content, including the length of the video and its aspect ratio.
    &quot;caption&quot;: &quot;A String&quot;, # The value of captions indicates whether the video has captions or not.
    &quot;contentRating&quot;: { # Ratings schemes. The country-specific ratings are mostly for movies and shows. LINT.IfChange # Specifies the ratings that the video received under various rating schemes.
      &quot;acbRating&quot;: &quot;A String&quot;, # The video&#x27;s Australian Classification Board (ACB) or Australian Communications and Media Authority (ACMA) rating. ACMA ratings are used to classify children&#x27;s television programming.
      &quot;agcomRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Italy&#x27;s Autorità per le Garanzie nelle Comunicazioni (AGCOM).
      &quot;anatelRating&quot;: &quot;A String&quot;, # The video&#x27;s Anatel (Asociación Nacional de Televisión) rating for Chilean television.
      &quot;bbfcRating&quot;: &quot;A String&quot;, # The video&#x27;s British Board of Film Classification (BBFC) rating.
      &quot;bfvcRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Thailand&#x27;s Board of Film and Video Censors.
      &quot;bmukkRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from the Austrian Board of Media Classification (Bundesministerium für Unterricht, Kunst und Kultur).
      &quot;catvRating&quot;: &quot;A String&quot;, # Rating system for Canadian TV - Canadian TV Classification System The video&#x27;s rating from the Canadian Radio-Television and Telecommunications Commission (CRTC) for Canadian English-language broadcasts. For more information, see the Canadian Broadcast Standards Council website.
      &quot;catvfrRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from the Canadian Radio-Television and Telecommunications Commission (CRTC) for Canadian French-language broadcasts. For more information, see the Canadian Broadcast Standards Council website.
      &quot;cbfcRating&quot;: &quot;A String&quot;, # The video&#x27;s Central Board of Film Certification (CBFC - India) rating.
      &quot;cccRating&quot;: &quot;A String&quot;, # The video&#x27;s Consejo de Calificación Cinematográfica (Chile) rating.
      &quot;cceRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Portugal&#x27;s Comissão de Classificação de Espect´culos.
      &quot;chfilmRating&quot;: &quot;A String&quot;, # The video&#x27;s rating in Switzerland.
      &quot;chvrsRating&quot;: &quot;A String&quot;, # The video&#x27;s Canadian Home Video Rating System (CHVRS) rating.
      &quot;cicfRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from the Commission de Contrôle des Films (Belgium).
      &quot;cnaRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Romania&#x27;s CONSILIUL NATIONAL AL AUDIOVIZUALULUI (CNA).
      &quot;cncRating&quot;: &quot;A String&quot;, # Rating system in France - Commission de classification cinematographique
      &quot;csaRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from France&#x27;s Conseil supérieur de l’audiovisuel, which rates broadcast content.
      &quot;cscfRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Luxembourg&#x27;s Commission de surveillance de la classification des films (CSCF).
      &quot;czfilmRating&quot;: &quot;A String&quot;, # The video&#x27;s rating in the Czech Republic.
      &quot;djctqRating&quot;: &quot;A String&quot;, # The video&#x27;s Departamento de Justiça, Classificação, Qualificação e Títulos (DJCQT - Brazil) rating.
      &quot;djctqRatingReasons&quot;: [ # Reasons that explain why the video received its DJCQT (Brazil) rating.
        &quot;A String&quot;,
      ],
      &quot;ecbmctRating&quot;: &quot;A String&quot;, # Rating system in Turkey - Evaluation and Classification Board of the Ministry of Culture and Tourism
      &quot;eefilmRating&quot;: &quot;A String&quot;, # The video&#x27;s rating in Estonia.
      &quot;egfilmRating&quot;: &quot;A String&quot;, # The video&#x27;s rating in Egypt.
      &quot;eirinRating&quot;: &quot;A String&quot;, # The video&#x27;s Eirin (映倫) rating. Eirin is the Japanese rating system.
      &quot;fcbmRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Malaysia&#x27;s Film Censorship Board.
      &quot;fcoRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Hong Kong&#x27;s Office for Film, Newspaper and Article Administration.
      &quot;fmocRating&quot;: &quot;A String&quot;, # This property has been deprecated. Use the contentDetails.contentRating.cncRating instead.
      &quot;fpbRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from South Africa&#x27;s Film and Publication Board.
      &quot;fpbRatingReasons&quot;: [ # Reasons that explain why the video received its FPB (South Africa) rating.
        &quot;A String&quot;,
      ],
      &quot;fskRating&quot;: &quot;A String&quot;, # The video&#x27;s Freiwillige Selbstkontrolle der Filmwirtschaft (FSK - Germany) rating.
      &quot;grfilmRating&quot;: &quot;A String&quot;, # The video&#x27;s rating in Greece.
      &quot;icaaRating&quot;: &quot;A String&quot;, # The video&#x27;s Instituto de la Cinematografía y de las Artes Audiovisuales (ICAA - Spain) rating.
      &quot;ifcoRating&quot;: &quot;A String&quot;, # The video&#x27;s Irish Film Classification Office (IFCO - Ireland) rating. See the IFCO website for more information.
      &quot;ilfilmRating&quot;: &quot;A String&quot;, # The video&#x27;s rating in Israel.
      &quot;incaaRating&quot;: &quot;A String&quot;, # The video&#x27;s INCAA (Instituto Nacional de Cine y Artes Audiovisuales - Argentina) rating.
      &quot;kfcbRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from the Kenya Film Classification Board.
      &quot;kijkwijzerRating&quot;: &quot;A String&quot;, # The video&#x27;s NICAM/Kijkwijzer rating from the Nederlands Instituut voor de Classificatie van Audiovisuele Media (Netherlands).
      &quot;kmrbRating&quot;: &quot;A String&quot;, # The video&#x27;s Korea Media Rating Board (영상물등급위원회) rating. The KMRB rates videos in South Korea.
      &quot;lsfRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Indonesia&#x27;s Lembaga Sensor Film.
      &quot;mccaaRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Malta&#x27;s Film Age-Classification Board.
      &quot;mccypRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from the Danish Film Institute&#x27;s (Det Danske Filminstitut) Media Council for Children and Young People.
      &quot;mcstRating&quot;: &quot;A String&quot;, # The video&#x27;s rating system for Vietnam - MCST
      &quot;mdaRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Singapore&#x27;s Media Development Authority (MDA) and, specifically, it&#x27;s Board of Film Censors (BFC).
      &quot;medietilsynetRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Medietilsynet, the Norwegian Media Authority.
      &quot;mekuRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Finland&#x27;s Kansallinen Audiovisuaalinen Instituutti (National Audiovisual Institute).
      &quot;menaMpaaRating&quot;: &quot;A String&quot;, # The rating system for MENA countries, a clone of MPAA. It is needed to prevent titles go live w/o additional QC check, since some of them can be inappropriate for the countries at all. See b/33408548 for more details.
      &quot;mibacRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from the Ministero dei Beni e delle Attività Culturali e del Turismo (Italy).
      &quot;mocRating&quot;: &quot;A String&quot;, # The video&#x27;s Ministerio de Cultura (Colombia) rating.
      &quot;moctwRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Taiwan&#x27;s Ministry of Culture (文化部).
      &quot;mpaaRating&quot;: &quot;A String&quot;, # The video&#x27;s Motion Picture Association of America (MPAA) rating.
      &quot;mpaatRating&quot;: &quot;A String&quot;, # The rating system for trailer, DVD, and Ad in the US. See http://movielabs.com/md/ratings/v2.3/html/US_MPAAT_Ratings.html.
      &quot;mtrcbRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from the Movie and Television Review and Classification Board (Philippines).
      &quot;nbcRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from the Maldives National Bureau of Classification.
      &quot;nbcplRating&quot;: &quot;A String&quot;, # The video&#x27;s rating in Poland.
      &quot;nfrcRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from the Bulgarian National Film Center.
      &quot;nfvcbRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Nigeria&#x27;s National Film and Video Censors Board.
      &quot;nkclvRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from the Nacionãlais Kino centrs (National Film Centre of Latvia).
      &quot;nmcRating&quot;: &quot;A String&quot;, # The National Media Council ratings system for United Arab Emirates.
      &quot;oflcRating&quot;: &quot;A String&quot;, # The video&#x27;s Office of Film and Literature Classification (OFLC - New Zealand) rating.
      &quot;pefilmRating&quot;: &quot;A String&quot;, # The video&#x27;s rating in Peru.
      &quot;rcnofRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from the Hungarian Nemzeti Filmiroda, the Rating Committee of the National Office of Film.
      &quot;resorteviolenciaRating&quot;: &quot;A String&quot;, # The video&#x27;s rating in Venezuela.
      &quot;rtcRating&quot;: &quot;A String&quot;, # The video&#x27;s General Directorate of Radio, Television and Cinematography (Mexico) rating.
      &quot;rteRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Ireland&#x27;s Raidió Teilifís Éireann.
      &quot;russiaRating&quot;: &quot;A String&quot;, # The video&#x27;s National Film Registry of the Russian Federation (MKRF - Russia) rating.
      &quot;skfilmRating&quot;: &quot;A String&quot;, # The video&#x27;s rating in Slovakia.
      &quot;smaisRating&quot;: &quot;A String&quot;, # The video&#x27;s rating in Iceland.
      &quot;smsaRating&quot;: &quot;A String&quot;, # The video&#x27;s rating from Statens medieråd (Sweden&#x27;s National Media Council).
      &quot;tvpgRating&quot;: &quot;A String&quot;, # The video&#x27;s TV Parental Guidelines (TVPG) rating.
      &quot;ytRating&quot;: &quot;A String&quot;, # A rating that YouTube uses to identify age-restricted content.
    },
    &quot;countryRestriction&quot;: { # Rights management policy for YouTube resources. # The countryRestriction object contains information about the countries where a video is (or is not) viewable.
      &quot;allowed&quot;: True or False, # The value of allowed indicates whether the access to the policy is allowed or denied by default.
      &quot;exception&quot;: [ # A list of region codes that identify countries where the default policy do not apply.
        &quot;A String&quot;,
      ],
    },
    &quot;definition&quot;: &quot;A String&quot;, # The value of definition indicates whether the video is available in high definition or only in standard definition.
    &quot;dimension&quot;: &quot;A String&quot;, # The value of dimension indicates whether the video is available in 3D or in 2D.
    &quot;duration&quot;: &quot;A String&quot;, # The length of the video. The tag value is an ISO 8601 duration in the format PT#M#S, in which the letters PT indicate that the value specifies a period of time, and the letters M and S refer to length in minutes and seconds, respectively. The # characters preceding the M and S letters are both integers that specify the number of minutes (or seconds) of the video. For example, a value of PT15M51S indicates that the video is 15 minutes and 51 seconds long.
    &quot;hasCustomThumbnail&quot;: True or False, # Indicates whether the video uploader has provided a custom thumbnail image for the video. This property is only visible to the video uploader.
    &quot;licensedContent&quot;: True or False, # The value of is_license_content indicates whether the video is licensed content.
    &quot;projection&quot;: &quot;A String&quot;, # Specifies the projection format of the video.
    &quot;regionRestriction&quot;: { # DEPRECATED Region restriction of the video. # The regionRestriction object contains information about the countries where a video is (or is not) viewable. The object will contain either the contentDetails.regionRestriction.allowed property or the contentDetails.regionRestriction.blocked property.
      &quot;allowed&quot;: [ # A list of region codes that identify countries where the video is viewable. If this property is present and a country is not listed in its value, then the video is blocked from appearing in that country. If this property is present and contains an empty list, the video is blocked in all countries.
        &quot;A String&quot;,
      ],
      &quot;blocked&quot;: [ # A list of region codes that identify countries where the video is blocked. If this property is present and a country is not listed in its value, then the video is viewable in that country. If this property is present and contains an empty list, the video is viewable in all countries.
        &quot;A String&quot;,
      ],
    },
  },
  &quot;etag&quot;: &quot;A String&quot;, # Etag of this resource.
  &quot;fileDetails&quot;: { # Describes original video file properties, including technical details about audio and video streams, but also metadata information like content length, digitization time, or geotagging information. # The fileDetails object encapsulates information about the video file that was uploaded to YouTube, including the file&#x27;s resolution, duration, audio and video codecs, stream bitrates, and more. This data can only be retrieved by the video owner.
    &quot;audioStreams&quot;: [ # A list of audio streams contained in the uploaded video file. Each item in the list contains detailed metadata about an audio stream.
      { # Information about an audio stream.
        &quot;bitrateBps&quot;: &quot;A String&quot;, # The audio stream&#x27;s bitrate, in bits per second.
        &quot;channelCount&quot;: 42, # The number of audio channels that the stream contains.
        &quot;codec&quot;: &quot;A String&quot;, # The audio codec that the stream uses.
        &quot;vendor&quot;: &quot;A String&quot;, # A value that uniquely identifies a video vendor. Typically, the value is a four-letter vendor code.
      },
    ],
    &quot;bitrateBps&quot;: &quot;A String&quot;, # The uploaded video file&#x27;s combined (video and audio) bitrate in bits per second.
    &quot;container&quot;: &quot;A String&quot;, # The uploaded video file&#x27;s container format.
    &quot;creationTime&quot;: &quot;A String&quot;, # The date and time when the uploaded video file was created. The value is specified in ISO 8601 format. Currently, the following ISO 8601 formats are supported: - Date only: YYYY-MM-DD - Naive time: YYYY-MM-DDTHH:MM:SS - Time with timezone: YYYY-MM-DDTHH:MM:SS+HH:MM
    &quot;durationMs&quot;: &quot;A String&quot;, # The length of the uploaded video in milliseconds.
    &quot;fileName&quot;: &quot;A String&quot;, # The uploaded file&#x27;s name. This field is present whether a video file or another type of file was uploaded.
    &quot;fileSize&quot;: &quot;A String&quot;, # The uploaded file&#x27;s size in bytes. This field is present whether a video file or another type of file was uploaded.
    &quot;fileType&quot;: &quot;A String&quot;, # The uploaded file&#x27;s type as detected by YouTube&#x27;s video processing engine. Currently, YouTube only processes video files, but this field is present whether a video file or another type of file was uploaded.
    &quot;videoStreams&quot;: [ # A list of video streams contained in the uploaded video file. Each item in the list contains detailed metadata about a video stream.
      { # Information about a video stream.
        &quot;aspectRatio&quot;: 3.14, # The video content&#x27;s display aspect ratio, which specifies the aspect ratio in which the video should be displayed.
        &quot;bitrateBps&quot;: &quot;A String&quot;, # The video stream&#x27;s bitrate, in bits per second.
        &quot;codec&quot;: &quot;A String&quot;, # The video codec that the stream uses.
        &quot;frameRateFps&quot;: 3.14, # The video stream&#x27;s frame rate, in frames per second.
        &quot;heightPixels&quot;: 42, # The encoded video content&#x27;s height in pixels.
        &quot;rotation&quot;: &quot;A String&quot;, # The amount that YouTube needs to rotate the original source content to properly display the video.
        &quot;vendor&quot;: &quot;A String&quot;, # A value that uniquely identifies a video vendor. Typically, the value is a four-letter vendor code.
        &quot;widthPixels&quot;: 42, # The encoded video content&#x27;s width in pixels. You can calculate the video&#x27;s encoding aspect ratio as width_pixels / height_pixels.
      },
    ],
  },
  &quot;id&quot;: &quot;A String&quot;, # The ID that YouTube uses to uniquely identify the video.
  &quot;kind&quot;: &quot;youtube#video&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;youtube#video&quot;.
  &quot;liveStreamingDetails&quot;: { # Details about the live streaming metadata. # The liveStreamingDetails object contains metadata about a live video broadcast. The object will only be present in a video resource if the video is an upcoming, live, or completed live broadcast.
    &quot;activeLiveChatId&quot;: &quot;A String&quot;, # The ID of the currently active live chat attached to this video. This field is filled only if the video is a currently live broadcast that has live chat. Once the broadcast transitions to complete this field will be removed and the live chat closed down. For persistent broadcasts that live chat id will no longer be tied to this video but rather to the new video being displayed at the persistent page.
    &quot;actualEndTime&quot;: &quot;A String&quot;, # The time that the broadcast actually ended. This value will not be available until the broadcast is over.
    &quot;actualStartTime&quot;: &quot;A String&quot;, # The time that the broadcast actually started. This value will not be available until the broadcast begins.
    &quot;concurrentViewers&quot;: &quot;A String&quot;, # The number of viewers currently watching the broadcast. The property and its value will be present if the broadcast has current viewers and the broadcast owner has not hidden the viewcount for the video. Note that YouTube stops tracking the number of concurrent viewers for a broadcast when the broadcast ends. So, this property would not identify the number of viewers watching an archived video of a live broadcast that already ended.
    &quot;scheduledEndTime&quot;: &quot;A String&quot;, # The time that the broadcast is scheduled to end. If the value is empty or the property is not present, then the broadcast is scheduled to contiue indefinitely.
    &quot;scheduledStartTime&quot;: &quot;A String&quot;, # The time that the broadcast is scheduled to begin.
  },
  &quot;localizations&quot;: { # The localizations object contains localized versions of the basic details about the video, such as its title and description.
    &quot;a_key&quot;: { # Localized versions of certain video properties (e.g. title).
      &quot;description&quot;: &quot;A String&quot;, # Localized version of the video&#x27;s description.
      &quot;title&quot;: &quot;A String&quot;, # Localized version of the video&#x27;s title.
    },
  },
  &quot;monetizationDetails&quot;: { # Details about monetization of a YouTube Video. # The monetizationDetails object encapsulates information about the monetization status of the video.
    &quot;access&quot;: { # Rights management policy for YouTube resources. # The value of access indicates whether the video can be monetized or not.
      &quot;allowed&quot;: True or False, # The value of allowed indicates whether the access to the policy is allowed or denied by default.
      &quot;exception&quot;: [ # A list of region codes that identify countries where the default policy do not apply.
        &quot;A String&quot;,
      ],
    },
  },
  &quot;player&quot;: { # Player to be used for a video playback. # The player object contains information that you would use to play the video in an embedded player.
    &quot;embedHeight&quot;: &quot;A String&quot;,
    &quot;embedHtml&quot;: &quot;A String&quot;, # An &lt;iframe&gt; tag that embeds a player that will play the video.
    &quot;embedWidth&quot;: &quot;A String&quot;, # The embed width
  },
  &quot;processingDetails&quot;: { # Describes processing status and progress and availability of some other Video resource parts. # The processingDetails object encapsulates information about YouTube&#x27;s progress in processing the uploaded video file. The properties in the object identify the current processing status and an estimate of the time remaining until YouTube finishes processing the video. This part also indicates whether different types of data or content, such as file details or thumbnail images, are available for the video. The processingProgress object is designed to be polled so that the video uploaded can track the progress that YouTube has made in processing the uploaded video file. This data can only be retrieved by the video owner.
    &quot;editorSuggestionsAvailability&quot;: &quot;A String&quot;, # This value indicates whether video editing suggestions, which might improve video quality or the playback experience, are available for the video. You can retrieve these suggestions by requesting the suggestions part in your videos.list() request.
    &quot;fileDetailsAvailability&quot;: &quot;A String&quot;, # This value indicates whether file details are available for the uploaded video. You can retrieve a video&#x27;s file details by requesting the fileDetails part in your videos.list() request.
    &quot;processingFailureReason&quot;: &quot;A String&quot;, # The reason that YouTube failed to process the video. This property will only have a value if the processingStatus property&#x27;s value is failed.
    &quot;processingIssuesAvailability&quot;: &quot;A String&quot;, # This value indicates whether the video processing engine has generated suggestions that might improve YouTube&#x27;s ability to process the the video, warnings that explain video processing problems, or errors that cause video processing problems. You can retrieve these suggestions by requesting the suggestions part in your videos.list() request.
    &quot;processingProgress&quot;: { # Video processing progress and completion time estimate. # The processingProgress object contains information about the progress YouTube has made in processing the video. The values are really only relevant if the video&#x27;s processing status is processing.
      &quot;partsProcessed&quot;: &quot;A String&quot;, # The number of parts of the video that YouTube has already processed. You can estimate the percentage of the video that YouTube has already processed by calculating: 100 * parts_processed / parts_total Note that since the estimated number of parts could increase without a corresponding increase in the number of parts that have already been processed, it is possible that the calculated progress could periodically decrease while YouTube processes a video.
      &quot;partsTotal&quot;: &quot;A String&quot;, # An estimate of the total number of parts that need to be processed for the video. The number may be updated with more precise estimates while YouTube processes the video.
      &quot;timeLeftMs&quot;: &quot;A String&quot;, # An estimate of the amount of time, in millseconds, that YouTube needs to finish processing the video.
    },
    &quot;processingStatus&quot;: &quot;A String&quot;, # The video&#x27;s processing status. This value indicates whether YouTube was able to process the video or if the video is still being processed.
    &quot;tagSuggestionsAvailability&quot;: &quot;A String&quot;, # This value indicates whether keyword (tag) suggestions are available for the video. Tags can be added to a video&#x27;s metadata to make it easier for other users to find the video. You can retrieve these suggestions by requesting the suggestions part in your videos.list() request.
    &quot;thumbnailsAvailability&quot;: &quot;A String&quot;, # This value indicates whether thumbnail images have been generated for the video.
  },
  &quot;projectDetails&quot;: { # DEPRECATED. b/157517979: This part was never populated after it was added. However, it sees non-zero traffic because there is generated client code in the wild that refers to it [1]. We keep this field and do NOT remove it because otherwise V3 would return an error when this part gets requested [2]. [1] https://developers.google.com/resources/api-libraries/documentation/youtube/v3/csharp/latest/classGoogle_1_1Apis_1_1YouTube_1_1v3_1_1Data_1_1VideoProjectDetails.html [2] http://google3/video/youtube/src/python/servers/data_api/common.py?l=1565-1569&amp;rcl=344141677 # The projectDetails object contains information about the project specific video metadata. b/157517979: This part was never populated after it was added. However, it sees non-zero traffic because there is generated client code in the wild that refers to it [1]. We keep this field and do NOT remove it because otherwise V3 would return an error when this part gets requested [2]. [1] https://developers.google.com/resources/api-libraries/documentation/youtube/v3/csharp/latest/classGoogle_1_1Apis_1_1YouTube_1_1v3_1_1Data_1_1VideoProjectDetails.html [2] http://google3/video/youtube/src/python/servers/data_api/common.py?l=1565-1569&amp;rcl=344141677
  },
  &quot;recordingDetails&quot;: { # Recording information associated with the video. # The recordingDetails object encapsulates information about the location, date and address where the video was recorded.
    &quot;location&quot;: { # Geographical coordinates of a point, in WGS84. # The geolocation information associated with the video.
      &quot;altitude&quot;: 3.14, # Altitude above the reference ellipsoid, in meters.
      &quot;latitude&quot;: 3.14, # Latitude in degrees.
      &quot;longitude&quot;: 3.14, # Longitude in degrees.
    },
    &quot;locationDescription&quot;: &quot;A String&quot;, # The text description of the location where the video was recorded.
    &quot;recordingDate&quot;: &quot;A String&quot;, # The date and time when the video was recorded.
  },
  &quot;snippet&quot;: { # Basic details about a video, including title, description, uploader, thumbnails and category. # The snippet object contains basic details about the video, such as its title, description, and category.
    &quot;categoryId&quot;: &quot;A String&quot;, # The YouTube video category associated with the video.
    &quot;channelId&quot;: &quot;A String&quot;, # The ID that YouTube uses to uniquely identify the channel that the video was uploaded to.
    &quot;channelTitle&quot;: &quot;A String&quot;, # Channel title for the channel that the video belongs to.
    &quot;defaultAudioLanguage&quot;: &quot;A String&quot;, # The default_audio_language property specifies the language spoken in the video&#x27;s default audio track.
    &quot;defaultLanguage&quot;: &quot;A String&quot;, # The language of the videos&#x27;s default snippet.
    &quot;description&quot;: &quot;A String&quot;, # The video&#x27;s description. @mutable youtube.videos.insert youtube.videos.update
    &quot;liveBroadcastContent&quot;: &quot;A String&quot;, # Indicates if the video is an upcoming/active live broadcast. Or it&#x27;s &quot;none&quot; if the video is not an upcoming/active live broadcast.
    &quot;localized&quot;: { # Localized versions of certain video properties (e.g. title). # Localized snippet selected with the hl parameter. If no such localization exists, this field is populated with the default snippet. (Read-only)
      &quot;description&quot;: &quot;A String&quot;, # Localized version of the video&#x27;s description.
      &quot;title&quot;: &quot;A String&quot;, # Localized version of the video&#x27;s title.
    },
    &quot;publishedAt&quot;: &quot;A String&quot;, # The date and time when the video was uploaded.
    &quot;tags&quot;: [ # A list of keyword tags associated with the video. Tags may contain spaces.
      &quot;A String&quot;,
    ],
    &quot;thumbnails&quot;: { # Internal representation of thumbnails for a YouTube resource. # A map of thumbnail images associated with the video. For each object in the map, the key is the name of the thumbnail image, and the value is an object that contains other information about the thumbnail.
      &quot;default&quot;: { # A thumbnail is an image representing a YouTube resource. # The default image for this resource.
        &quot;height&quot;: 42, # (Optional) Height of the thumbnail image.
        &quot;url&quot;: &quot;A String&quot;, # The thumbnail image&#x27;s URL.
        &quot;width&quot;: 42, # (Optional) Width of the thumbnail image.
      },
      &quot;high&quot;: { # A thumbnail is an image representing a YouTube resource. # The high quality image for this resource.
        &quot;height&quot;: 42, # (Optional) Height of the thumbnail image.
        &quot;url&quot;: &quot;A String&quot;, # The thumbnail image&#x27;s URL.
        &quot;width&quot;: 42, # (Optional) Width of the thumbnail image.
      },
      &quot;maxres&quot;: { # A thumbnail is an image representing a YouTube resource. # The maximum resolution quality image for this resource.
        &quot;height&quot;: 42, # (Optional) Height of the thumbnail image.
        &quot;url&quot;: &quot;A String&quot;, # The thumbnail image&#x27;s URL.
        &quot;width&quot;: 42, # (Optional) Width of the thumbnail image.
      },
      &quot;medium&quot;: { # A thumbnail is an image representing a YouTube resource. # The medium quality image for this resource.
        &quot;height&quot;: 42, # (Optional) Height of the thumbnail image.
        &quot;url&quot;: &quot;A String&quot;, # The thumbnail image&#x27;s URL.
        &quot;width&quot;: 42, # (Optional) Width of the thumbnail image.
      },
      &quot;standard&quot;: { # A thumbnail is an image representing a YouTube resource. # The standard quality image for this resource.
        &quot;height&quot;: 42, # (Optional) Height of the thumbnail image.
        &quot;url&quot;: &quot;A String&quot;, # The thumbnail image&#x27;s URL.
        &quot;width&quot;: 42, # (Optional) Width of the thumbnail image.
      },
    },
    &quot;title&quot;: &quot;A String&quot;, # The video&#x27;s title. @mutable youtube.videos.insert youtube.videos.update
  },
  &quot;statistics&quot;: { # Statistics about the video, such as the number of times the video was viewed or liked. # The statistics object contains statistics about the video.
    &quot;commentCount&quot;: &quot;A String&quot;, # The number of comments for the video.
    &quot;dislikeCount&quot;: &quot;A String&quot;, # The number of users who have indicated that they disliked the video by giving it a negative rating.
    &quot;favoriteCount&quot;: &quot;A String&quot;, # The number of users who currently have the video marked as a favorite video.
    &quot;likeCount&quot;: &quot;A String&quot;, # The number of users who have indicated that they liked the video by giving it a positive rating.
    &quot;viewCount&quot;: &quot;A String&quot;, # The number of times the video has been viewed.
  },
  &quot;status&quot;: { # Basic details about a video category, such as its localized title. Next Id: 17 # The status object contains information about the video&#x27;s uploading, processing, and privacy statuses.
    &quot;embeddable&quot;: True or False, # This value indicates if the video can be embedded on another website. @mutable youtube.videos.insert youtube.videos.update
    &quot;failureReason&quot;: &quot;A String&quot;, # This value explains why a video failed to upload. This property is only present if the uploadStatus property indicates that the upload failed.
    &quot;license&quot;: &quot;A String&quot;, # The video&#x27;s license. @mutable youtube.videos.insert youtube.videos.update
    &quot;madeForKids&quot;: True or False,
    &quot;privacyStatus&quot;: &quot;A String&quot;, # The video&#x27;s privacy status.
    &quot;publicStatsViewable&quot;: True or False, # This value indicates if the extended video statistics on the watch page can be viewed by everyone. Note that the view count, likes, etc will still be visible if this is disabled. @mutable youtube.videos.insert youtube.videos.update
    &quot;publishAt&quot;: &quot;A String&quot;, # The date and time when the video is scheduled to publish. It can be set only if the privacy status of the video is private..
    &quot;rejectionReason&quot;: &quot;A String&quot;, # This value explains why YouTube rejected an uploaded video. This property is only present if the uploadStatus property indicates that the upload was rejected.
    &quot;selfDeclaredMadeForKids&quot;: True or False,
    &quot;uploadStatus&quot;: &quot;A String&quot;, # The status of the uploaded video.
  },
  &quot;suggestions&quot;: { # Specifies suggestions on how to improve video content, including encoding hints, tag suggestions, and editor suggestions. # The suggestions object encapsulates suggestions that identify opportunities to improve the video quality or the metadata for the uploaded video. This data can only be retrieved by the video owner.
    &quot;editorSuggestions&quot;: [ # A list of video editing operations that might improve the video quality or playback experience of the uploaded video.
      &quot;A String&quot;,
    ],
    &quot;processingErrors&quot;: [ # A list of errors that will prevent YouTube from successfully processing the uploaded video video. These errors indicate that, regardless of the video&#x27;s current processing status, eventually, that status will almost certainly be failed.
      &quot;A String&quot;,
    ],
    &quot;processingHints&quot;: [ # A list of suggestions that may improve YouTube&#x27;s ability to process the video.
      &quot;A String&quot;,
    ],
    &quot;processingWarnings&quot;: [ # A list of reasons why YouTube may have difficulty transcoding the uploaded video or that might result in an erroneous transcoding. These warnings are generated before YouTube actually processes the uploaded video file. In addition, they identify issues that are unlikely to cause the video processing to fail but that might cause problems such as sync issues, video artifacts, or a missing audio track.
      &quot;A String&quot;,
    ],
    &quot;tagSuggestions&quot;: [ # A list of keyword tags that could be added to the video&#x27;s metadata to increase the likelihood that users will locate your video when searching or browsing on YouTube.
      { # A single tag suggestion with it&#x27;s relevance information.
        &quot;categoryRestricts&quot;: [ # A set of video categories for which the tag is relevant. You can use this information to display appropriate tag suggestions based on the video category that the video uploader associates with the video. By default, tag suggestions are relevant for all categories if there are no restricts defined for the keyword.
          &quot;A String&quot;,
        ],
        &quot;tag&quot;: &quot;A String&quot;, # The keyword tag suggested for the video.
      },
    ],
  },
  &quot;topicDetails&quot;: { # Freebase topic information related to the video. # The topicDetails object encapsulates information about Freebase topics associated with the video.
    &quot;relevantTopicIds&quot;: [ # Similar to topic_id, except that these topics are merely relevant to the video. These are topics that may be mentioned in, or appear in the video. You can retrieve information about each topic using Freebase Topic API.
      &quot;A String&quot;,
    ],
    &quot;topicCategories&quot;: [ # A list of Wikipedia URLs that provide a high-level description of the video&#x27;s content.
      &quot;A String&quot;,
    ],
    &quot;topicIds&quot;: [ # A list of Freebase topic IDs that are centrally associated with the video. These are topics that are centrally featured in the video, and it can be said that the video is mainly about each of these. You can retrieve information about each topic using the &lt; a href=&quot;http://wiki.freebase.com/wiki/Topic_API&quot;&gt;Freebase Topic API.
      &quot;A String&quot;,
    ],
  },
}</pre>
</div>

</body></html>