<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: 71 # 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.
        "menaMpaaRating": "A String", # The rating system for MENA countries, a clone of MPAA. It is needed to
        "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.
        "mpaatRating": "A String", # The rating system for trailer, DVD, and Ad in the US. See http://movielabs.com/md/ratings/v2.3/html/US_MPAAT_Ratings.html.
        "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).
        "resorteviolenciaRating": "A String", # The video's rating in Venezuela.
        "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 processingDetails 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: 71 # 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.
          "menaMpaaRating": "A String", # The rating system for MENA countries, a clone of MPAA. It is needed to
          "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.
          "mpaatRating": "A String", # The rating system for trailer, DVD, and Ad in the US. See http://movielabs.com/md/ratings/v2.3/html/US_MPAAT_Ratings.html.
          "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).
          "resorteviolenciaRating": "A String", # The video's rating in Venezuela.
          "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 processingDetails 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: 71 # 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.
              "menaMpaaRating": "A String", # The rating system for MENA countries, a clone of MPAA. It is needed to
              "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.
              "mpaatRating": "A String", # The rating system for trailer, DVD, and Ad in the US. See http://movielabs.com/md/ratings/v2.3/html/US_MPAAT_Ratings.html.
              "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).
              "resorteviolenciaRating": "A String", # The video's rating in Venezuela.
              "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 processingDetails 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: 71 # 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.
        "menaMpaaRating": "A String", # The rating system for MENA countries, a clone of MPAA. It is needed to
        "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.
        "mpaatRating": "A String", # The rating system for trailer, DVD, and Ad in the US. See http://movielabs.com/md/ratings/v2.3/html/US_MPAAT_Ratings.html.
        "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).
        "resorteviolenciaRating": "A String", # The video's rating in Venezuela.
        "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 processingDetails 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: 71 # 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.
          "menaMpaaRating": "A String", # The rating system for MENA countries, a clone of MPAA. It is needed to
          "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.
          "mpaatRating": "A String", # The rating system for trailer, DVD, and Ad in the US. See http://movielabs.com/md/ratings/v2.3/html/US_MPAAT_Ratings.html.
          "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).
          "resorteviolenciaRating": "A String", # The video's rating in Venezuela.
          "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 processingDetails 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>