# Source: https://developers.google.com/youtube/v3/docs/videos/list.md.txt

# Videos: list

Returns a list of videos that match the API request parameters.

**Quota impact:** A call to this method has a [quota cost](https://developers.google.com/youtube/v3/getting-started#quota) of 1 unit.

## Common use cases

The list below shows common use cases for this method. Hover over a use case to see its description, or click on a use case to load sample parameter values in the APIs Explorer. You can open the [fullscreen APIs Explorer](https://developers.google.com/youtube/v3/docs/videos/list#) to see code samples that dynamically update to reflect the parameter values entered in the Explorer.

The table below shows common use cases for this method. You can click on a use case name to load sample parameter values in the APIs Explorer. Or you can see code samples for a use case in the fullscreen APIs Explorer by clicking on the code icon below a use case name. In the fullscreen UI, you can update parameter and property values and the code samples will dynamically update to reflect the values you enter.  
This method has one common use case, which is described below. The buttons below the description populate the APIs Explorer with sample values or open the fullscreen APIs Explorer to show code samples that use those values. The code samples also dynamically update if you change the values.

<br />

## Request

### HTTP request

```
GET https://www.googleapis.com/youtube/v3/videos
```

### Parameters

The following table lists the parameters that this query supports. All of the parameters listed are query parameters.

|                                                                                                                                                                                                                                                                                                                                                                                                                                             Parameters                                                                                                                                                                                                                                                                                                                                                                                                                                             ||
|--------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---|
| **Required parameters**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |||
| `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. The following list contains the `part` names that you can include in the parameter value: - `contentDetails` - `fileDetails` - `id` - `liveStreamingDetails` - `localizations` - `paidProductPlacementDetails` - `player` - `processingDetails` - `recordingDetails` - `snippet` - `statistics` - `status` - `suggestions` - `topicDetails` |
| **Filters (specify exactly one of the following parameters)**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |||
| `chart`                  | `string` The **chart** parameter identifies the chart that you want to retrieve. Acceptable values are: - **mostPopular** -- Return the most popular videos for the specified [content region](https://developers.google.com/youtube/v3/docs/videos/list#regionCode) and [video category](https://developers.google.com/youtube/v3/docs/videos/list#videoCategoryId).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| `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.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| `myRating`               | `string` This parameter can only be used in a properly [authorized request](https://developers.google.com/youtube/v3/guides/authentication). Set this parameter's value to `like` or `dislike` to instruct the API to only return videos liked or disliked by the authenticated user. Acceptable values are: - **dislike** -- Returns only videos disliked by the authenticated user. - **like** -- Returns only video liked by the authenticated user.                                                                                                                                                                                                                                                                                                                                                                                                                  |
| **Optional parameters**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |||
| `hl`                     | `string` The **hl** parameter instructs the API to retrieve localized resource metadata for a specific [application language that the YouTube website supports](https://developers.google.com/youtube/v3/docs/i18nLanguages). The parameter value must be a language code included in the list returned by the [i18nLanguages.list](https://developers.google.com/youtube/v3/docs/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](https://developers.google.com/youtube/v3/docs/videos#snippet.defaultLanguage).                                                                               |
| `maxHeight`              | `unsigned integer` The **maxHeight** parameter specifies the maximum height of the embedded player returned in the [player.embedHtml](https://developers.google.com/youtube/v3/docs/videos#player.embedHtml) property. You can use this parameter to specify that instead of the default dimensions, the embed code should use a height appropriate for your application layout. If the `maxWidth` parameter is also provided, the player may be shorter than the `maxHeight` in order to not violate the maximum width. Acceptable values are `72` to `8192`, inclusive.                                                                                                                                                                                                                                                                                                |
| `maxResults`             | `unsigned 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](https://developers.google.com/youtube/v3/docs/videos/list#myRating) parameter, but it is not supported for use in conjunction with the [id](https://developers.google.com/youtube/v3/docs/videos/list#id) parameter. Acceptable values are `1` to `50`, inclusive. The default value is `5`.                                                                                                                                                                                                                                                                                                                                                           |
| `maxWidth`               | `unsigned integer` The **maxWidth** parameter specifies the maximum width of the embedded player returned in the [player.embedHtml](https://developers.google.com/youtube/v3/docs/videos#player.embedHtml) property. You can use this parameter to specify that instead of the default dimensions, the embed code should use a width appropriate for your application layout. If the `maxHeight` parameter is also provided, the player may be narrower than `maxWidth` in order to not violate the maximum height. Acceptable values are `72` to `8192`, inclusive.                                                                                                                                                                                                                                                                                                     |
| `onBehalfOfContentOwner` | `string` This parameter can only be used in a properly [authorized request](https://developers.google.com/youtube/v3/guides/authentication). **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.                          |
| `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](https://developers.google.com/youtube/v3/docs/videos/list#myRating) parameter, but it is not supported for use in conjunction with the [id](https://developers.google.com/youtube/v3/docs/videos/list#id) parameter.                                                                                                                                                                                                                                                                                                                                    |
| `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](https://developers.google.com/youtube/v3/docs/videos/list#chart) parameter. The parameter value is an ISO 3166-1 alpha-2 country code.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| `videoCategoryId`        | `string` The **videoCategoryId** parameter identifies the [video category](https://developers.google.com/youtube/v3/docs/videoCategories) for which the chart should be retrieved. This parameter can only be used in conjunction with the [chart](https://developers.google.com/youtube/v3/docs/videos/list#chart) parameter. By default, charts are not restricted to a particular category. The default value is `0`.                                                                                                                                                                                                                                                                                                                                                                                                                                                 |

### Request body

Do not provide a request body when calling this method.

## Response

If successful, this method returns a response body with the following structure:  

```objective-c
{
  "kind": "youtube#videoListResponse",
  "etag": etag,
  "nextPageToken": string,
  "prevPageToken": string,
  "pageInfo": {
    "totalResults": integer,
    "resultsPerPage": integer
  },
  "items": [
    video Resource
  ]
}
```

### Properties

The following table defines the properties that appear in this resource:

|                                                                        Properties                                                                         ||
|---------------------------|--------------------------------------------------------------------------------------------------------------------------------|
| `kind`                    | `string` Identifies the API resource's type. The value will be `youtube#videoListResponse`.                                    |
| `etag`                    | `etag` The Etag of this resource.                                                                                              |
| `nextPageToken`           | `string` The token that can be used as the value of the `pageToken` parameter to retrieve the next page in the result set.     |
| `prevPageToken`           | `string` The token that can be used as the value of the `pageToken` parameter to retrieve the previous page in the result set. |
| `pageInfo`                | `object` The `pageInfo` object encapsulates paging information for the result set.                                             |
| pageInfo.`totalResults`   | `integer` The total number of results in the result set.                                                                       |
| pageInfo.`resultsPerPage` | `integer` The number of results included in the API response.                                                                  |
| `items[]`                 | `list` A list of videos that match the request criteria.                                                                       |

## Errors

The following table identifies error messages that the API could return in response to a call to this method. See the [error message](https://developers.google.com/youtube/v3/docs/errors) documentation for more detail.

|     Error type     |     Error detail     |                                                                                                Description                                                                                                 |
|--------------------|----------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `badRequest (400)` | `videoChartNotFound` | The requested video chart is not supported or is not available.                                                                                                                                            |
| `forbidden (403)`  | `forbidden`          | The request is not properly authorized to access video file or processing information. Note that the `fileDetails`, `processingDetails`, and `suggestions` parts are only available to that video's owner. |
| `forbidden (403)`  | `forbidden`          | The request cannot access user rating information. This error may occur because the request is not properly authorized to use the `myRating` parameter.                                                    |
| `notFound (404)`   | `videoNotFound`      | The video that you are trying to retrieve cannot be found. Check the value of the request's `id` parameter to ensure that it is correct.                                                                   |

## Try it!

Use the APIs Explorer to call this API and see the API request and response.