<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</a> . <a href="youtube_v3.videos.html">videos</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#delete">delete(id, onBehalfOfContentOwner=None)</a></code></p>
<p class="firstline">Deletes a YouTube video.</p>
<p class="toc_element">
  <code><a href="#getRating">getRating(id, onBehalfOfContentOwner=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, body=None, media_body=None, onBehalfOfContentOwner=None, stabilize=None, media_mime_type=None, onBehalfOfContentOwnerChannel=None, notifySubscribers=None, autoLevels=None)</a></code></p>
<p class="firstline">Uploads a video to YouTube and optionally sets the video's metadata.</p>
<p class="toc_element">
  <code><a href="#list">list(part, hl=None, maxWidth=None, locale=None, id=None, onBehalfOfContentOwner=None, regionCode=None, pageToken=None, maxResults=None, chart=None, myRating=None, maxHeight=None, videoCategoryId=None)</a></code></p>
<p class="firstline">Returns a list of videos that match the API request parameters.</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)</a></code></p>
<p class="firstline">Add a like or dislike rating to a video or remove a rating from a video.</p>
<p class="toc_element">
  <code><a href="#reportAbuse">reportAbuse(body, onBehalfOfContentOwner=None)</a></code></p>
<p class="firstline">Report abuse for a video.</p>
<p class="toc_element">
  <code><a href="#update">update(part, body, onBehalfOfContentOwner=None)</a></code></p>
<p class="firstline">Updates a video's metadata.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="delete">delete(id, onBehalfOfContentOwner=None)</code>
  <pre>Deletes a YouTube video.

Args:
  id: string, The id parameter specifies the YouTube video ID for the resource that is being deleted. In a video resource, the id property specifies the video's ID. (required)
  onBehalfOfContentOwner: string, Note: This parameter is intended exclusively for YouTube content partners.

The onBehalfOfContentOwner parameter indicates that the request'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.
</pre>
</div>

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

Args:
  id: string, The id parameter specifies a comma-separated list of the YouTube video ID(s) for the resource(s) for which you are retrieving rating data. In a video resource, the id property specifies the video's ID. (required)
  onBehalfOfContentOwner: string, Note: This parameter is intended exclusively for YouTube content partners.

The onBehalfOfContentOwner parameter indicates that the request'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.

Returns:
  An object of the form:

    {
    "eventId": "A String", # Serialized EventId of the request which produced this response.
    "items": [ # A list of ratings that match the request criteria.
      {
        "rating": "A String",
        "videoId": "A String",
      },
    ],
    "kind": "youtube#videoGetRatingResponse", # Identifies what kind of resource this is. Value: the fixed string "youtube#videoGetRatingResponse".
    "etag": "A String", # Etag of this resource.
    "visitorId": "A String", # The visitorId identifies the visitor.
  }</pre>
</div>

<div class="method">
    <code class="details" id="insert">insert(part, body=None, media_body=None, onBehalfOfContentOwner=None, stabilize=None, media_mime_type=None, onBehalfOfContentOwnerChannel=None, notifySubscribers=None, autoLevels=None)</code>
  <pre>Uploads a video to YouTube and optionally sets the video's metadata.

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)
  body: object, The request body.
    The object takes the form of:

{ # A video resource represents a YouTube video.
    "liveStreamingDetails": { # 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.
      "actualEndTime": "A String", # The time that the broadcast actually ended. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format. This value will not be available until the broadcast is over.
      "activeLiveChatId": "A String", # 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.
      "scheduledStartTime": "A String", # The time that the broadcast is scheduled to begin. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
      "concurrentViewers": "A String", # 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.
      "actualStartTime": "A String", # The time that the broadcast actually started. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format. This value will not be available until the broadcast begins.
      "scheduledEndTime": "A String", # The time that the broadcast is scheduled to end. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format. If the value is empty or the property is not present, then the broadcast is scheduled to continue indefinitely.
    },
    "snippet": { # 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.
      "publishedAt": "A String", # The date and time that the video was uploaded. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
      "description": "A String", # The video's description.
      "tags": [ # A list of keyword tags associated with the video. Tags may contain spaces.
        "A String",
      ],
      "defaultAudioLanguage": "A String", # The default_audio_language property specifies the language spoken in the video's default audio track.
      "channelId": "A String", # The ID that YouTube uses to uniquely identify the channel that the video was uploaded to.
      "defaultLanguage": "A String", # The language of the videos's default snippet.
      "liveBroadcastContent": "A String", # Indicates if the video is an upcoming/active live broadcast. Or it's "none" if the video is not an upcoming/active live broadcast.
      "channelTitle": "A String", # Channel title for the channel that the video belongs to.
      "title": "A String", # The video's title.
      "categoryId": "A String", # The YouTube video category associated with the video.
      "localized": { # 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)
        "description": "A String", # Localized version of the video's description.
        "title": "A String", # Localized version of the video's title.
      },
      "thumbnails": { # 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.
        "default": { # A thumbnail is an image representing a YouTube resource. # The default image for this resource.
          "url": "A String", # The thumbnail image's URL.
          "width": 42, # (Optional) Width of the thumbnail image.
          "height": 42, # (Optional) Height of the thumbnail image.
        },
        "high": { # A thumbnail is an image representing a YouTube resource. # The high quality image for this resource.
          "url": "A String", # The thumbnail image's URL.
          "width": 42, # (Optional) Width of the thumbnail image.
          "height": 42, # (Optional) Height of the thumbnail image.
        },
        "medium": { # A thumbnail is an image representing a YouTube resource. # The medium quality image for this resource.
          "url": "A String", # The thumbnail image's URL.
          "width": 42, # (Optional) Width of the thumbnail image.
          "height": 42, # (Optional) Height of the thumbnail image.
        },
        "maxres": { # A thumbnail is an image representing a YouTube resource. # The maximum resolution quality image for this resource.
          "url": "A String", # The thumbnail image's URL.
          "width": 42, # (Optional) Width of the thumbnail image.
          "height": 42, # (Optional) Height of the thumbnail image.
        },
        "standard": { # A thumbnail is an image representing a YouTube resource. # The standard quality image for this resource.
          "url": "A String", # The thumbnail image's URL.
          "width": 42, # (Optional) Width of the thumbnail image.
          "height": 42, # (Optional) Height of the thumbnail image.
        },
      },
    },
    "kind": "youtube#video", # Identifies what kind of resource this is. Value: the fixed string "youtube#video".
    "statistics": { # Statistics about the video, such as the number of times the video was viewed or liked. # The statistics object contains statistics about the video.
      "commentCount": "A String", # The number of comments for the video.
      "viewCount": "A String", # The number of times the video has been viewed.
      "favoriteCount": "A String", # The number of users who currently have the video marked as a favorite video.
      "dislikeCount": "A String", # The number of users who have indicated that they disliked the video by giving it a negative rating.
      "likeCount": "A String", # The number of users who have indicated that they liked the video by giving it a positive rating.
    },
    "topicDetails": { # Freebase topic information related to the video. # The topicDetails object encapsulates information about Freebase topics associated with the video.
      "topicIds": [ # 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 Freebase Topic API.
        "A String",
      ],
      "topicCategories": [ # A list of Wikipedia URLs that provide a high-level description of the video's content.
        "A String",
      ],
      "relevantTopicIds": [ # 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.
        "A String",
      ],
    },
    "monetizationDetails": { # Details about monetization of a YouTube Video. # The monetizationDetails object encapsulates information about the monetization status of the video.
      "access": { # Rights management policy for YouTube resources. # The value of access indicates whether the video can be monetized or not.
        "exception": [ # A list of region codes that identify countries where the default policy do not apply.
          "A String",
        ],
        "allowed": True or False, # The value of allowed indicates whether the access to the policy is allowed or denied by default.
      },
    },
    "contentDetails": { # 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.
      "definition": "A String", # The value of definition indicates whether the video is available in high definition or only in standard definition.
      "projection": "A String", # Specifies the projection format of the video.
      "countryRestriction": { # Rights management policy for YouTube resources. # The countryRestriction object contains information about the countries where a video is (or is not) viewable.
        "exception": [ # A list of region codes that identify countries where the default policy do not apply.
          "A String",
        ],
        "allowed": True or False, # The value of allowed indicates whether the access to the policy is allowed or denied by default.
      },
      "hasCustomThumbnail": 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.
      "contentRating": { # Ratings schemes. The country-specific ratings are mostly for movies and shows. NEXT_ID: 69 # Specifies the ratings that the video received under various rating schemes.
        "cncRating": "A String", # Rating system in France - Commission de classification cinematographique
        "catvfrRating": "A String", # The video'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.
        "cbfcRating": "A String", # The video's Central Board of Film Certification (CBFC - India) rating.
        "bfvcRating": "A String", # The video's rating from Thailand's Board of Film and Video Censors.
        "mdaRating": "A String", # The video's rating from Singapore's Media Development Authority (MDA) and, specifically, it's Board of Film Censors (BFC).
        "lsfRating": "A String", # The video's rating from Indonesia's Lembaga Sensor Film.
        "medietilsynetRating": "A String", # The video's rating from Medietilsynet, the Norwegian Media Authority.
        "bmukkRating": "A String", # The video's rating from the Austrian Board of Media Classification (Bundesministerium für Unterricht, Kunst und Kultur).
        "chfilmRating": "A String", # The video's rating in Switzerland.
        "resorteviolenciaRating": "A String", # The video's rating in Venezuela.
        "rteRating": "A String", # The video's rating from Ireland's Raidió Teilifís Éireann.
        "csaRating": "A String", # The video's rating from France's Conseil supérieur de l?audiovisuel, which rates broadcast content.
        "moctwRating": "A String", # The video's rating from Taiwan's Ministry of Culture (文化部).
        "catvRating": "A String", # Rating system for Canadian TV - Canadian TV Classification System The video'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.
        "pefilmRating": "A String", # The video's rating in Peru.
        "djctqRatingReasons": [ # Reasons that explain why the video received its DJCQT (Brazil) rating.
          "A String",
        ],
        "incaaRating": "A String", # The video's INCAA (Instituto Nacional de Cine y Artes Audiovisuales - Argentina) rating.
        "oflcRating": "A String", # The video's Office of Film and Literature Classification (OFLC - New Zealand) rating.
        "fpbRating": "A String", # The video's rating from South Africa's Film and Publication Board.
        "mccaaRating": "A String", # The video's rating from Malta's Film Age-Classification Board.
        "tvpgRating": "A String", # The video's TV Parental Guidelines (TVPG) rating.
        "rtcRating": "A String", # The video's General Directorate of Radio, Television and Cinematography (Mexico) rating.
        "cscfRating": "A String", # The video's rating from Luxembourg's Commission de surveillance de la classification des films (CSCF).
        "fskRating": "A String", # The video's Freiwillige Selbstkontrolle der Filmwirtschaft (FSK - Germany) rating.
        "bbfcRating": "A String", # The video's British Board of Film Classification (BBFC) rating.
        "kmrbRating": "A String", # The video's Korea Media Rating Board (영상물등급위원회) rating. The KMRB rates videos in South Korea.
        "smsaRating": "A String", # The video's rating from Statens medieråd (Sweden's National Media Council).
        "egfilmRating": "A String", # The video's rating in Egypt.
        "cicfRating": "A String", # The video's rating from the Commission de Contrôle des Films (Belgium).
        "nbcplRating": "A String", # The video's rating in Poland.
        "nbcRating": "A String", # The video's rating from the Maldives National Bureau of Classification.
        "ytRating": "A String", # A rating that YouTube uses to identify age-restricted content.
        "nfvcbRating": "A String", # The video's rating from Nigeria's National Film and Video Censors Board.
        "djctqRating": "A String", # The video's Departamento de Justiça, Classificação, Qualificação e Títulos (DJCQT - Brazil) rating.
        "ifcoRating": "A String", # The video's Irish Film Classification Office (IFCO - Ireland) rating. See the IFCO website for more information.
        "fcoRating": "A String", # The video's rating from Hong Kong's Office for Film, Newspaper and Article Administration.
        "eefilmRating": "A String", # The video's rating in Estonia.
        "acbRating": "A String", # The video's Australian Classification Board (ACB) or Australian Communications and Media Authority (ACMA) rating. ACMA ratings are used to classify children's television programming.
        "grfilmRating": "A String", # The video's rating in Greece.
        "cccRating": "A String", # The video's Consejo de Calificación Cinematográfica (Chile) rating.
        "ecbmctRating": "A String", # Rating system in Turkey - Evaluation and Classification Board of the Ministry of Culture and Tourism
        "czfilmRating": "A String", # The video's rating in the Czech Republic.
        "kfcbRating": "A String", # The video's rating from the Kenya Film Classification Board.
        "fmocRating": "A String", # This property has been deprecated. Use the contentDetails.contentRating.cncRating instead.
        "eirinRating": "A String", # The video's Eirin (映倫) rating. Eirin is the Japanese rating system.
        "cceRating": "A String", # The video's rating from Portugal's Comissão de Classificação de Espect´culos.
        "nkclvRating": "A String", # The video's rating from the Nacionãlais Kino centrs (National Film Centre of Latvia).
        "mtrcbRating": "A String", # The video's rating from the Movie and Television Review and Classification Board (Philippines).
        "mibacRating": "A String", # The video's rating from the Ministero dei Beni e delle Attività Culturali e del Turismo (Italy).
        "anatelRating": "A String", # The video's Anatel (Asociación Nacional de Televisión) rating for Chilean television.
        "mcstRating": "A String", # The video's rating system for Vietnam - MCST
        "smaisRating": "A String", # The video's rating in Iceland.
        "ilfilmRating": "A String", # The video's rating in Israel.
        "russiaRating": "A String", # The video's National Film Registry of the Russian Federation (MKRF - Russia) rating.
        "mpaaRating": "A String", # The video's Motion Picture Association of America (MPAA) rating.
        "fpbRatingReasons": [ # Reasons that explain why the video received its FPB (South Africa) rating.
          "A String",
        ],
        "agcomRating": "A String", # The video's rating from Italy's Autorità per le Garanzie nelle Comunicazioni (AGCOM).
        "chvrsRating": "A String", # The video's Canadian Home Video Rating System (CHVRS) rating.
        "cnaRating": "A String", # The video's rating from Romania's CONSILIUL NATIONAL AL AUDIOVIZUALULUI (CNA).
        "icaaRating": "A String", # The video's Instituto de la Cinematografía y de las Artes Audiovisuales (ICAA - Spain) rating.
        "mccypRating": "A String", # The video's rating from the Danish Film Institute's (Det Danske Filminstitut) Media Council for Children and Young People.
        "nfrcRating": "A String", # The video's rating from the Bulgarian National Film Center.
        "skfilmRating": "A String", # The video's rating in Slovakia.
        "mocRating": "A String", # The video's Ministerio de Cultura (Colombia) rating.
        "rcnofRating": "A String", # The video's rating from the Hungarian Nemzeti Filmiroda, the Rating Committee of the National Office of Film.
        "mekuRating": "A String", # The video's rating from Finland's Kansallinen Audiovisuaalinen Instituutti (National Audiovisual Institute).
        "fcbmRating": "A String", # The video's rating from Malaysia's Film Censorship Board.
        "kijkwijzerRating": "A String", # voor de Classificatie van Audiovisuele Media (Netherlands).
      },
      "caption": "A String", # The value of captions indicates whether the video has captions or not.
      "regionRestriction": { # 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.
        "blocked": [ # 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.
          "A String",
        ],
        "allowed": [ # 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.
          "A String",
        ],
      },
      "duration": "A String", # 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.
      "licensedContent": True or False, # The value of is_license_content indicates whether the video is licensed content.
      "dimension": "A String", # The value of dimension indicates whether the video is available in 3D or in 2D.
    },
    "ageGating": { # Age restriction details related to a video. This data can only be retrieved by the video owner.
      "restricted": 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't be present.
      "alcoholContent": 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.
      "videoGameRating": "A String", # Video game rating, if any.
    },
    "fileDetails": { # 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's resolution, duration, audio and video codecs, stream bitrates, and more. This data can only be retrieved by the video owner.
      "bitrateBps": "A String", # The uploaded video file's combined (video and audio) bitrate in bits per second.
      "container": "A String", # The uploaded video file's container format.
      "fileType": "A String", # The uploaded file's type as detected by YouTube'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.
      "creationTime": "A String", # 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
      "durationMs": "A String", # The length of the uploaded video in milliseconds.
      "fileName": "A String", # The uploaded file's name. This field is present whether a video file or another type of file was uploaded.
      "fileSize": "A String", # The uploaded file's size in bytes. This field is present whether a video file or another type of file was uploaded.
      "videoStreams": [ # 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.
          "bitrateBps": "A String", # The video stream's bitrate, in bits per second.
          "vendor": "A String", # A value that uniquely identifies a video vendor. Typically, the value is a four-letter vendor code.
          "codec": "A String", # The video codec that the stream uses.
          "widthPixels": 42, # The encoded video content's width in pixels. You can calculate the video's encoding aspect ratio as width_pixels / height_pixels.
          "heightPixels": 42, # The encoded video content's height in pixels.
          "aspectRatio": 3.14, # The video content's display aspect ratio, which specifies the aspect ratio in which the video should be displayed.
          "rotation": "A String", # The amount that YouTube needs to rotate the original source content to properly display the video.
          "frameRateFps": 3.14, # The video stream's frame rate, in frames per second.
        },
      ],
      "audioStreams": [ # 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.
          "bitrateBps": "A String", # The audio stream's bitrate, in bits per second.
          "codec": "A String", # The audio codec that the stream uses.
          "vendor": "A String", # A value that uniquely identifies a video vendor. Typically, the value is a four-letter vendor code.
          "channelCount": 42, # The number of audio channels that the stream contains.
        },
      ],
    },
    "processingDetails": { # Describes processing status and progress and availability of some other Video resource parts. # The processingProgress object encapsulates information about YouTube'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.
      "fileDetailsAvailability": "A String", # This value indicates whether file details are available for the uploaded video. You can retrieve a video's file details by requesting the fileDetails part in your videos.list() request.
      "editorSuggestionsAvailability": "A String", # 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.
      "processingStatus": "A String", # The video's processing status. This value indicates whether YouTube was able to process the video or if the video is still being processed.
      "processingIssuesAvailability": "A String", # This value indicates whether the video processing engine has generated suggestions that might improve YouTube'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.
      "processingFailureReason": "A String", # The reason that YouTube failed to process the video. This property will only have a value if the processingStatus property's value is failed.
      "thumbnailsAvailability": "A String", # This value indicates whether thumbnail images have been generated for the video.
      "processingProgress": { # 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's processing status is processing.
        "timeLeftMs": "A String", # An estimate of the amount of time, in millseconds, that YouTube needs to finish processing the video.
        "partsProcessed": "A String", # 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.
        "partsTotal": "A String", # 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.
      },
      "tagSuggestionsAvailability": "A String", # This value indicates whether keyword (tag) suggestions are available for the video. Tags can be added to a video'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.
    },
    "player": { # 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.
      "embedHtml": "A String", # An <iframe> tag that embeds a player that will play the video.
      "embedHeight": "A String",
      "embedWidth": "A String", # The embed width
    },
    "etag": "A String", # Etag of this resource.
    "status": { # Basic details about a video category, such as its localized title. # The status object contains information about the video's uploading, processing, and privacy statuses.
      "license": "A String", # The video's license.
      "embeddable": True or False, # This value indicates if the video can be embedded on another website.
      "privacyStatus": "A String", # The video's privacy status.
      "publishAt": "A String", # 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. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
      "publicStatsViewable": 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.
      "uploadStatus": "A String", # The status of the uploaded video.
      "rejectionReason": "A String", # This value explains why YouTube rejected an uploaded video. This property is only present if the uploadStatus property indicates that the upload was rejected.
      "failureReason": "A String", # This value explains why a video failed to upload. This property is only present if the uploadStatus property indicates that the upload failed.
    },
    "projectDetails": { # Project specific details about the content of a YouTube Video. # The projectDetails object contains information about the project specific video metadata.
      "tags": [ # A list of project tags associated with the video during the upload.
        "A String",
      ],
    },
    "recordingDetails": { # Recording information associated with the video. # The recordingDetails object encapsulates information about the location, date and address where the video was recorded.
      "recordingDate": "A String", # The date and time when the video was recorded. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sssZ) format.
      "locationDescription": "A String", # The text description of the location where the video was recorded.
      "location": { # Geographical coordinates of a point, in WGS84. # The geolocation information associated with the video.
        "latitude": 3.14, # Latitude in degrees.
        "altitude": 3.14, # Altitude above the reference ellipsoid, in meters.
        "longitude": 3.14, # Longitude in degrees.
      },
    },
    "suggestions": { # 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.
      "processingErrors": [ # A list of errors that will prevent YouTube from successfully processing the uploaded video video. These errors indicate that, regardless of the video's current processing status, eventually, that status will almost certainly be failed.
        "A String",
      ],
      "tagSuggestions": [ # A list of keyword tags that could be added to the video's metadata to increase the likelihood that users will locate your video when searching or browsing on YouTube.
        { # A single tag suggestion with it's relevance information.
          "categoryRestricts": [ # 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.
            "A String",
          ],
          "tag": "A String", # The keyword tag suggested for the video.
        },
      ],
      "editorSuggestions": [ # A list of video editing operations that might improve the video quality or playback experience of the uploaded video.
        "A String",
      ],
      "processingWarnings": [ # 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.
        "A String",
      ],
      "processingHints": [ # A list of suggestions that may improve YouTube's ability to process the video.
        "A String",
      ],
    },
    "id": "A String", # The ID that YouTube uses to uniquely identify the video.
    "localizations": { # List with all localizations.
      "a_key": { # Localized versions of certain video properties (e.g. title). # The language tag, using string since map_key require simple types.
        "description": "A String", # Localized version of the video's description.
        "title": "A String", # Localized version of the video's title.
      },
    },
  }

  media_body: string, The filename of the media request body, or an instance of a MediaUpload object.
  onBehalfOfContentOwner: string, Note: This parameter is intended exclusively for YouTube content partners.

The onBehalfOfContentOwner parameter indicates that the request'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.
  stabilize: boolean, The stabilize parameter indicates whether YouTube should adjust the video to remove shaky camera motions.
  media_mime_type: string, The MIME type of the media request body, or an instance of a MediaUpload object.
  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.
  notifySubscribers: boolean, The notifySubscribers parameter indicates whether YouTube should send a notification about the new video to users who subscribe to the video's channel. A parameter value of True indicates that subscribers will be notified of newly uploaded videos. However, a channel owner who is uploading many videos might prefer to set the value to False to avoid sending a notification about each new video to the channel's subscribers.
  autoLevels: boolean, The autoLevels parameter indicates whether YouTube should automatically enhance the video's lighting and color.

Returns:
  An object of the form:

    { # A video resource represents a YouTube video.
      "liveStreamingDetails": { # 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.
        "actualEndTime": "A String", # The time that the broadcast actually ended. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format. This value will not be available until the broadcast is over.
        "activeLiveChatId": "A String", # 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.
        "scheduledStartTime": "A String", # The time that the broadcast is scheduled to begin. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
        "concurrentViewers": "A String", # 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.
        "actualStartTime": "A String", # The time that the broadcast actually started. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format. This value will not be available until the broadcast begins.
        "scheduledEndTime": "A String", # The time that the broadcast is scheduled to end. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format. If the value is empty or the property is not present, then the broadcast is scheduled to continue indefinitely.
      },
      "snippet": { # 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.
        "publishedAt": "A String", # The date and time that the video was uploaded. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
        "description": "A String", # The video's description.
        "tags": [ # A list of keyword tags associated with the video. Tags may contain spaces.
          "A String",
        ],
        "defaultAudioLanguage": "A String", # The default_audio_language property specifies the language spoken in the video's default audio track.
        "channelId": "A String", # The ID that YouTube uses to uniquely identify the channel that the video was uploaded to.
        "defaultLanguage": "A String", # The language of the videos's default snippet.
        "liveBroadcastContent": "A String", # Indicates if the video is an upcoming/active live broadcast. Or it's "none" if the video is not an upcoming/active live broadcast.
        "channelTitle": "A String", # Channel title for the channel that the video belongs to.
        "title": "A String", # The video's title.
        "categoryId": "A String", # The YouTube video category associated with the video.
        "localized": { # 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)
          "description": "A String", # Localized version of the video's description.
          "title": "A String", # Localized version of the video's title.
        },
        "thumbnails": { # 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.
          "default": { # A thumbnail is an image representing a YouTube resource. # The default image for this resource.
            "url": "A String", # The thumbnail image's URL.
            "width": 42, # (Optional) Width of the thumbnail image.
            "height": 42, # (Optional) Height of the thumbnail image.
          },
          "high": { # A thumbnail is an image representing a YouTube resource. # The high quality image for this resource.
            "url": "A String", # The thumbnail image's URL.
            "width": 42, # (Optional) Width of the thumbnail image.
            "height": 42, # (Optional) Height of the thumbnail image.
          },
          "medium": { # A thumbnail is an image representing a YouTube resource. # The medium quality image for this resource.
            "url": "A String", # The thumbnail image's URL.
            "width": 42, # (Optional) Width of the thumbnail image.
            "height": 42, # (Optional) Height of the thumbnail image.
          },
          "maxres": { # A thumbnail is an image representing a YouTube resource. # The maximum resolution quality image for this resource.
            "url": "A String", # The thumbnail image's URL.
            "width": 42, # (Optional) Width of the thumbnail image.
            "height": 42, # (Optional) Height of the thumbnail image.
          },
          "standard": { # A thumbnail is an image representing a YouTube resource. # The standard quality image for this resource.
            "url": "A String", # The thumbnail image's URL.
            "width": 42, # (Optional) Width of the thumbnail image.
            "height": 42, # (Optional) Height of the thumbnail image.
          },
        },
      },
      "kind": "youtube#video", # Identifies what kind of resource this is. Value: the fixed string "youtube#video".
      "statistics": { # Statistics about the video, such as the number of times the video was viewed or liked. # The statistics object contains statistics about the video.
        "commentCount": "A String", # The number of comments for the video.
        "viewCount": "A String", # The number of times the video has been viewed.
        "favoriteCount": "A String", # The number of users who currently have the video marked as a favorite video.
        "dislikeCount": "A String", # The number of users who have indicated that they disliked the video by giving it a negative rating.
        "likeCount": "A String", # The number of users who have indicated that they liked the video by giving it a positive rating.
      },
      "topicDetails": { # Freebase topic information related to the video. # The topicDetails object encapsulates information about Freebase topics associated with the video.
        "topicIds": [ # 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 Freebase Topic API.
          "A String",
        ],
        "topicCategories": [ # A list of Wikipedia URLs that provide a high-level description of the video's content.
          "A String",
        ],
        "relevantTopicIds": [ # 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.
          "A String",
        ],
      },
      "monetizationDetails": { # Details about monetization of a YouTube Video. # The monetizationDetails object encapsulates information about the monetization status of the video.
        "access": { # Rights management policy for YouTube resources. # The value of access indicates whether the video can be monetized or not.
          "exception": [ # A list of region codes that identify countries where the default policy do not apply.
            "A String",
          ],
          "allowed": True or False, # The value of allowed indicates whether the access to the policy is allowed or denied by default.
        },
      },
      "contentDetails": { # 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.
        "definition": "A String", # The value of definition indicates whether the video is available in high definition or only in standard definition.
        "projection": "A String", # Specifies the projection format of the video.
        "countryRestriction": { # Rights management policy for YouTube resources. # The countryRestriction object contains information about the countries where a video is (or is not) viewable.
          "exception": [ # A list of region codes that identify countries where the default policy do not apply.
            "A String",
          ],
          "allowed": True or False, # The value of allowed indicates whether the access to the policy is allowed or denied by default.
        },
        "hasCustomThumbnail": 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.
        "contentRating": { # Ratings schemes. The country-specific ratings are mostly for movies and shows. NEXT_ID: 69 # Specifies the ratings that the video received under various rating schemes.
          "cncRating": "A String", # Rating system in France - Commission de classification cinematographique
          "catvfrRating": "A String", # The video'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.
          "cbfcRating": "A String", # The video's Central Board of Film Certification (CBFC - India) rating.
          "bfvcRating": "A String", # The video's rating from Thailand's Board of Film and Video Censors.
          "mdaRating": "A String", # The video's rating from Singapore's Media Development Authority (MDA) and, specifically, it's Board of Film Censors (BFC).
          "lsfRating": "A String", # The video's rating from Indonesia's Lembaga Sensor Film.
          "medietilsynetRating": "A String", # The video's rating from Medietilsynet, the Norwegian Media Authority.
          "bmukkRating": "A String", # The video's rating from the Austrian Board of Media Classification (Bundesministerium für Unterricht, Kunst und Kultur).
          "chfilmRating": "A String", # The video's rating in Switzerland.
          "resorteviolenciaRating": "A String", # The video's rating in Venezuela.
          "rteRating": "A String", # The video's rating from Ireland's Raidió Teilifís Éireann.
          "csaRating": "A String", # The video's rating from France's Conseil supérieur de l?audiovisuel, which rates broadcast content.
          "moctwRating": "A String", # The video's rating from Taiwan's Ministry of Culture (文化部).
          "catvRating": "A String", # Rating system for Canadian TV - Canadian TV Classification System The video'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.
          "pefilmRating": "A String", # The video's rating in Peru.
          "djctqRatingReasons": [ # Reasons that explain why the video received its DJCQT (Brazil) rating.
            "A String",
          ],
          "incaaRating": "A String", # The video's INCAA (Instituto Nacional de Cine y Artes Audiovisuales - Argentina) rating.
          "oflcRating": "A String", # The video's Office of Film and Literature Classification (OFLC - New Zealand) rating.
          "fpbRating": "A String", # The video's rating from South Africa's Film and Publication Board.
          "mccaaRating": "A String", # The video's rating from Malta's Film Age-Classification Board.
          "tvpgRating": "A String", # The video's TV Parental Guidelines (TVPG) rating.
          "rtcRating": "A String", # The video's General Directorate of Radio, Television and Cinematography (Mexico) rating.
          "cscfRating": "A String", # The video's rating from Luxembourg's Commission de surveillance de la classification des films (CSCF).
          "fskRating": "A String", # The video's Freiwillige Selbstkontrolle der Filmwirtschaft (FSK - Germany) rating.
          "bbfcRating": "A String", # The video's British Board of Film Classification (BBFC) rating.
          "kmrbRating": "A String", # The video's Korea Media Rating Board (영상물등급위원회) rating. The KMRB rates videos in South Korea.
          "smsaRating": "A String", # The video's rating from Statens medieråd (Sweden's National Media Council).
          "egfilmRating": "A String", # The video's rating in Egypt.
          "cicfRating": "A String", # The video's rating from the Commission de Contrôle des Films (Belgium).
          "nbcplRating": "A String", # The video's rating in Poland.
          "nbcRating": "A String", # The video's rating from the Maldives National Bureau of Classification.
          "ytRating": "A String", # A rating that YouTube uses to identify age-restricted content.
          "nfvcbRating": "A String", # The video's rating from Nigeria's National Film and Video Censors Board.
          "djctqRating": "A String", # The video's Departamento de Justiça, Classificação, Qualificação e Títulos (DJCQT - Brazil) rating.
          "ifcoRating": "A String", # The video's Irish Film Classification Office (IFCO - Ireland) rating. See the IFCO website for more information.
          "fcoRating": "A String", # The video's rating from Hong Kong's Office for Film, Newspaper and Article Administration.
          "eefilmRating": "A String", # The video's rating in Estonia.
          "acbRating": "A String", # The video's Australian Classification Board (ACB) or Australian Communications and Media Authority (ACMA) rating. ACMA ratings are used to classify children's television programming.
          "grfilmRating": "A String", # The video's rating in Greece.
          "cccRating": "A String", # The video's Consejo de Calificación Cinematográfica (Chile) rating.
          "ecbmctRating": "A String", # Rating system in Turkey - Evaluation and Classification Board of the Ministry of Culture and Tourism
          "czfilmRating": "A String", # The video's rating in the Czech Republic.
          "kfcbRating": "A String", # The video's rating from the Kenya Film Classification Board.
          "fmocRating": "A String", # This property has been deprecated. Use the contentDetails.contentRating.cncRating instead.
          "eirinRating": "A String", # The video's Eirin (映倫) rating. Eirin is the Japanese rating system.
          "cceRating": "A String", # The video's rating from Portugal's Comissão de Classificação de Espect´culos.
          "nkclvRating": "A String", # The video's rating from the Nacionãlais Kino centrs (National Film Centre of Latvia).
          "mtrcbRating": "A String", # The video's rating from the Movie and Television Review and Classification Board (Philippines).
          "mibacRating": "A String", # The video's rating from the Ministero dei Beni e delle Attività Culturali e del Turismo (Italy).
          "anatelRating": "A String", # The video's Anatel (Asociación Nacional de Televisión) rating for Chilean television.
          "mcstRating": "A String", # The video's rating system for Vietnam - MCST
          "smaisRating": "A String", # The video's rating in Iceland.
          "ilfilmRating": "A String", # The video's rating in Israel.
          "russiaRating": "A String", # The video's National Film Registry of the Russian Federation (MKRF - Russia) rating.
          "mpaaRating": "A String", # The video's Motion Picture Association of America (MPAA) rating.
          "fpbRatingReasons": [ # Reasons that explain why the video received its FPB (South Africa) rating.
            "A String",
          ],
          "agcomRating": "A String", # The video's rating from Italy's Autorità per le Garanzie nelle Comunicazioni (AGCOM).
          "chvrsRating": "A String", # The video's Canadian Home Video Rating System (CHVRS) rating.
          "cnaRating": "A String", # The video's rating from Romania's CONSILIUL NATIONAL AL AUDIOVIZUALULUI (CNA).
          "icaaRating": "A String", # The video's Instituto de la Cinematografía y de las Artes Audiovisuales (ICAA - Spain) rating.
          "mccypRating": "A String", # The video's rating from the Danish Film Institute's (Det Danske Filminstitut) Media Council for Children and Young People.
          "nfrcRating": "A String", # The video's rating from the Bulgarian National Film Center.
          "skfilmRating": "A String", # The video's rating in Slovakia.
          "mocRating": "A String", # The video's Ministerio de Cultura (Colombia) rating.
          "rcnofRating": "A String", # The video's rating from the Hungarian Nemzeti Filmiroda, the Rating Committee of the National Office of Film.
          "mekuRating": "A String", # The video's rating from Finland's Kansallinen Audiovisuaalinen Instituutti (National Audiovisual Institute).
          "fcbmRating": "A String", # The video's rating from Malaysia's Film Censorship Board.
          "kijkwijzerRating": "A String", # voor de Classificatie van Audiovisuele Media (Netherlands).
        },
        "caption": "A String", # The value of captions indicates whether the video has captions or not.
        "regionRestriction": { # 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.
          "blocked": [ # 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.
            "A String",
          ],
          "allowed": [ # 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.
            "A String",
          ],
        },
        "duration": "A String", # 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.
        "licensedContent": True or False, # The value of is_license_content indicates whether the video is licensed content.
        "dimension": "A String", # The value of dimension indicates whether the video is available in 3D or in 2D.
      },
      "ageGating": { # Age restriction details related to a video. This data can only be retrieved by the video owner.
        "restricted": 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't be present.
        "alcoholContent": 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.
        "videoGameRating": "A String", # Video game rating, if any.
      },
      "fileDetails": { # 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's resolution, duration, audio and video codecs, stream bitrates, and more. This data can only be retrieved by the video owner.
        "bitrateBps": "A String", # The uploaded video file's combined (video and audio) bitrate in bits per second.
        "container": "A String", # The uploaded video file's container format.
        "fileType": "A String", # The uploaded file's type as detected by YouTube'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.
        "creationTime": "A String", # 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
        "durationMs": "A String", # The length of the uploaded video in milliseconds.
        "fileName": "A String", # The uploaded file's name. This field is present whether a video file or another type of file was uploaded.
        "fileSize": "A String", # The uploaded file's size in bytes. This field is present whether a video file or another type of file was uploaded.
        "videoStreams": [ # 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.
            "bitrateBps": "A String", # The video stream's bitrate, in bits per second.
            "vendor": "A String", # A value that uniquely identifies a video vendor. Typically, the value is a four-letter vendor code.
            "codec": "A String", # The video codec that the stream uses.
            "widthPixels": 42, # The encoded video content's width in pixels. You can calculate the video's encoding aspect ratio as width_pixels / height_pixels.
            "heightPixels": 42, # The encoded video content's height in pixels.
            "aspectRatio": 3.14, # The video content's display aspect ratio, which specifies the aspect ratio in which the video should be displayed.
            "rotation": "A String", # The amount that YouTube needs to rotate the original source content to properly display the video.
            "frameRateFps": 3.14, # The video stream's frame rate, in frames per second.
          },
        ],
        "audioStreams": [ # 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.
            "bitrateBps": "A String", # The audio stream's bitrate, in bits per second.
            "codec": "A String", # The audio codec that the stream uses.
            "vendor": "A String", # A value that uniquely identifies a video vendor. Typically, the value is a four-letter vendor code.
            "channelCount": 42, # The number of audio channels that the stream contains.
          },
        ],
      },
      "processingDetails": { # Describes processing status and progress and availability of some other Video resource parts. # The processingProgress object encapsulates information about YouTube'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.
        "fileDetailsAvailability": "A String", # This value indicates whether file details are available for the uploaded video. You can retrieve a video's file details by requesting the fileDetails part in your videos.list() request.
        "editorSuggestionsAvailability": "A String", # 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.
        "processingStatus": "A String", # The video's processing status. This value indicates whether YouTube was able to process the video or if the video is still being processed.
        "processingIssuesAvailability": "A String", # This value indicates whether the video processing engine has generated suggestions that might improve YouTube'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.
        "processingFailureReason": "A String", # The reason that YouTube failed to process the video. This property will only have a value if the processingStatus property's value is failed.
        "thumbnailsAvailability": "A String", # This value indicates whether thumbnail images have been generated for the video.
        "processingProgress": { # 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's processing status is processing.
          "timeLeftMs": "A String", # An estimate of the amount of time, in millseconds, that YouTube needs to finish processing the video.
          "partsProcessed": "A String", # 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.
          "partsTotal": "A String", # 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.
        },
        "tagSuggestionsAvailability": "A String", # This value indicates whether keyword (tag) suggestions are available for the video. Tags can be added to a video'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.
      },
      "player": { # 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.
        "embedHtml": "A String", # An <iframe> tag that embeds a player that will play the video.
        "embedHeight": "A String",
        "embedWidth": "A String", # The embed width
      },
      "etag": "A String", # Etag of this resource.
      "status": { # Basic details about a video category, such as its localized title. # The status object contains information about the video's uploading, processing, and privacy statuses.
        "license": "A String", # The video's license.
        "embeddable": True or False, # This value indicates if the video can be embedded on another website.
        "privacyStatus": "A String", # The video's privacy status.
        "publishAt": "A String", # 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. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
        "publicStatsViewable": 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.
        "uploadStatus": "A String", # The status of the uploaded video.
        "rejectionReason": "A String", # This value explains why YouTube rejected an uploaded video. This property is only present if the uploadStatus property indicates that the upload was rejected.
        "failureReason": "A String", # This value explains why a video failed to upload. This property is only present if the uploadStatus property indicates that the upload failed.
      },
      "projectDetails": { # Project specific details about the content of a YouTube Video. # The projectDetails object contains information about the project specific video metadata.
        "tags": [ # A list of project tags associated with the video during the upload.
          "A String",
        ],
      },
      "recordingDetails": { # Recording information associated with the video. # The recordingDetails object encapsulates information about the location, date and address where the video was recorded.
        "recordingDate": "A String", # The date and time when the video was recorded. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sssZ) format.
        "locationDescription": "A String", # The text description of the location where the video was recorded.
        "location": { # Geographical coordinates of a point, in WGS84. # The geolocation information associated with the video.
          "latitude": 3.14, # Latitude in degrees.
          "altitude": 3.14, # Altitude above the reference ellipsoid, in meters.
          "longitude": 3.14, # Longitude in degrees.
        },
      },
      "suggestions": { # 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.
        "processingErrors": [ # A list of errors that will prevent YouTube from successfully processing the uploaded video video. These errors indicate that, regardless of the video's current processing status, eventually, that status will almost certainly be failed.
          "A String",
        ],
        "tagSuggestions": [ # A list of keyword tags that could be added to the video's metadata to increase the likelihood that users will locate your video when searching or browsing on YouTube.
          { # A single tag suggestion with it's relevance information.
            "categoryRestricts": [ # 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.
              "A String",
            ],
            "tag": "A String", # The keyword tag suggested for the video.
          },
        ],
        "editorSuggestions": [ # A list of video editing operations that might improve the video quality or playback experience of the uploaded video.
          "A String",
        ],
        "processingWarnings": [ # 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.
          "A String",
        ],
        "processingHints": [ # A list of suggestions that may improve YouTube's ability to process the video.
          "A String",
        ],
      },
      "id": "A String", # The ID that YouTube uses to uniquely identify the video.
      "localizations": { # List with all localizations.
        "a_key": { # Localized versions of certain video properties (e.g. title). # The language tag, using string since map_key require simple types.
          "description": "A String", # Localized version of the video's description.
          "title": "A String", # Localized version of the video's title.
        },
      },
    }</pre>
</div>

<div class="method">
    <code class="details" id="list">list(part, hl=None, maxWidth=None, locale=None, id=None, onBehalfOfContentOwner=None, regionCode=None, pageToken=None, maxResults=None, chart=None, myRating=None, maxHeight=None, videoCategoryId=None)</code>
  <pre>Returns a list of videos that match the API request parameters.

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)
  hl: string, The hl parameter instructs the API to retrieve localized resource metadata for a specific application language that the YouTube website supports. The parameter value must be a language code included in the list returned by the i18nLanguages.list method.

If localized resource details are available in that language, the resource's snippet.localized object will contain the localized values. However, if localized details are not available, the snippet.localized object will contain resource details in the resource's default language.
  maxWidth: integer, The maxWidth parameter specifies a maximum width of the embedded player. If maxHeight is provided, maxWidth may not be reached in order to not violate the height request.
  locale: string, DEPRECATED
  id: string, The id parameter specifies a comma-separated list of the YouTube video ID(s) for the resource(s) that are being retrieved. In a video resource, the id property specifies the video's ID.
  onBehalfOfContentOwner: string, Note: This parameter is intended exclusively for YouTube content partners.

The onBehalfOfContentOwner parameter indicates that the request'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.
  regionCode: string, The regionCode parameter instructs the API to select a video chart available in the specified region. This parameter can only be used in conjunction with the chart parameter. The parameter value is an ISO 3166-1 alpha-2 country code.
  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.
  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.
  chart: string, The chart parameter identifies the chart that you want to retrieve.
    Allowed values
      mostPopular - Return the most popular videos for the specified content region and video category.
  myRating: string, Set this parameter's value to like or dislike to instruct the API to only return videos liked or disliked by the authenticated user.
    Allowed values
      dislike - Returns only videos disliked by the authenticated user.
      like - Returns only video liked by the authenticated user.
  maxHeight: integer, The maxHeight parameter specifies a maximum height of the embedded player. If maxWidth is provided, maxHeight may not be reached in order to not violate the width request.
  videoCategoryId: string, The videoCategoryId parameter identifies the video category for which the chart should be retrieved. This parameter can only be used in conjunction with the chart parameter. By default, charts are not restricted to a particular category.

Returns:
  An object of the form:

    {
    "eventId": "A String", # Serialized EventId of the request which produced this response.
    "nextPageToken": "A String", # The token that can be used as the value of the pageToken parameter to retrieve the next page in the result set.
    "kind": "youtube#videoListResponse", # Identifies what kind of resource this is. Value: the fixed string "youtube#videoListResponse".
    "visitorId": "A String", # The visitorId identifies the visitor.
    "items": [ # A list of videos that match the request criteria.
      { # A video resource represents a YouTube video.
          "liveStreamingDetails": { # 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.
            "actualEndTime": "A String", # The time that the broadcast actually ended. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format. This value will not be available until the broadcast is over.
            "activeLiveChatId": "A String", # 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.
            "scheduledStartTime": "A String", # The time that the broadcast is scheduled to begin. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
            "concurrentViewers": "A String", # 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.
            "actualStartTime": "A String", # The time that the broadcast actually started. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format. This value will not be available until the broadcast begins.
            "scheduledEndTime": "A String", # The time that the broadcast is scheduled to end. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format. If the value is empty or the property is not present, then the broadcast is scheduled to continue indefinitely.
          },
          "snippet": { # 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.
            "publishedAt": "A String", # The date and time that the video was uploaded. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
            "description": "A String", # The video's description.
            "tags": [ # A list of keyword tags associated with the video. Tags may contain spaces.
              "A String",
            ],
            "defaultAudioLanguage": "A String", # The default_audio_language property specifies the language spoken in the video's default audio track.
            "channelId": "A String", # The ID that YouTube uses to uniquely identify the channel that the video was uploaded to.
            "defaultLanguage": "A String", # The language of the videos's default snippet.
            "liveBroadcastContent": "A String", # Indicates if the video is an upcoming/active live broadcast. Or it's "none" if the video is not an upcoming/active live broadcast.
            "channelTitle": "A String", # Channel title for the channel that the video belongs to.
            "title": "A String", # The video's title.
            "categoryId": "A String", # The YouTube video category associated with the video.
            "localized": { # 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)
              "description": "A String", # Localized version of the video's description.
              "title": "A String", # Localized version of the video's title.
            },
            "thumbnails": { # 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.
              "default": { # A thumbnail is an image representing a YouTube resource. # The default image for this resource.
                "url": "A String", # The thumbnail image's URL.
                "width": 42, # (Optional) Width of the thumbnail image.
                "height": 42, # (Optional) Height of the thumbnail image.
              },
              "high": { # A thumbnail is an image representing a YouTube resource. # The high quality image for this resource.
                "url": "A String", # The thumbnail image's URL.
                "width": 42, # (Optional) Width of the thumbnail image.
                "height": 42, # (Optional) Height of the thumbnail image.
              },
              "medium": { # A thumbnail is an image representing a YouTube resource. # The medium quality image for this resource.
                "url": "A String", # The thumbnail image's URL.
                "width": 42, # (Optional) Width of the thumbnail image.
                "height": 42, # (Optional) Height of the thumbnail image.
              },
              "maxres": { # A thumbnail is an image representing a YouTube resource. # The maximum resolution quality image for this resource.
                "url": "A String", # The thumbnail image's URL.
                "width": 42, # (Optional) Width of the thumbnail image.
                "height": 42, # (Optional) Height of the thumbnail image.
              },
              "standard": { # A thumbnail is an image representing a YouTube resource. # The standard quality image for this resource.
                "url": "A String", # The thumbnail image's URL.
                "width": 42, # (Optional) Width of the thumbnail image.
                "height": 42, # (Optional) Height of the thumbnail image.
              },
            },
          },
          "kind": "youtube#video", # Identifies what kind of resource this is. Value: the fixed string "youtube#video".
          "statistics": { # Statistics about the video, such as the number of times the video was viewed or liked. # The statistics object contains statistics about the video.
            "commentCount": "A String", # The number of comments for the video.
            "viewCount": "A String", # The number of times the video has been viewed.
            "favoriteCount": "A String", # The number of users who currently have the video marked as a favorite video.
            "dislikeCount": "A String", # The number of users who have indicated that they disliked the video by giving it a negative rating.
            "likeCount": "A String", # The number of users who have indicated that they liked the video by giving it a positive rating.
          },
          "topicDetails": { # Freebase topic information related to the video. # The topicDetails object encapsulates information about Freebase topics associated with the video.
            "topicIds": [ # 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 Freebase Topic API.
              "A String",
            ],
            "topicCategories": [ # A list of Wikipedia URLs that provide a high-level description of the video's content.
              "A String",
            ],
            "relevantTopicIds": [ # 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.
              "A String",
            ],
          },
          "monetizationDetails": { # Details about monetization of a YouTube Video. # The monetizationDetails object encapsulates information about the monetization status of the video.
            "access": { # Rights management policy for YouTube resources. # The value of access indicates whether the video can be monetized or not.
              "exception": [ # A list of region codes that identify countries where the default policy do not apply.
                "A String",
              ],
              "allowed": True or False, # The value of allowed indicates whether the access to the policy is allowed or denied by default.
            },
          },
          "contentDetails": { # 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.
            "definition": "A String", # The value of definition indicates whether the video is available in high definition or only in standard definition.
            "projection": "A String", # Specifies the projection format of the video.
            "countryRestriction": { # Rights management policy for YouTube resources. # The countryRestriction object contains information about the countries where a video is (or is not) viewable.
              "exception": [ # A list of region codes that identify countries where the default policy do not apply.
                "A String",
              ],
              "allowed": True or False, # The value of allowed indicates whether the access to the policy is allowed or denied by default.
            },
            "hasCustomThumbnail": 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.
            "contentRating": { # Ratings schemes. The country-specific ratings are mostly for movies and shows. NEXT_ID: 69 # Specifies the ratings that the video received under various rating schemes.
              "cncRating": "A String", # Rating system in France - Commission de classification cinematographique
              "catvfrRating": "A String", # The video'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.
              "cbfcRating": "A String", # The video's Central Board of Film Certification (CBFC - India) rating.
              "bfvcRating": "A String", # The video's rating from Thailand's Board of Film and Video Censors.
              "mdaRating": "A String", # The video's rating from Singapore's Media Development Authority (MDA) and, specifically, it's Board of Film Censors (BFC).
              "lsfRating": "A String", # The video's rating from Indonesia's Lembaga Sensor Film.
              "medietilsynetRating": "A String", # The video's rating from Medietilsynet, the Norwegian Media Authority.
              "bmukkRating": "A String", # The video's rating from the Austrian Board of Media Classification (Bundesministerium für Unterricht, Kunst und Kultur).
              "chfilmRating": "A String", # The video's rating in Switzerland.
              "resorteviolenciaRating": "A String", # The video's rating in Venezuela.
              "rteRating": "A String", # The video's rating from Ireland's Raidió Teilifís Éireann.
              "csaRating": "A String", # The video's rating from France's Conseil supérieur de l?audiovisuel, which rates broadcast content.
              "moctwRating": "A String", # The video's rating from Taiwan's Ministry of Culture (文化部).
              "catvRating": "A String", # Rating system for Canadian TV - Canadian TV Classification System The video'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.
              "pefilmRating": "A String", # The video's rating in Peru.
              "djctqRatingReasons": [ # Reasons that explain why the video received its DJCQT (Brazil) rating.
                "A String",
              ],
              "incaaRating": "A String", # The video's INCAA (Instituto Nacional de Cine y Artes Audiovisuales - Argentina) rating.
              "oflcRating": "A String", # The video's Office of Film and Literature Classification (OFLC - New Zealand) rating.
              "fpbRating": "A String", # The video's rating from South Africa's Film and Publication Board.
              "mccaaRating": "A String", # The video's rating from Malta's Film Age-Classification Board.
              "tvpgRating": "A String", # The video's TV Parental Guidelines (TVPG) rating.
              "rtcRating": "A String", # The video's General Directorate of Radio, Television and Cinematography (Mexico) rating.
              "cscfRating": "A String", # The video's rating from Luxembourg's Commission de surveillance de la classification des films (CSCF).
              "fskRating": "A String", # The video's Freiwillige Selbstkontrolle der Filmwirtschaft (FSK - Germany) rating.
              "bbfcRating": "A String", # The video's British Board of Film Classification (BBFC) rating.
              "kmrbRating": "A String", # The video's Korea Media Rating Board (영상물등급위원회) rating. The KMRB rates videos in South Korea.
              "smsaRating": "A String", # The video's rating from Statens medieråd (Sweden's National Media Council).
              "egfilmRating": "A String", # The video's rating in Egypt.
              "cicfRating": "A String", # The video's rating from the Commission de Contrôle des Films (Belgium).
              "nbcplRating": "A String", # The video's rating in Poland.
              "nbcRating": "A String", # The video's rating from the Maldives National Bureau of Classification.
              "ytRating": "A String", # A rating that YouTube uses to identify age-restricted content.
              "nfvcbRating": "A String", # The video's rating from Nigeria's National Film and Video Censors Board.
              "djctqRating": "A String", # The video's Departamento de Justiça, Classificação, Qualificação e Títulos (DJCQT - Brazil) rating.
              "ifcoRating": "A String", # The video's Irish Film Classification Office (IFCO - Ireland) rating. See the IFCO website for more information.
              "fcoRating": "A String", # The video's rating from Hong Kong's Office for Film, Newspaper and Article Administration.
              "eefilmRating": "A String", # The video's rating in Estonia.
              "acbRating": "A String", # The video's Australian Classification Board (ACB) or Australian Communications and Media Authority (ACMA) rating. ACMA ratings are used to classify children's television programming.
              "grfilmRating": "A String", # The video's rating in Greece.
              "cccRating": "A String", # The video's Consejo de Calificación Cinematográfica (Chile) rating.
              "ecbmctRating": "A String", # Rating system in Turkey - Evaluation and Classification Board of the Ministry of Culture and Tourism
              "czfilmRating": "A String", # The video's rating in the Czech Republic.
              "kfcbRating": "A String", # The video's rating from the Kenya Film Classification Board.
              "fmocRating": "A String", # This property has been deprecated. Use the contentDetails.contentRating.cncRating instead.
              "eirinRating": "A String", # The video's Eirin (映倫) rating. Eirin is the Japanese rating system.
              "cceRating": "A String", # The video's rating from Portugal's Comissão de Classificação de Espect´culos.
              "nkclvRating": "A String", # The video's rating from the Nacionãlais Kino centrs (National Film Centre of Latvia).
              "mtrcbRating": "A String", # The video's rating from the Movie and Television Review and Classification Board (Philippines).
              "mibacRating": "A String", # The video's rating from the Ministero dei Beni e delle Attività Culturali e del Turismo (Italy).
              "anatelRating": "A String", # The video's Anatel (Asociación Nacional de Televisión) rating for Chilean television.
              "mcstRating": "A String", # The video's rating system for Vietnam - MCST
              "smaisRating": "A String", # The video's rating in Iceland.
              "ilfilmRating": "A String", # The video's rating in Israel.
              "russiaRating": "A String", # The video's National Film Registry of the Russian Federation (MKRF - Russia) rating.
              "mpaaRating": "A String", # The video's Motion Picture Association of America (MPAA) rating.
              "fpbRatingReasons": [ # Reasons that explain why the video received its FPB (South Africa) rating.
                "A String",
              ],
              "agcomRating": "A String", # The video's rating from Italy's Autorità per le Garanzie nelle Comunicazioni (AGCOM).
              "chvrsRating": "A String", # The video's Canadian Home Video Rating System (CHVRS) rating.
              "cnaRating": "A String", # The video's rating from Romania's CONSILIUL NATIONAL AL AUDIOVIZUALULUI (CNA).
              "icaaRating": "A String", # The video's Instituto de la Cinematografía y de las Artes Audiovisuales (ICAA - Spain) rating.
              "mccypRating": "A String", # The video's rating from the Danish Film Institute's (Det Danske Filminstitut) Media Council for Children and Young People.
              "nfrcRating": "A String", # The video's rating from the Bulgarian National Film Center.
              "skfilmRating": "A String", # The video's rating in Slovakia.
              "mocRating": "A String", # The video's Ministerio de Cultura (Colombia) rating.
              "rcnofRating": "A String", # The video's rating from the Hungarian Nemzeti Filmiroda, the Rating Committee of the National Office of Film.
              "mekuRating": "A String", # The video's rating from Finland's Kansallinen Audiovisuaalinen Instituutti (National Audiovisual Institute).
              "fcbmRating": "A String", # The video's rating from Malaysia's Film Censorship Board.
              "kijkwijzerRating": "A String", # voor de Classificatie van Audiovisuele Media (Netherlands).
            },
            "caption": "A String", # The value of captions indicates whether the video has captions or not.
            "regionRestriction": { # 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.
              "blocked": [ # 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.
                "A String",
              ],
              "allowed": [ # 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.
                "A String",
              ],
            },
            "duration": "A String", # 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.
            "licensedContent": True or False, # The value of is_license_content indicates whether the video is licensed content.
            "dimension": "A String", # The value of dimension indicates whether the video is available in 3D or in 2D.
          },
          "ageGating": { # Age restriction details related to a video. This data can only be retrieved by the video owner.
            "restricted": 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't be present.
            "alcoholContent": 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.
            "videoGameRating": "A String", # Video game rating, if any.
          },
          "fileDetails": { # 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's resolution, duration, audio and video codecs, stream bitrates, and more. This data can only be retrieved by the video owner.
            "bitrateBps": "A String", # The uploaded video file's combined (video and audio) bitrate in bits per second.
            "container": "A String", # The uploaded video file's container format.
            "fileType": "A String", # The uploaded file's type as detected by YouTube'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.
            "creationTime": "A String", # 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
            "durationMs": "A String", # The length of the uploaded video in milliseconds.
            "fileName": "A String", # The uploaded file's name. This field is present whether a video file or another type of file was uploaded.
            "fileSize": "A String", # The uploaded file's size in bytes. This field is present whether a video file or another type of file was uploaded.
            "videoStreams": [ # 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.
                "bitrateBps": "A String", # The video stream's bitrate, in bits per second.
                "vendor": "A String", # A value that uniquely identifies a video vendor. Typically, the value is a four-letter vendor code.
                "codec": "A String", # The video codec that the stream uses.
                "widthPixels": 42, # The encoded video content's width in pixels. You can calculate the video's encoding aspect ratio as width_pixels / height_pixels.
                "heightPixels": 42, # The encoded video content's height in pixels.
                "aspectRatio": 3.14, # The video content's display aspect ratio, which specifies the aspect ratio in which the video should be displayed.
                "rotation": "A String", # The amount that YouTube needs to rotate the original source content to properly display the video.
                "frameRateFps": 3.14, # The video stream's frame rate, in frames per second.
              },
            ],
            "audioStreams": [ # 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.
                "bitrateBps": "A String", # The audio stream's bitrate, in bits per second.
                "codec": "A String", # The audio codec that the stream uses.
                "vendor": "A String", # A value that uniquely identifies a video vendor. Typically, the value is a four-letter vendor code.
                "channelCount": 42, # The number of audio channels that the stream contains.
              },
            ],
          },
          "processingDetails": { # Describes processing status and progress and availability of some other Video resource parts. # The processingProgress object encapsulates information about YouTube'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.
            "fileDetailsAvailability": "A String", # This value indicates whether file details are available for the uploaded video. You can retrieve a video's file details by requesting the fileDetails part in your videos.list() request.
            "editorSuggestionsAvailability": "A String", # 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.
            "processingStatus": "A String", # The video's processing status. This value indicates whether YouTube was able to process the video or if the video is still being processed.
            "processingIssuesAvailability": "A String", # This value indicates whether the video processing engine has generated suggestions that might improve YouTube'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.
            "processingFailureReason": "A String", # The reason that YouTube failed to process the video. This property will only have a value if the processingStatus property's value is failed.
            "thumbnailsAvailability": "A String", # This value indicates whether thumbnail images have been generated for the video.
            "processingProgress": { # 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's processing status is processing.
              "timeLeftMs": "A String", # An estimate of the amount of time, in millseconds, that YouTube needs to finish processing the video.
              "partsProcessed": "A String", # 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.
              "partsTotal": "A String", # 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.
            },
            "tagSuggestionsAvailability": "A String", # This value indicates whether keyword (tag) suggestions are available for the video. Tags can be added to a video'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.
          },
          "player": { # 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.
            "embedHtml": "A String", # An <iframe> tag that embeds a player that will play the video.
            "embedHeight": "A String",
            "embedWidth": "A String", # The embed width
          },
          "etag": "A String", # Etag of this resource.
          "status": { # Basic details about a video category, such as its localized title. # The status object contains information about the video's uploading, processing, and privacy statuses.
            "license": "A String", # The video's license.
            "embeddable": True or False, # This value indicates if the video can be embedded on another website.
            "privacyStatus": "A String", # The video's privacy status.
            "publishAt": "A String", # 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. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
            "publicStatsViewable": 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.
            "uploadStatus": "A String", # The status of the uploaded video.
            "rejectionReason": "A String", # This value explains why YouTube rejected an uploaded video. This property is only present if the uploadStatus property indicates that the upload was rejected.
            "failureReason": "A String", # This value explains why a video failed to upload. This property is only present if the uploadStatus property indicates that the upload failed.
          },
          "projectDetails": { # Project specific details about the content of a YouTube Video. # The projectDetails object contains information about the project specific video metadata.
            "tags": [ # A list of project tags associated with the video during the upload.
              "A String",
            ],
          },
          "recordingDetails": { # Recording information associated with the video. # The recordingDetails object encapsulates information about the location, date and address where the video was recorded.
            "recordingDate": "A String", # The date and time when the video was recorded. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sssZ) format.
            "locationDescription": "A String", # The text description of the location where the video was recorded.
            "location": { # Geographical coordinates of a point, in WGS84. # The geolocation information associated with the video.
              "latitude": 3.14, # Latitude in degrees.
              "altitude": 3.14, # Altitude above the reference ellipsoid, in meters.
              "longitude": 3.14, # Longitude in degrees.
            },
          },
          "suggestions": { # 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.
            "processingErrors": [ # A list of errors that will prevent YouTube from successfully processing the uploaded video video. These errors indicate that, regardless of the video's current processing status, eventually, that status will almost certainly be failed.
              "A String",
            ],
            "tagSuggestions": [ # A list of keyword tags that could be added to the video's metadata to increase the likelihood that users will locate your video when searching or browsing on YouTube.
              { # A single tag suggestion with it's relevance information.
                "categoryRestricts": [ # 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.
                  "A String",
                ],
                "tag": "A String", # The keyword tag suggested for the video.
              },
            ],
            "editorSuggestions": [ # A list of video editing operations that might improve the video quality or playback experience of the uploaded video.
              "A String",
            ],
            "processingWarnings": [ # 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.
              "A String",
            ],
            "processingHints": [ # A list of suggestions that may improve YouTube's ability to process the video.
              "A String",
            ],
          },
          "id": "A String", # The ID that YouTube uses to uniquely identify the video.
          "localizations": { # List with all localizations.
            "a_key": { # Localized versions of certain video properties (e.g. title). # The language tag, using string since map_key require simple types.
              "description": "A String", # Localized version of the video's description.
              "title": "A String", # Localized version of the video's title.
            },
          },
        },
    ],
    "tokenPagination": { # Stub token pagination template to suppress results.
    },
    "etag": "A String", # Etag of this resource.
    "prevPageToken": "A String", # The token that can be used as the value of the pageToken parameter to retrieve the previous page in the result set.
    "pageInfo": { # Paging details for lists of resources, including total number of items available and number of resources returned in a single page.
      "totalResults": 42, # The total number of results in the result set.
      "resultsPerPage": 42, # The number of results included in the API response.
    },
  }</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 'execute()' 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)</code>
  <pre>Add a like or dislike rating to a video or remove a rating from a video.

Args:
  id: string, The id parameter specifies the YouTube video ID of the video that is being rated or having its rating removed. (required)
  rating: string, Specifies the rating to record. (required)
    Allowed values
      dislike - Records that the authenticated user disliked the video.
      like - Records that the authenticated user liked the video.
      none - Removes any rating that the authenticated user had previously set for the video.
</pre>
</div>

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

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

{
    "secondaryReasonId": "A String", # 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.
    "reasonId": "A String", # The high-level, or primary, reason that the content is abusive. The value is an abuse report reason ID.
    "language": "A String", # The language that the content was viewed in.
    "comments": "A String", # Additional comments regarding the abuse report.
    "videoId": "A String", # 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'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.
</pre>
</div>

<div class="method">
    <code class="details" id="update">update(part, body, onBehalfOfContentOwner=None)</code>
  <pre>Updates a video's metadata.

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's privacy setting is contained in the status part. As such, if your request is updating a private video, and the request's part parameter value includes the status part, the video'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)
  body: object, The request body. (required)
    The object takes the form of:

{ # A video resource represents a YouTube video.
    "liveStreamingDetails": { # 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.
      "actualEndTime": "A String", # The time that the broadcast actually ended. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format. This value will not be available until the broadcast is over.
      "activeLiveChatId": "A String", # 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.
      "scheduledStartTime": "A String", # The time that the broadcast is scheduled to begin. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
      "concurrentViewers": "A String", # 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.
      "actualStartTime": "A String", # The time that the broadcast actually started. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format. This value will not be available until the broadcast begins.
      "scheduledEndTime": "A String", # The time that the broadcast is scheduled to end. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format. If the value is empty or the property is not present, then the broadcast is scheduled to continue indefinitely.
    },
    "snippet": { # 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.
      "publishedAt": "A String", # The date and time that the video was uploaded. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
      "description": "A String", # The video's description.
      "tags": [ # A list of keyword tags associated with the video. Tags may contain spaces.
        "A String",
      ],
      "defaultAudioLanguage": "A String", # The default_audio_language property specifies the language spoken in the video's default audio track.
      "channelId": "A String", # The ID that YouTube uses to uniquely identify the channel that the video was uploaded to.
      "defaultLanguage": "A String", # The language of the videos's default snippet.
      "liveBroadcastContent": "A String", # Indicates if the video is an upcoming/active live broadcast. Or it's "none" if the video is not an upcoming/active live broadcast.
      "channelTitle": "A String", # Channel title for the channel that the video belongs to.
      "title": "A String", # The video's title.
      "categoryId": "A String", # The YouTube video category associated with the video.
      "localized": { # 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)
        "description": "A String", # Localized version of the video's description.
        "title": "A String", # Localized version of the video's title.
      },
      "thumbnails": { # 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.
        "default": { # A thumbnail is an image representing a YouTube resource. # The default image for this resource.
          "url": "A String", # The thumbnail image's URL.
          "width": 42, # (Optional) Width of the thumbnail image.
          "height": 42, # (Optional) Height of the thumbnail image.
        },
        "high": { # A thumbnail is an image representing a YouTube resource. # The high quality image for this resource.
          "url": "A String", # The thumbnail image's URL.
          "width": 42, # (Optional) Width of the thumbnail image.
          "height": 42, # (Optional) Height of the thumbnail image.
        },
        "medium": { # A thumbnail is an image representing a YouTube resource. # The medium quality image for this resource.
          "url": "A String", # The thumbnail image's URL.
          "width": 42, # (Optional) Width of the thumbnail image.
          "height": 42, # (Optional) Height of the thumbnail image.
        },
        "maxres": { # A thumbnail is an image representing a YouTube resource. # The maximum resolution quality image for this resource.
          "url": "A String", # The thumbnail image's URL.
          "width": 42, # (Optional) Width of the thumbnail image.
          "height": 42, # (Optional) Height of the thumbnail image.
        },
        "standard": { # A thumbnail is an image representing a YouTube resource. # The standard quality image for this resource.
          "url": "A String", # The thumbnail image's URL.
          "width": 42, # (Optional) Width of the thumbnail image.
          "height": 42, # (Optional) Height of the thumbnail image.
        },
      },
    },
    "kind": "youtube#video", # Identifies what kind of resource this is. Value: the fixed string "youtube#video".
    "statistics": { # Statistics about the video, such as the number of times the video was viewed or liked. # The statistics object contains statistics about the video.
      "commentCount": "A String", # The number of comments for the video.
      "viewCount": "A String", # The number of times the video has been viewed.
      "favoriteCount": "A String", # The number of users who currently have the video marked as a favorite video.
      "dislikeCount": "A String", # The number of users who have indicated that they disliked the video by giving it a negative rating.
      "likeCount": "A String", # The number of users who have indicated that they liked the video by giving it a positive rating.
    },
    "topicDetails": { # Freebase topic information related to the video. # The topicDetails object encapsulates information about Freebase topics associated with the video.
      "topicIds": [ # 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 Freebase Topic API.
        "A String",
      ],
      "topicCategories": [ # A list of Wikipedia URLs that provide a high-level description of the video's content.
        "A String",
      ],
      "relevantTopicIds": [ # 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.
        "A String",
      ],
    },
    "monetizationDetails": { # Details about monetization of a YouTube Video. # The monetizationDetails object encapsulates information about the monetization status of the video.
      "access": { # Rights management policy for YouTube resources. # The value of access indicates whether the video can be monetized or not.
        "exception": [ # A list of region codes that identify countries where the default policy do not apply.
          "A String",
        ],
        "allowed": True or False, # The value of allowed indicates whether the access to the policy is allowed or denied by default.
      },
    },
    "contentDetails": { # 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.
      "definition": "A String", # The value of definition indicates whether the video is available in high definition or only in standard definition.
      "projection": "A String", # Specifies the projection format of the video.
      "countryRestriction": { # Rights management policy for YouTube resources. # The countryRestriction object contains information about the countries where a video is (or is not) viewable.
        "exception": [ # A list of region codes that identify countries where the default policy do not apply.
          "A String",
        ],
        "allowed": True or False, # The value of allowed indicates whether the access to the policy is allowed or denied by default.
      },
      "hasCustomThumbnail": 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.
      "contentRating": { # Ratings schemes. The country-specific ratings are mostly for movies and shows. NEXT_ID: 69 # Specifies the ratings that the video received under various rating schemes.
        "cncRating": "A String", # Rating system in France - Commission de classification cinematographique
        "catvfrRating": "A String", # The video'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.
        "cbfcRating": "A String", # The video's Central Board of Film Certification (CBFC - India) rating.
        "bfvcRating": "A String", # The video's rating from Thailand's Board of Film and Video Censors.
        "mdaRating": "A String", # The video's rating from Singapore's Media Development Authority (MDA) and, specifically, it's Board of Film Censors (BFC).
        "lsfRating": "A String", # The video's rating from Indonesia's Lembaga Sensor Film.
        "medietilsynetRating": "A String", # The video's rating from Medietilsynet, the Norwegian Media Authority.
        "bmukkRating": "A String", # The video's rating from the Austrian Board of Media Classification (Bundesministerium für Unterricht, Kunst und Kultur).
        "chfilmRating": "A String", # The video's rating in Switzerland.
        "resorteviolenciaRating": "A String", # The video's rating in Venezuela.
        "rteRating": "A String", # The video's rating from Ireland's Raidió Teilifís Éireann.
        "csaRating": "A String", # The video's rating from France's Conseil supérieur de l?audiovisuel, which rates broadcast content.
        "moctwRating": "A String", # The video's rating from Taiwan's Ministry of Culture (文化部).
        "catvRating": "A String", # Rating system for Canadian TV - Canadian TV Classification System The video'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.
        "pefilmRating": "A String", # The video's rating in Peru.
        "djctqRatingReasons": [ # Reasons that explain why the video received its DJCQT (Brazil) rating.
          "A String",
        ],
        "incaaRating": "A String", # The video's INCAA (Instituto Nacional de Cine y Artes Audiovisuales - Argentina) rating.
        "oflcRating": "A String", # The video's Office of Film and Literature Classification (OFLC - New Zealand) rating.
        "fpbRating": "A String", # The video's rating from South Africa's Film and Publication Board.
        "mccaaRating": "A String", # The video's rating from Malta's Film Age-Classification Board.
        "tvpgRating": "A String", # The video's TV Parental Guidelines (TVPG) rating.
        "rtcRating": "A String", # The video's General Directorate of Radio, Television and Cinematography (Mexico) rating.
        "cscfRating": "A String", # The video's rating from Luxembourg's Commission de surveillance de la classification des films (CSCF).
        "fskRating": "A String", # The video's Freiwillige Selbstkontrolle der Filmwirtschaft (FSK - Germany) rating.
        "bbfcRating": "A String", # The video's British Board of Film Classification (BBFC) rating.
        "kmrbRating": "A String", # The video's Korea Media Rating Board (영상물등급위원회) rating. The KMRB rates videos in South Korea.
        "smsaRating": "A String", # The video's rating from Statens medieråd (Sweden's National Media Council).
        "egfilmRating": "A String", # The video's rating in Egypt.
        "cicfRating": "A String", # The video's rating from the Commission de Contrôle des Films (Belgium).
        "nbcplRating": "A String", # The video's rating in Poland.
        "nbcRating": "A String", # The video's rating from the Maldives National Bureau of Classification.
        "ytRating": "A String", # A rating that YouTube uses to identify age-restricted content.
        "nfvcbRating": "A String", # The video's rating from Nigeria's National Film and Video Censors Board.
        "djctqRating": "A String", # The video's Departamento de Justiça, Classificação, Qualificação e Títulos (DJCQT - Brazil) rating.
        "ifcoRating": "A String", # The video's Irish Film Classification Office (IFCO - Ireland) rating. See the IFCO website for more information.
        "fcoRating": "A String", # The video's rating from Hong Kong's Office for Film, Newspaper and Article Administration.
        "eefilmRating": "A String", # The video's rating in Estonia.
        "acbRating": "A String", # The video's Australian Classification Board (ACB) or Australian Communications and Media Authority (ACMA) rating. ACMA ratings are used to classify children's television programming.
        "grfilmRating": "A String", # The video's rating in Greece.
        "cccRating": "A String", # The video's Consejo de Calificación Cinematográfica (Chile) rating.
        "ecbmctRating": "A String", # Rating system in Turkey - Evaluation and Classification Board of the Ministry of Culture and Tourism
        "czfilmRating": "A String", # The video's rating in the Czech Republic.
        "kfcbRating": "A String", # The video's rating from the Kenya Film Classification Board.
        "fmocRating": "A String", # This property has been deprecated. Use the contentDetails.contentRating.cncRating instead.
        "eirinRating": "A String", # The video's Eirin (映倫) rating. Eirin is the Japanese rating system.
        "cceRating": "A String", # The video's rating from Portugal's Comissão de Classificação de Espect´culos.
        "nkclvRating": "A String", # The video's rating from the Nacionãlais Kino centrs (National Film Centre of Latvia).
        "mtrcbRating": "A String", # The video's rating from the Movie and Television Review and Classification Board (Philippines).
        "mibacRating": "A String", # The video's rating from the Ministero dei Beni e delle Attività Culturali e del Turismo (Italy).
        "anatelRating": "A String", # The video's Anatel (Asociación Nacional de Televisión) rating for Chilean television.
        "mcstRating": "A String", # The video's rating system for Vietnam - MCST
        "smaisRating": "A String", # The video's rating in Iceland.
        "ilfilmRating": "A String", # The video's rating in Israel.
        "russiaRating": "A String", # The video's National Film Registry of the Russian Federation (MKRF - Russia) rating.
        "mpaaRating": "A String", # The video's Motion Picture Association of America (MPAA) rating.
        "fpbRatingReasons": [ # Reasons that explain why the video received its FPB (South Africa) rating.
          "A String",
        ],
        "agcomRating": "A String", # The video's rating from Italy's Autorità per le Garanzie nelle Comunicazioni (AGCOM).
        "chvrsRating": "A String", # The video's Canadian Home Video Rating System (CHVRS) rating.
        "cnaRating": "A String", # The video's rating from Romania's CONSILIUL NATIONAL AL AUDIOVIZUALULUI (CNA).
        "icaaRating": "A String", # The video's Instituto de la Cinematografía y de las Artes Audiovisuales (ICAA - Spain) rating.
        "mccypRating": "A String", # The video's rating from the Danish Film Institute's (Det Danske Filminstitut) Media Council for Children and Young People.
        "nfrcRating": "A String", # The video's rating from the Bulgarian National Film Center.
        "skfilmRating": "A String", # The video's rating in Slovakia.
        "mocRating": "A String", # The video's Ministerio de Cultura (Colombia) rating.
        "rcnofRating": "A String", # The video's rating from the Hungarian Nemzeti Filmiroda, the Rating Committee of the National Office of Film.
        "mekuRating": "A String", # The video's rating from Finland's Kansallinen Audiovisuaalinen Instituutti (National Audiovisual Institute).
        "fcbmRating": "A String", # The video's rating from Malaysia's Film Censorship Board.
        "kijkwijzerRating": "A String", # voor de Classificatie van Audiovisuele Media (Netherlands).
      },
      "caption": "A String", # The value of captions indicates whether the video has captions or not.
      "regionRestriction": { # 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.
        "blocked": [ # 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.
          "A String",
        ],
        "allowed": [ # 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.
          "A String",
        ],
      },
      "duration": "A String", # 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.
      "licensedContent": True or False, # The value of is_license_content indicates whether the video is licensed content.
      "dimension": "A String", # The value of dimension indicates whether the video is available in 3D or in 2D.
    },
    "ageGating": { # Age restriction details related to a video. This data can only be retrieved by the video owner.
      "restricted": 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't be present.
      "alcoholContent": 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.
      "videoGameRating": "A String", # Video game rating, if any.
    },
    "fileDetails": { # 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's resolution, duration, audio and video codecs, stream bitrates, and more. This data can only be retrieved by the video owner.
      "bitrateBps": "A String", # The uploaded video file's combined (video and audio) bitrate in bits per second.
      "container": "A String", # The uploaded video file's container format.
      "fileType": "A String", # The uploaded file's type as detected by YouTube'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.
      "creationTime": "A String", # 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
      "durationMs": "A String", # The length of the uploaded video in milliseconds.
      "fileName": "A String", # The uploaded file's name. This field is present whether a video file or another type of file was uploaded.
      "fileSize": "A String", # The uploaded file's size in bytes. This field is present whether a video file or another type of file was uploaded.
      "videoStreams": [ # 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.
          "bitrateBps": "A String", # The video stream's bitrate, in bits per second.
          "vendor": "A String", # A value that uniquely identifies a video vendor. Typically, the value is a four-letter vendor code.
          "codec": "A String", # The video codec that the stream uses.
          "widthPixels": 42, # The encoded video content's width in pixels. You can calculate the video's encoding aspect ratio as width_pixels / height_pixels.
          "heightPixels": 42, # The encoded video content's height in pixels.
          "aspectRatio": 3.14, # The video content's display aspect ratio, which specifies the aspect ratio in which the video should be displayed.
          "rotation": "A String", # The amount that YouTube needs to rotate the original source content to properly display the video.
          "frameRateFps": 3.14, # The video stream's frame rate, in frames per second.
        },
      ],
      "audioStreams": [ # 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.
          "bitrateBps": "A String", # The audio stream's bitrate, in bits per second.
          "codec": "A String", # The audio codec that the stream uses.
          "vendor": "A String", # A value that uniquely identifies a video vendor. Typically, the value is a four-letter vendor code.
          "channelCount": 42, # The number of audio channels that the stream contains.
        },
      ],
    },
    "processingDetails": { # Describes processing status and progress and availability of some other Video resource parts. # The processingProgress object encapsulates information about YouTube'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.
      "fileDetailsAvailability": "A String", # This value indicates whether file details are available for the uploaded video. You can retrieve a video's file details by requesting the fileDetails part in your videos.list() request.
      "editorSuggestionsAvailability": "A String", # 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.
      "processingStatus": "A String", # The video's processing status. This value indicates whether YouTube was able to process the video or if the video is still being processed.
      "processingIssuesAvailability": "A String", # This value indicates whether the video processing engine has generated suggestions that might improve YouTube'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.
      "processingFailureReason": "A String", # The reason that YouTube failed to process the video. This property will only have a value if the processingStatus property's value is failed.
      "thumbnailsAvailability": "A String", # This value indicates whether thumbnail images have been generated for the video.
      "processingProgress": { # 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's processing status is processing.
        "timeLeftMs": "A String", # An estimate of the amount of time, in millseconds, that YouTube needs to finish processing the video.
        "partsProcessed": "A String", # 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.
        "partsTotal": "A String", # 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.
      },
      "tagSuggestionsAvailability": "A String", # This value indicates whether keyword (tag) suggestions are available for the video. Tags can be added to a video'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.
    },
    "player": { # 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.
      "embedHtml": "A String", # An <iframe> tag that embeds a player that will play the video.
      "embedHeight": "A String",
      "embedWidth": "A String", # The embed width
    },
    "etag": "A String", # Etag of this resource.
    "status": { # Basic details about a video category, such as its localized title. # The status object contains information about the video's uploading, processing, and privacy statuses.
      "license": "A String", # The video's license.
      "embeddable": True or False, # This value indicates if the video can be embedded on another website.
      "privacyStatus": "A String", # The video's privacy status.
      "publishAt": "A String", # 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. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
      "publicStatsViewable": 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.
      "uploadStatus": "A String", # The status of the uploaded video.
      "rejectionReason": "A String", # This value explains why YouTube rejected an uploaded video. This property is only present if the uploadStatus property indicates that the upload was rejected.
      "failureReason": "A String", # This value explains why a video failed to upload. This property is only present if the uploadStatus property indicates that the upload failed.
    },
    "projectDetails": { # Project specific details about the content of a YouTube Video. # The projectDetails object contains information about the project specific video metadata.
      "tags": [ # A list of project tags associated with the video during the upload.
        "A String",
      ],
    },
    "recordingDetails": { # Recording information associated with the video. # The recordingDetails object encapsulates information about the location, date and address where the video was recorded.
      "recordingDate": "A String", # The date and time when the video was recorded. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sssZ) format.
      "locationDescription": "A String", # The text description of the location where the video was recorded.
      "location": { # Geographical coordinates of a point, in WGS84. # The geolocation information associated with the video.
        "latitude": 3.14, # Latitude in degrees.
        "altitude": 3.14, # Altitude above the reference ellipsoid, in meters.
        "longitude": 3.14, # Longitude in degrees.
      },
    },
    "suggestions": { # 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.
      "processingErrors": [ # A list of errors that will prevent YouTube from successfully processing the uploaded video video. These errors indicate that, regardless of the video's current processing status, eventually, that status will almost certainly be failed.
        "A String",
      ],
      "tagSuggestions": [ # A list of keyword tags that could be added to the video's metadata to increase the likelihood that users will locate your video when searching or browsing on YouTube.
        { # A single tag suggestion with it's relevance information.
          "categoryRestricts": [ # 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.
            "A String",
          ],
          "tag": "A String", # The keyword tag suggested for the video.
        },
      ],
      "editorSuggestions": [ # A list of video editing operations that might improve the video quality or playback experience of the uploaded video.
        "A String",
      ],
      "processingWarnings": [ # 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.
        "A String",
      ],
      "processingHints": [ # A list of suggestions that may improve YouTube's ability to process the video.
        "A String",
      ],
    },
    "id": "A String", # The ID that YouTube uses to uniquely identify the video.
    "localizations": { # List with all localizations.
      "a_key": { # Localized versions of certain video properties (e.g. title). # The language tag, using string since map_key require simple types.
        "description": "A String", # Localized version of the video's description.
        "title": "A String", # Localized version of the video's title.
      },
    },
  }

  onBehalfOfContentOwner: string, Note: This parameter is intended exclusively for YouTube content partners.

The onBehalfOfContentOwner parameter indicates that the request'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.

Returns:
  An object of the form:

    { # A video resource represents a YouTube video.
      "liveStreamingDetails": { # 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.
        "actualEndTime": "A String", # The time that the broadcast actually ended. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format. This value will not be available until the broadcast is over.
        "activeLiveChatId": "A String", # 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.
        "scheduledStartTime": "A String", # The time that the broadcast is scheduled to begin. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
        "concurrentViewers": "A String", # 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.
        "actualStartTime": "A String", # The time that the broadcast actually started. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format. This value will not be available until the broadcast begins.
        "scheduledEndTime": "A String", # The time that the broadcast is scheduled to end. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format. If the value is empty or the property is not present, then the broadcast is scheduled to continue indefinitely.
      },
      "snippet": { # 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.
        "publishedAt": "A String", # The date and time that the video was uploaded. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
        "description": "A String", # The video's description.
        "tags": [ # A list of keyword tags associated with the video. Tags may contain spaces.
          "A String",
        ],
        "defaultAudioLanguage": "A String", # The default_audio_language property specifies the language spoken in the video's default audio track.
        "channelId": "A String", # The ID that YouTube uses to uniquely identify the channel that the video was uploaded to.
        "defaultLanguage": "A String", # The language of the videos's default snippet.
        "liveBroadcastContent": "A String", # Indicates if the video is an upcoming/active live broadcast. Or it's "none" if the video is not an upcoming/active live broadcast.
        "channelTitle": "A String", # Channel title for the channel that the video belongs to.
        "title": "A String", # The video's title.
        "categoryId": "A String", # The YouTube video category associated with the video.
        "localized": { # 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)
          "description": "A String", # Localized version of the video's description.
          "title": "A String", # Localized version of the video's title.
        },
        "thumbnails": { # 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.
          "default": { # A thumbnail is an image representing a YouTube resource. # The default image for this resource.
            "url": "A String", # The thumbnail image's URL.
            "width": 42, # (Optional) Width of the thumbnail image.
            "height": 42, # (Optional) Height of the thumbnail image.
          },
          "high": { # A thumbnail is an image representing a YouTube resource. # The high quality image for this resource.
            "url": "A String", # The thumbnail image's URL.
            "width": 42, # (Optional) Width of the thumbnail image.
            "height": 42, # (Optional) Height of the thumbnail image.
          },
          "medium": { # A thumbnail is an image representing a YouTube resource. # The medium quality image for this resource.
            "url": "A String", # The thumbnail image's URL.
            "width": 42, # (Optional) Width of the thumbnail image.
            "height": 42, # (Optional) Height of the thumbnail image.
          },
          "maxres": { # A thumbnail is an image representing a YouTube resource. # The maximum resolution quality image for this resource.
            "url": "A String", # The thumbnail image's URL.
            "width": 42, # (Optional) Width of the thumbnail image.
            "height": 42, # (Optional) Height of the thumbnail image.
          },
          "standard": { # A thumbnail is an image representing a YouTube resource. # The standard quality image for this resource.
            "url": "A String", # The thumbnail image's URL.
            "width": 42, # (Optional) Width of the thumbnail image.
            "height": 42, # (Optional) Height of the thumbnail image.
          },
        },
      },
      "kind": "youtube#video", # Identifies what kind of resource this is. Value: the fixed string "youtube#video".
      "statistics": { # Statistics about the video, such as the number of times the video was viewed or liked. # The statistics object contains statistics about the video.
        "commentCount": "A String", # The number of comments for the video.
        "viewCount": "A String", # The number of times the video has been viewed.
        "favoriteCount": "A String", # The number of users who currently have the video marked as a favorite video.
        "dislikeCount": "A String", # The number of users who have indicated that they disliked the video by giving it a negative rating.
        "likeCount": "A String", # The number of users who have indicated that they liked the video by giving it a positive rating.
      },
      "topicDetails": { # Freebase topic information related to the video. # The topicDetails object encapsulates information about Freebase topics associated with the video.
        "topicIds": [ # 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 Freebase Topic API.
          "A String",
        ],
        "topicCategories": [ # A list of Wikipedia URLs that provide a high-level description of the video's content.
          "A String",
        ],
        "relevantTopicIds": [ # 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.
          "A String",
        ],
      },
      "monetizationDetails": { # Details about monetization of a YouTube Video. # The monetizationDetails object encapsulates information about the monetization status of the video.
        "access": { # Rights management policy for YouTube resources. # The value of access indicates whether the video can be monetized or not.
          "exception": [ # A list of region codes that identify countries where the default policy do not apply.
            "A String",
          ],
          "allowed": True or False, # The value of allowed indicates whether the access to the policy is allowed or denied by default.
        },
      },
      "contentDetails": { # 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.
        "definition": "A String", # The value of definition indicates whether the video is available in high definition or only in standard definition.
        "projection": "A String", # Specifies the projection format of the video.
        "countryRestriction": { # Rights management policy for YouTube resources. # The countryRestriction object contains information about the countries where a video is (or is not) viewable.
          "exception": [ # A list of region codes that identify countries where the default policy do not apply.
            "A String",
          ],
          "allowed": True or False, # The value of allowed indicates whether the access to the policy is allowed or denied by default.
        },
        "hasCustomThumbnail": 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.
        "contentRating": { # Ratings schemes. The country-specific ratings are mostly for movies and shows. NEXT_ID: 69 # Specifies the ratings that the video received under various rating schemes.
          "cncRating": "A String", # Rating system in France - Commission de classification cinematographique
          "catvfrRating": "A String", # The video'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.
          "cbfcRating": "A String", # The video's Central Board of Film Certification (CBFC - India) rating.
          "bfvcRating": "A String", # The video's rating from Thailand's Board of Film and Video Censors.
          "mdaRating": "A String", # The video's rating from Singapore's Media Development Authority (MDA) and, specifically, it's Board of Film Censors (BFC).
          "lsfRating": "A String", # The video's rating from Indonesia's Lembaga Sensor Film.
          "medietilsynetRating": "A String", # The video's rating from Medietilsynet, the Norwegian Media Authority.
          "bmukkRating": "A String", # The video's rating from the Austrian Board of Media Classification (Bundesministerium für Unterricht, Kunst und Kultur).
          "chfilmRating": "A String", # The video's rating in Switzerland.
          "resorteviolenciaRating": "A String", # The video's rating in Venezuela.
          "rteRating": "A String", # The video's rating from Ireland's Raidió Teilifís Éireann.
          "csaRating": "A String", # The video's rating from France's Conseil supérieur de l?audiovisuel, which rates broadcast content.
          "moctwRating": "A String", # The video's rating from Taiwan's Ministry of Culture (文化部).
          "catvRating": "A String", # Rating system for Canadian TV - Canadian TV Classification System The video'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.
          "pefilmRating": "A String", # The video's rating in Peru.
          "djctqRatingReasons": [ # Reasons that explain why the video received its DJCQT (Brazil) rating.
            "A String",
          ],
          "incaaRating": "A String", # The video's INCAA (Instituto Nacional de Cine y Artes Audiovisuales - Argentina) rating.
          "oflcRating": "A String", # The video's Office of Film and Literature Classification (OFLC - New Zealand) rating.
          "fpbRating": "A String", # The video's rating from South Africa's Film and Publication Board.
          "mccaaRating": "A String", # The video's rating from Malta's Film Age-Classification Board.
          "tvpgRating": "A String", # The video's TV Parental Guidelines (TVPG) rating.
          "rtcRating": "A String", # The video's General Directorate of Radio, Television and Cinematography (Mexico) rating.
          "cscfRating": "A String", # The video's rating from Luxembourg's Commission de surveillance de la classification des films (CSCF).
          "fskRating": "A String", # The video's Freiwillige Selbstkontrolle der Filmwirtschaft (FSK - Germany) rating.
          "bbfcRating": "A String", # The video's British Board of Film Classification (BBFC) rating.
          "kmrbRating": "A String", # The video's Korea Media Rating Board (영상물등급위원회) rating. The KMRB rates videos in South Korea.
          "smsaRating": "A String", # The video's rating from Statens medieråd (Sweden's National Media Council).
          "egfilmRating": "A String", # The video's rating in Egypt.
          "cicfRating": "A String", # The video's rating from the Commission de Contrôle des Films (Belgium).
          "nbcplRating": "A String", # The video's rating in Poland.
          "nbcRating": "A String", # The video's rating from the Maldives National Bureau of Classification.
          "ytRating": "A String", # A rating that YouTube uses to identify age-restricted content.
          "nfvcbRating": "A String", # The video's rating from Nigeria's National Film and Video Censors Board.
          "djctqRating": "A String", # The video's Departamento de Justiça, Classificação, Qualificação e Títulos (DJCQT - Brazil) rating.
          "ifcoRating": "A String", # The video's Irish Film Classification Office (IFCO - Ireland) rating. See the IFCO website for more information.
          "fcoRating": "A String", # The video's rating from Hong Kong's Office for Film, Newspaper and Article Administration.
          "eefilmRating": "A String", # The video's rating in Estonia.
          "acbRating": "A String", # The video's Australian Classification Board (ACB) or Australian Communications and Media Authority (ACMA) rating. ACMA ratings are used to classify children's television programming.
          "grfilmRating": "A String", # The video's rating in Greece.
          "cccRating": "A String", # The video's Consejo de Calificación Cinematográfica (Chile) rating.
          "ecbmctRating": "A String", # Rating system in Turkey - Evaluation and Classification Board of the Ministry of Culture and Tourism
          "czfilmRating": "A String", # The video's rating in the Czech Republic.
          "kfcbRating": "A String", # The video's rating from the Kenya Film Classification Board.
          "fmocRating": "A String", # This property has been deprecated. Use the contentDetails.contentRating.cncRating instead.
          "eirinRating": "A String", # The video's Eirin (映倫) rating. Eirin is the Japanese rating system.
          "cceRating": "A String", # The video's rating from Portugal's Comissão de Classificação de Espect´culos.
          "nkclvRating": "A String", # The video's rating from the Nacionãlais Kino centrs (National Film Centre of Latvia).
          "mtrcbRating": "A String", # The video's rating from the Movie and Television Review and Classification Board (Philippines).
          "mibacRating": "A String", # The video's rating from the Ministero dei Beni e delle Attività Culturali e del Turismo (Italy).
          "anatelRating": "A String", # The video's Anatel (Asociación Nacional de Televisión) rating for Chilean television.
          "mcstRating": "A String", # The video's rating system for Vietnam - MCST
          "smaisRating": "A String", # The video's rating in Iceland.
          "ilfilmRating": "A String", # The video's rating in Israel.
          "russiaRating": "A String", # The video's National Film Registry of the Russian Federation (MKRF - Russia) rating.
          "mpaaRating": "A String", # The video's Motion Picture Association of America (MPAA) rating.
          "fpbRatingReasons": [ # Reasons that explain why the video received its FPB (South Africa) rating.
            "A String",
          ],
          "agcomRating": "A String", # The video's rating from Italy's Autorità per le Garanzie nelle Comunicazioni (AGCOM).
          "chvrsRating": "A String", # The video's Canadian Home Video Rating System (CHVRS) rating.
          "cnaRating": "A String", # The video's rating from Romania's CONSILIUL NATIONAL AL AUDIOVIZUALULUI (CNA).
          "icaaRating": "A String", # The video's Instituto de la Cinematografía y de las Artes Audiovisuales (ICAA - Spain) rating.
          "mccypRating": "A String", # The video's rating from the Danish Film Institute's (Det Danske Filminstitut) Media Council for Children and Young People.
          "nfrcRating": "A String", # The video's rating from the Bulgarian National Film Center.
          "skfilmRating": "A String", # The video's rating in Slovakia.
          "mocRating": "A String", # The video's Ministerio de Cultura (Colombia) rating.
          "rcnofRating": "A String", # The video's rating from the Hungarian Nemzeti Filmiroda, the Rating Committee of the National Office of Film.
          "mekuRating": "A String", # The video's rating from Finland's Kansallinen Audiovisuaalinen Instituutti (National Audiovisual Institute).
          "fcbmRating": "A String", # The video's rating from Malaysia's Film Censorship Board.
          "kijkwijzerRating": "A String", # voor de Classificatie van Audiovisuele Media (Netherlands).
        },
        "caption": "A String", # The value of captions indicates whether the video has captions or not.
        "regionRestriction": { # 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.
          "blocked": [ # 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.
            "A String",
          ],
          "allowed": [ # 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.
            "A String",
          ],
        },
        "duration": "A String", # 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.
        "licensedContent": True or False, # The value of is_license_content indicates whether the video is licensed content.
        "dimension": "A String", # The value of dimension indicates whether the video is available in 3D or in 2D.
      },
      "ageGating": { # Age restriction details related to a video. This data can only be retrieved by the video owner.
        "restricted": 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't be present.
        "alcoholContent": 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.
        "videoGameRating": "A String", # Video game rating, if any.
      },
      "fileDetails": { # 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's resolution, duration, audio and video codecs, stream bitrates, and more. This data can only be retrieved by the video owner.
        "bitrateBps": "A String", # The uploaded video file's combined (video and audio) bitrate in bits per second.
        "container": "A String", # The uploaded video file's container format.
        "fileType": "A String", # The uploaded file's type as detected by YouTube'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.
        "creationTime": "A String", # 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
        "durationMs": "A String", # The length of the uploaded video in milliseconds.
        "fileName": "A String", # The uploaded file's name. This field is present whether a video file or another type of file was uploaded.
        "fileSize": "A String", # The uploaded file's size in bytes. This field is present whether a video file or another type of file was uploaded.
        "videoStreams": [ # 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.
            "bitrateBps": "A String", # The video stream's bitrate, in bits per second.
            "vendor": "A String", # A value that uniquely identifies a video vendor. Typically, the value is a four-letter vendor code.
            "codec": "A String", # The video codec that the stream uses.
            "widthPixels": 42, # The encoded video content's width in pixels. You can calculate the video's encoding aspect ratio as width_pixels / height_pixels.
            "heightPixels": 42, # The encoded video content's height in pixels.
            "aspectRatio": 3.14, # The video content's display aspect ratio, which specifies the aspect ratio in which the video should be displayed.
            "rotation": "A String", # The amount that YouTube needs to rotate the original source content to properly display the video.
            "frameRateFps": 3.14, # The video stream's frame rate, in frames per second.
          },
        ],
        "audioStreams": [ # 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.
            "bitrateBps": "A String", # The audio stream's bitrate, in bits per second.
            "codec": "A String", # The audio codec that the stream uses.
            "vendor": "A String", # A value that uniquely identifies a video vendor. Typically, the value is a four-letter vendor code.
            "channelCount": 42, # The number of audio channels that the stream contains.
          },
        ],
      },
      "processingDetails": { # Describes processing status and progress and availability of some other Video resource parts. # The processingProgress object encapsulates information about YouTube'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.
        "fileDetailsAvailability": "A String", # This value indicates whether file details are available for the uploaded video. You can retrieve a video's file details by requesting the fileDetails part in your videos.list() request.
        "editorSuggestionsAvailability": "A String", # 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.
        "processingStatus": "A String", # The video's processing status. This value indicates whether YouTube was able to process the video or if the video is still being processed.
        "processingIssuesAvailability": "A String", # This value indicates whether the video processing engine has generated suggestions that might improve YouTube'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.
        "processingFailureReason": "A String", # The reason that YouTube failed to process the video. This property will only have a value if the processingStatus property's value is failed.
        "thumbnailsAvailability": "A String", # This value indicates whether thumbnail images have been generated for the video.
        "processingProgress": { # 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's processing status is processing.
          "timeLeftMs": "A String", # An estimate of the amount of time, in millseconds, that YouTube needs to finish processing the video.
          "partsProcessed": "A String", # 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.
          "partsTotal": "A String", # 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.
        },
        "tagSuggestionsAvailability": "A String", # This value indicates whether keyword (tag) suggestions are available for the video. Tags can be added to a video'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.
      },
      "player": { # 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.
        "embedHtml": "A String", # An <iframe> tag that embeds a player that will play the video.
        "embedHeight": "A String",
        "embedWidth": "A String", # The embed width
      },
      "etag": "A String", # Etag of this resource.
      "status": { # Basic details about a video category, such as its localized title. # The status object contains information about the video's uploading, processing, and privacy statuses.
        "license": "A String", # The video's license.
        "embeddable": True or False, # This value indicates if the video can be embedded on another website.
        "privacyStatus": "A String", # The video's privacy status.
        "publishAt": "A String", # 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. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
        "publicStatsViewable": 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.
        "uploadStatus": "A String", # The status of the uploaded video.
        "rejectionReason": "A String", # This value explains why YouTube rejected an uploaded video. This property is only present if the uploadStatus property indicates that the upload was rejected.
        "failureReason": "A String", # This value explains why a video failed to upload. This property is only present if the uploadStatus property indicates that the upload failed.
      },
      "projectDetails": { # Project specific details about the content of a YouTube Video. # The projectDetails object contains information about the project specific video metadata.
        "tags": [ # A list of project tags associated with the video during the upload.
          "A String",
        ],
      },
      "recordingDetails": { # Recording information associated with the video. # The recordingDetails object encapsulates information about the location, date and address where the video was recorded.
        "recordingDate": "A String", # The date and time when the video was recorded. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sssZ) format.
        "locationDescription": "A String", # The text description of the location where the video was recorded.
        "location": { # Geographical coordinates of a point, in WGS84. # The geolocation information associated with the video.
          "latitude": 3.14, # Latitude in degrees.
          "altitude": 3.14, # Altitude above the reference ellipsoid, in meters.
          "longitude": 3.14, # Longitude in degrees.
        },
      },
      "suggestions": { # 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.
        "processingErrors": [ # A list of errors that will prevent YouTube from successfully processing the uploaded video video. These errors indicate that, regardless of the video's current processing status, eventually, that status will almost certainly be failed.
          "A String",
        ],
        "tagSuggestions": [ # A list of keyword tags that could be added to the video's metadata to increase the likelihood that users will locate your video when searching or browsing on YouTube.
          { # A single tag suggestion with it's relevance information.
            "categoryRestricts": [ # 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.
              "A String",
            ],
            "tag": "A String", # The keyword tag suggested for the video.
          },
        ],
        "editorSuggestions": [ # A list of video editing operations that might improve the video quality or playback experience of the uploaded video.
          "A String",
        ],
        "processingWarnings": [ # 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.
          "A String",
        ],
        "processingHints": [ # A list of suggestions that may improve YouTube's ability to process the video.
          "A String",
        ],
      },
      "id": "A String", # The ID that YouTube uses to uniquely identify the video.
      "localizations": { # List with all localizations.
        "a_key": { # Localized versions of certain video properties (e.g. title). # The language tag, using string since map_key require simple types.
          "description": "A String", # Localized version of the video's description.
          "title": "A String", # Localized version of the video's title.
        },
      },
    }</pre>
</div>

</body></html>