Muestra una lista de los videos que coinciden con los parámetros de solicitud de la API. Pruébalo ahora y ve un ejemplo.
Solicitud
Solicitud HTTP
GET https://www.googleapis.com/youtube/v3/videos
Parámetros
La tabla a continuación muestra los parámetros compatibles con esta consulta. Todos los parámetros mencionados son parámetros de consulta.
Parámetros | ||
---|---|---|
Parámetros obligatorios | ||
part |
string El parámetro part especifica una lista separada por comas de una o más propiedades de recursos de video que se incluirán en la respuesta de la API. Los nombres de part que se pueden incluir en el valor del parámetro son id , snippet , contentDetails , fileDetails , player , processingDetails , recordingDetails , statistics , status , suggestions y topicDetails .Si el parámetro identifica una propiedad que contiene propiedades secundarias, estas se incluirán en la respuesta. Por ejemplo, en un recurso de video , la propiedad snippet contiene las propiedades channelId , title , description , tags y categoryId . Por lo tanto, si estableces part=snippet , la respuesta de la API contendrá todas esas propiedades. |
|
Filtros (especifica exactamente uno de los siguientes parámetros) | ||
chart |
string El parámetro chart identifica el gráfico que deseas recuperar.Los valores aceptables son:
|
|
id |
string El parámetro id especifica una lista separada por comas de ID de video de YouTube para los recursos que se están recuperando. En un recurso video , la propiedad id especifica el ID de video. |
|
myRating |
string Este parámetro solo se puede utilizar en una solicitud autorizada debidamente. Establece el valor de este parámetro en like o dislike para indicarle a la API que muestre solo videos calificados por el usuario autenticado con "Me gusta" o "No me gusta".Los valores aceptables son:
|
|
Parámetros opcionales | ||
maxResults |
unsigned integer El parámetro maxResults especifica el número máximo de elementos que se debe mostrar en el conjunto de resultados.Nota: Este parámetro es compatible para usarse junto con el parámetro myRating , pero no es compatible para usarse junto con el parámetro id . Los valores aceptables son 1 a 50 , ambos inclusive. El valor predeterminado es 5 . |
|
onBehalfOfContentOwner |
string Este parámetro solo se puede utilizar en una solicitud autorizada debidamente. Nota: Este parámetro está dirigido exclusivamente a socios de contenido de YouTube. El parámetro onBehalfOfContentOwner indica que las credenciales de autorización de la solicitud identifican a un usuario de CMS de YouTube que actúa en nombre del propietario de contenido especificado en el valor del parámetro. Este parámetro está dirigido a socios de contenido de YouTube que poseen y administran muchos canales de YouTube diferentes. Permite a los propietarios de contenido autenticarse una vez y tener acceso a todos los datos de sus videos y canales, sin tener que proporcionar credenciales de autenticación para cada canal. La cuenta de CMS con la que se autentica el usuario debe estar relacionada con el propietario del contenido de YouTube especificado. |
|
pageToken |
string El parámetro pageToken identifica una página específica en el conjunto de resultados que se debe mostrar. En una respuesta de la API, las propiedades nextPageToken y prevPageToken identifican otras páginas que se podrían recuperar.Nota: Este parámetro es compatible para usarse junto con el parámetro myRating , pero no es compatible para usarse junto con el parámetro id . |
|
regionCode |
string El parámetro regionCode indica a la API que seleccione un gráfico de video disponible en la región especificada. Si se utiliza este parámetro, también debe establecerse el gráfico. El valor del parámetro es un código de país ISO 3166-1 alpha-2. |
|
videoCategoryId |
string El parámetro videoCategoryId identifica la categoría de video para la cual se debe recuperar el gráfico. Este parámetro solo se puede utilizar junto con el parámetro chart . De forma predeterminada, los gráficos no se restringen a una categoría en particular. El valor predeterminado es 0 . |
Cuerpo de la solicitud
No proporciones un cuerpo de solicitud cuando invoques este método.
Respuesta
Si se aplica correctamente, este método muestra un cuerpo de respuesta con la siguiente estructura:
{ "kind": "youtube#videoListResponse", "etag": etag, "nextPageToken": string, "prevPageToken": string, "pageInfo": { "totalResults": integer, "resultsPerPage": integer }, "items": [ video Resource ] }
Propiedades
La siguiente tabla define las propiedades que aparecen en este recurso:
Propiedades | |
---|---|
kind |
string Tipo de recurso de la API. El valor será youtube#videoListResponse . |
etag |
etag Etag de este recurso. |
nextPageToken |
string Token que se puede utilizar como valor del parámetro pageToken para recuperar la página siguiente en el conjunto de resultados. |
prevPageToken |
string Token que se puede utilizar como valor del parámetro pageToken para recuperar la página anterior en el conjunto de resultados. |
pageInfo |
object El objeto pageInfo contiene información de paginación para el conjunto de resultados de búsqueda. |
pageInfo.totalResults |
integer Número total de resultados en el conjunto de resultados. |
pageInfo.resultsPerPage |
integer Número de resultados incluidos en la respuesta de la API. |
items[] |
list Lista de videos que coinciden con los criterios de la solicitud. |
Ejemplos
Nota: Es posible que los siguientes ejemplos de código no representen todos los lenguajes de programación admitidos. Consulta la documentación sobre bibliotecas cliente para obtener una lista de los lenguajes admitidos.
PHP
This code sample demonstrates how to add tags into an existing video.
The code sample below calls the API's youtube.videos.list
method with id
parameter set to videoId to get the video object. Using this video object, the sample gets the list of tags and appends new tags at the end of this list. Finally, the code calls youtube.videos.update
method with updated video object to persist these changes on YouTube.
En este ejemplo se utiliza la biblioteca cliente PHP.
<?php /** * This sample adds new tags to a YouTube video by: * * 1. Retrieving the video resource by calling the "youtube.videos.list" method * and setting the "id" parameter * 2. Appending new tags to the video resource's snippet.tags[] list * 3. Updating the video resource by calling the youtube.videos.update method. * * @author Ibrahim Ulukaya */ /** * Library Requirements * * 1. Install composer (https://getcomposer.org) * 2. On the command line, change to this directory (api-samples/php) * 3. Require the google/apiclient library * $ composer require google/apiclient:~2.0 */ if (!file_exists(__DIR__ . '/vendor/autoload.php')) { throw new \Exception('please run "composer require google/apiclient:~2.0" in "' . __DIR__ .'"'); } require_once __DIR__ . '/vendor/autoload.php'; session_start(); /* * You can acquire an OAuth 2.0 client ID and client secret from the * Google API Console <https://console.cloud.google.com/> * For more information about using OAuth 2.0 to access Google APIs, please see: * <https://developers.google.com/youtube/v3/guides/authentication> * Please ensure that you have enabled the YouTube Data API for your project. */ $OAUTH2_CLIENT_ID = 'REPLACE_ME'; $OAUTH2_CLIENT_SECRET = 'REPLACE_ME'; $client = new Google_Client(); $client->setClientId($OAUTH2_CLIENT_ID); $client->setClientSecret($OAUTH2_CLIENT_SECRET); $client->setScopes('https://www.googleapis.com/auth/youtube'); $redirect = filter_var('http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'], FILTER_SANITIZE_URL); $client->setRedirectUri($redirect); // Define an object that will be used to make all API requests. $youtube = new Google_Service_YouTube($client); // Check if an auth token exists for the required scopes $tokenSessionKey = 'token-' . $client->prepareScopes(); if (isset($_GET['code'])) { if (strval($_SESSION['state']) !== strval($_GET['state'])) { die('The session state did not match.'); } $client->authenticate($_GET['code']); $_SESSION[$tokenSessionKey] = $client->getAccessToken(); header('Location: ' . $redirect); } if (isset($_SESSION[$tokenSessionKey])) { $client->setAccessToken($_SESSION[$tokenSessionKey]); } // Check to ensure that the access token was successfully acquired. if ($client->getAccessToken()) { $htmlBody = ''; try{ // REPLACE this value with the video ID of the video being updated. $videoId = "VIDEO_ID"; // Call the API's videos.list method to retrieve the video resource. $listResponse = $youtube->videos->listVideos("snippet", array('id' => $videoId)); // If $listResponse is empty, the specified video was not found. if (empty($listResponse)) { $htmlBody .= sprintf('<h3>Can\'t find a video with video id: %s</h3>', $videoId); } else { // Since the request specified a video ID, the response only // contains one video resource. $video = $listResponse[0]; $videoSnippet = $video['snippet']; $tags = $videoSnippet['tags']; // Preserve any tags already associated with the video. If the video does // not have any tags, create a new list. Replace the values "tag1" and // "tag2" with the new tags you want to associate with the video. if (is_null($tags)) { $tags = array("tag1", "tag2"); } else { array_push($tags, "tag1", "tag2"); } // Set the tags array for the video snippet $videoSnippet['tags'] = $tags; // Update the video resource by calling the videos.update() method. $updateResponse = $youtube->videos->update("snippet", $video); $responseTags = $updateResponse['snippet']['tags']; $htmlBody .= "<h3>Video Updated</h3><ul>"; $htmlBody .= sprintf('<li>Tags "%s" and "%s" added for video %s (%s) </li>', array_pop($responseTags), array_pop($responseTags), $videoId, $video['snippet']['title']); $htmlBody .= '</ul>'; } } catch (Google_Service_Exception $e) { $htmlBody .= sprintf('<p>A service error occurred: <code>%s</code></p>', htmlspecialchars($e->getMessage())); } catch (Google_Exception $e) { $htmlBody .= sprintf('<p>An client error occurred: <code>%s</code></p>', htmlspecialchars($e->getMessage())); } $_SESSION[$tokenSessionKey] = $client->getAccessToken(); } elseif ($OAUTH2_CLIENT_ID == 'REPLACE_ME') { $htmlBody = <<<END <h3>Client Credentials Required</h3> <p> You need to set <code>\$OAUTH2_CLIENT_ID</code> and <code>\$OAUTH2_CLIENT_ID</code> before proceeding. <p> END; } else { // If the user hasn't authorized the app, initiate the OAuth flow $state = mt_rand(); $client->setState($state); $_SESSION['state'] = $state; $authUrl = $client->createAuthUrl(); $htmlBody = <<<END <h3>Authorization Required</h3> <p>You need to <a href="$authUrl">authorize access</a> before proceeding.<p> END; } ?> <!doctype html> <html> <head> <title>Video Updated</title> </head> <body> <?=$htmlBody?> </body> </html>
Errores
En la tabla a continuación se identifican los mensajes de error que la API podría mostrar en respuesta a una invocación a este método. Consulta la documentación sobre mensajes de error para obtener más información.
Tipo de error | Detalle del error | Descripción |
---|---|---|
badRequest |
videoChartNotFound |
El gráfico del video solicitado no es compatible o no está disponible. |
forbidden |
forbidden |
La solicitud no puede acceder a la información de calificación del usuario. Este error puede deberse a que la solicitud no está debidamente autorizada para utilizar el parámetro myRating . |
¡Pruébalo!
Utiliza el Explorador de la API para invocar este método con datos en directo y ver la solicitud y la respuesta de la API.