Videos: list

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:
  • dislike: Mostrar solo videos calificados por el usuario autenticado con "No me gusta"
  • like: Mostrar solo videos calificados por el usuario autenticado con "Me gusta"
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
*/

// Call set_include_path() as needed to point to your client library.
require_once 'Google/Client.php';
require_once 'Google/Service/YouTube.php';
session_start();

/*
 * You can acquire an OAuth 2.0 client ID and client secret from the
 * Google Developers Console <https://console.developers.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);

if (isset($_GET['code'])) {
  if (strval($_SESSION['state']) !== strval($_GET['state'])) {
    die('The session state did not match.');
  }

  $client->authenticate($_GET['code']);
  $_SESSION['token'] = $client->getAccessToken();
  header('Location: ' . $redirect);
}

if (isset($_SESSION['token'])) {
  $client->setAccessToken($_SESSION['token']);
}

// Check to ensure that the access token was successfully acquired.
if ($client->getAccessToken()) {
  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['token'] = $client->getAccessToken();
    } 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.