Este documento está orientado a programadores que estén desarrollando aplicaciones cliente que interactúen con YouTube. En este documento se complementa la información incluida en el protocolo de la guía del desarrollador, así como en las guías específicas de cada lenguaje para los desarrolladores de Java y PHP.
En este documento se indican los distintos tipos de feeds que puedes recuperar con el API de datos de YouTube. También se incluyen diagramas en los que se explican cómo desplazarse entre los distintos feeds. Por ejemplo, los diagramas muestran que el feed de las listas de reproducción de un usuario contiene direcciones URL asociadas a datos y listas de reproducción individuales, como el perfil de un usuario. Los diagramas también indican cómo desplazarse de un feed a otro. Por último, en este documento se definen los parámetros utilizados en las solicitudes del API de datos de YouTube, así como las etiquetas XML devueltas en una respuesta del API. Para los desarrolladores de Java y PHP, las etiquetas XML se corresponden directamente con una propiedad de un objeto VideoEntry, ProfileEntry u otro tipo de objeto.
El API de datos de YouTube ofrece distintas vistas (o proyecciones) de los datos disponibles en el API. En la Guía del desarrollador y en los ejemplos de este documentos se utiliza la proyección api, que admite todas las etiquetas definidas en la sección de definiciones de elementos XML de este documento.
La mayoría de los desarrolladores que hagan uso de este documento utilizarán la proyección api. Sin embargo, si se van a desarrollar aplicaciones para móviles, se puede sustituir "api" por "mobile" en cualquiera de las solicitudes de ejemplo descritas en la documentación del API. De forma similar, si se prefiere utilizar la proyección base, más adecuada para los lectores de feeds, se puede sustituir "api" por "base" en cualquiera de las solicitudes de ejemplo descritas en la documentación del API.
En la tabla siguiente se describen los valores de las proyecciones disponibles:
| Nombre de la proyección | Descripción |
|---|---|
api |
Esta proyección muestra feeds compatibles con todos los elementos XML definidos en este documento, incluidas todas las etiquetas relevantes en los esquemas de YouTube y Media RSS. Todas las propiedades contienen texto sin formato, no texto HTML. |
base |
Esta proyección muestra feeds Atom básicos sin ningún elemento de extensión. Sus propiedades <atom:summary> y <atom:content> contienen código HTML codificado según la entidad. |
mobile |
Esta proyección admite la mayoría de los elementos XML definidos en esta documentación y se debe utilizar cuando los desarrolladores deseen crear aplicaciones para móviles. |
Puedes recuperar los siguientes tipos de feeds del API de datos de YouTube:
El API permite recuperar cualquiera de estos feeds sin necesidad de autenticación. Sin embargo, en algunos casos las solicitudes autenticadas permiten recuperar información adicional. Por ejemplo, si envías una solicitud autenticada para obtener la lista de los vídeos que ha subido un usuario, el feed contendrá tanto vídeos privados como vídeos rechazados o pendientes. Los vídeos privados, pendientes y rechazados no aparecerán en las respuestas a una solicitud de API sin autenticar ni a una solicitud de vídeos subidos por cualquier usuario que no sea el usuario autenticado actualmente.
Para añadir o actualizar vídeos, listas de reproducción, suscripciones, puntuaciones, comentarios o cualquier otra cosa, deberás autenticar todas las solicitudes, incluidas las solicitudes GET, con una clave de desarrollador mediante el método AuthSub o ClientLogin.
Los feeds de vídeos devuelven un grupo de entradas de vídeos. Cada entrada de vídeo contiene a su vez información sobre un vídeo específico del conjunto de resultados del feed de vídeos. El API de datos de YouTube permite recuperar los siguientes tipos de feeds de vídeos:
El API devuelve un feed de vídeos en respuesta a una solicitud de búsqueda de vídeos. Un feed de vídeos puede contener un máximo de 999 entradas. Para recuperar los resultados de la búsqueda, envía una solicitud de API a la siguiente URL:
http://gdata.youtube.com/feeds/projection/videos
Los resultados de las búsquedas pueden utilizar cualquiera de los parámetros de consulta definidos en la sección de referencia de parámetros de consulta de este documento, a excepción del parámetro time. Por ejemplo, la siguiente URL solicitaría todos los vídeos relacionados con la consulta "skateboarding dog," empezando por el resultado de búsqueda 21º y devolviendo 10 resultados:
http://gdata.youtube.com/feeds/api/videos?
vq=skateboarding+dog
&start-index=21
&max-results=10
El feed de vídeos relacionados contiene una lista de vídeos relacionados con otro vídeo. YouTube selecciona de forma algorítmica el conjunto de vídeos relacionados.
Cada entrada de vídeo de una respuesta del API contiene una serie de etiquetas <link>. La etiqueta <link> que tiene http://gdata.youtube.com/schemas/2007/#video.related como valor del atributo rel identifica la URL que se utilizará para recuperar otros vídeos relacionados con esa entrada de vídeo. (El atributo href de la etiqueta <link> identifica la URL.)
<link rel="http://gdata.youtube.com/schemas/2007#video.related"
type="application/atom+xml"
href="http://gdata.youtube.com/feeds/api/videos/ZTUVgYoeN_b/related"/>
Un feed de vídeos relacionados puede contener un máximo de 100 vídeos.
Un feed de respuestas en vídeo contiene vídeos creados explícitamente como respuestas a otros vídeos. Del mismo modo que se pueden crear vídeos como respuesta en vídeo a vídeos específicos, puede haber vídeos que no tengan ninguna respuesta en vídeo.
Cada entrada de vídeo de una respuesta del API contiene una serie de etiquetas <link>. La etiqueta <link> que tiene http://gdata.youtube.com/schemas/2007/#video.responses como valor del atributo rel identifica la URL que se utilizará para recuperar respuestas en vídeo correspondientes a esa entrada de vídeo. (El atributo href de la etiqueta <link> identifica la URL que se muestra en el siguiente ejemplo.)
<link rel="http://gdata.youtube.com/schemas/2007#video.responses"
type="application/atom+xml"
href="http://gdata.youtube.com/feeds/api/videos/ZTUVgYoeN_b/responses"/>
Los feeds estándar contienen listas de vídeos que reflejan el comportamiento del usuario de YouTube, como feeds de los vídeos más vistos o más valorados, o que han sido seleccionados por el personal de YouTube, como feeds de vídeos móviles y últimos vídeos destacados. Muchos de estos feeds aparecen en la ficha Vídeos del sitio web de YouTube.
Para recuperar un feed estándar, envía una solicitud GET HTTP a la URL asociada a ese feed. En la tabla siguiente se identifica la URL asociada a cada feed estándar:
| Nombre | ID del feed | Ejemplo |
|---|---|---|
| Más valorados | top_rated | http://gdata.youtube.com/feeds/api/standardfeeds/top_rated |
| Superfavoritos | top_favorites | http://gdata.youtube.com/feeds/api/standardfeeds/top_favorites |
| Más vistos | most_viewed | http://gdata.youtube.com/feeds/api/standardfeeds/most_viewed |
| Más recientes | most_recent | http://gdata.youtube.com/feeds/api/standardfeeds/most_recent |
| Más comentados | most_discussed | http://gdata.youtube.com/feeds/api/standardfeeds/most_discussed |
| Más enlazados | most_linked | http://gdata.youtube.com/feeds/api/standardfeeds/most_linked |
| Con más respuestas | most_responded | http://gdata.youtube.com/feeds/api/standardfeeds/most_responded |
| Últimos destacados | recently_featured | http://gdata.youtube.com/feeds/api/standardfeeds/recently_featured |
| Vídeos para teléfonos móviles | watch_on_mobile | http://gdata.youtube.com/feeds/api/standardfeeds/watch_on_mobile |
El API permite recuperar feeds estándar específicos de una región mediante la inserción de una ID de región en la URL del feed estándar. La siguiente URL muestra el formato de las direcciones URL que se deben utilizar para recuperar feeds estándar específicos de una región:
http://gdata.youtube.com/feeds/api/standardfeeds/regionID/feedID
Por ejemplo, para recuperar una lista de los vídeos más valorados en Japón, se debería enviar una solicitud GET HTTP a la siguiente URL:
http://gdata.youtube.com/feeds/api/standardfeeds/JP/top_rated
Nota: no se encuentran disponibles versiones del feed estándar watch_on_mobile específicas de una región.
En la siguiente tabla se identifican los países para los que el API de datos de YouTube admite feeds localizados y la ID de región (regionID) asociada a cada país:
| País | ID de región |
|---|---|
| Australia | AU |
| Brasil | BR |
| Canadá | CA |
| Francia | FR |
| Alemania | DE |
| Gran Bretaña | GB |
| Holanda | NL |
| Hong Kong | HK |
| Irlanda | IE |
| Italia | IT |
| Japón | JP |
| México | MX |
| Nueva Zelanda | NZ |
| Polonia | PL |
| Rusia | RU |
| Corea del Sur | KR |
| España | ES |
| Taiwán | TW |
| Estados Unidos | US |
Todos los feeds estándar admiten el parámetro de consulta time, que permite restringir el contenido del feed a los resultados relevantes del día, la semana o el mes anterior. Por ejemplo, para recuperar los vídeos más valorados del día anterior, debes enviar una solicitud GET HTTP a la siguiente URL:
http://gdata.youtube.com/feeds/api/standardfeeds/top_rated?time=today
El feed de vídeos favoritos recupera una lista de los vídeos que un determinado usuario ha marcado explícitamente como favoritos. En el sitio web de YouTube, un usuario puede ver y editar su lista de vídeos favoritos en la página de su cuenta y los vídeos favoritos de un usuario pueden verlos también otros usuarios de YouTube.
Para solicitar un feed de los vídeos favoritos del usuario conectado actualmente, envía una solicitud GET HTTP a la URL que aparece a continuación. Nota: Para realizar esta solicitud, deberás incluir un token de autenticación en el encabezado de la solicitud HTTP Authorization. El token de autenticación permite que YouTube identifique al usuario.
http://gdata.youtube.com/feeds/api/users/default/favorites
Para solicitar un feed de los vídeos favoritos de otro usuario, envía una solicitud GET HTTP a la URL que aparece a continuación. Ten en cuenta que esta solicitud no requiere autenticación.
http://gdata.youtube.com/feeds/api/users/username/favorites
Debes sustituir el texto username de la URL anterior por el nombre de usuario de YouTube del usuario en cuestión.
El feed de vídeos favoritos devuelve un máximo de 50 entradas. Te recomendamos que apliques una paginación al feed mediante los parámetros de consulta start-index y max-results para optimizar la latencia y el tamaño de la respuesta. El valor recomendado para max-results es 10, valor que genera una respuesta con unos 60 KB de datos.
Un feed de lista de reproducción contiene información sobre un máximo de 200 vídeos que se pueden ver uno tras otro. Un usuario puede ver y editar su lista de listas de reproducción en la página de su cuenta. Las listas de reproducción de un usuario pueden verlas también otros usuarios de YouTube. Además, los usuarios pueden modificar listas de reproducción específicas añadiendo vídeos a esas listas de reproducción o eliminando vídeos de ellas.
Una lista de reproducción puede ser pública o privada. El API permite recuperar listas de reproducción públicas con o sin autenticación. Sin embargo, sólo podrás recuperar una lista de reproducción privada de un usuario que esté debidamente autenticado y autorizado para ver esa lista de reproducción.
Antes de recuperar un feed de lista de reproducción, es probable que recuperes primero un feed de las listas de reproducción de un usuario, que contendrá una lista de las listas de reproducción creadas por ese usuario. Cada una de las entradas del feed de listas de reproducción del usuario definirá una sola lista de reproducción. (Por otra parte, un feed de lista de reproducción describe los vídeos incluidos en una sola lista de reproducción.) Cada una de las entradas del feed de listas de reproducción del usuario contendrá una etiqueta <gd:feedLink> que identificará la URL que permite recuperar el feed de esa lista de reproducción.
<gd:feedLink rel='http://gdata.youtube.com/schemas/2007#playlist'
href='http://gdata.youtube.com/feeds/api/playlists/PLAYLIST_ID'/>
Nota: en lugar del término PLAYLIST_ID, la URL real contendrá una ID que representará la identificación exclusiva de la lista de reproducción.
El feed de listas de reproducción de un usuario contiene una lista de las listas de reproducción creadas por ese usuario. Si solicitas el feed de listas de reproducción del usuario autenticado actualmente, ese feed contendrá listas de reproducción tanto públicas como privadas. Sin embargo, si envías una solicitud sin autenticar o solicitas listas de reproducción creadas por un usuario que no sea el usuario actualmente autenticado, el feed sólo contendrá listas de reproducción públicas.
En un feed de listas de reproducción, cada entrada (entry) contiene información sobre una lista de reproducción, entre la que se incluye el título, la descripción y el autor de la lista de reproducción. La etiqueta <gd:feedLink> de la entrada identifica la URL que permite recuperar el feed de lista de reproducción, que incluye información sobre los vídeos de esa lista de reproducción.
Para solicitar un feed de las listas de reproducción del usuario conectado actualmente, envía una solicitud GET HTTP a la URL que aparece a continuación. Nota: Para realizar esta solicitud, deberás incluir un token de autenticación en el encabezado de la solicitud HTTP Authorization. El token de autenticación permite que YouTube identifique al usuario.
http://gdata.youtube.com/feeds/api/users/default/playlists
Para solicitar un feed de las listas de reproducción de otro usuario, envía una solicitud GET HTTP a la URL que aparece a continuación. Ten en cuenta que esta solicitud no requiere autenticación.
http://gdata.youtube.com/feeds/api/users/username/playlists
Debes sustituir el texto username de la URL anterior por el nombre de usuario de YouTube del usuario en cuestión.
El feed de suscripciones de un usuario contiene una lista de los canales, los vídeos favoritos y las consultas a las que está suscrito ese usuario.
Para solicitar un feed de las suscripciones del usuario conectado actualmente, envía una solicitud GET HTTP a la URL que aparece a continuación. Nota: Para realizar esta solicitud, deberás incluir un token de autenticación en el encabezado de la solicitud HTTP Authorization. El token de autenticación permite que YouTube identifique al usuario.
http://gdata.youtube.com/feeds/api/users/default/subscriptions
Para solicitar un feed de las suscripciones de otro usuario, envía una solicitud GET HTTP a la URL que aparece a continuación. Ten en cuenta que esta solicitud no requiere autenticación.
http://gdata.youtube.com/feeds/api/users/username/subscriptions
Debes sustituir el texto username de la URL anterior por el nombre de usuario de YouTube del usuario en cuestión.
En un feed de suscripciones, cada entrada (entry) contiene información sobre una suscripción. Cada entrada contiene las siguientes etiquetas de clave:
La etiqueta <gd:feedLink> de la entrada identifica la URL que permite recuperar los vídeos de la suscripción.
El valor del atributo scheme de una de las etiquetas <category> de la entrada será http://gdata.youtube.com/schemas/2007/subscriptiontypes.cat. El atributo term de esa etiqueta indica si la entrada describe una suscripción a un canal (term="channel"), a la lista de vídeos favoritos de otro usuario (term="favorites") o a los vídeos que coincidan con determinadas palabras clave (term="query").
Si se trata de una suscripción al canal o a la lista de vídeos favoritos de otro usuario, la etiqueta <yt:username> identificará al usuario al que pertenezca el canal o la lista de vídeos favoritos.
Si se trata de una suscripción a consultas por palabra clave, el elemento <yt:queryString> contendrá el término de consulta objeto de la suscripción.
Cada entrada de vídeo contiene una etiqueta <gd:comments>, que incluye la URL a la que se enviarán las solicitudes del API que se deberán recuperar o añadir a la lista de comentarios del vídeo. El ejemplo de XML que aparece a continuación permite comprobar cómo aparecerá esta URL en un feed de vídeos:
<feed>
<entry>
...
<media:group>
...
</media:group>
<gd:comments>
<gd:feedLink href='http://gdata.youtube.com/feeds/api/videos/VIDEO_ID/comments'/>
</gd:comments>
</entry>
</feed>
Cada entrada del feed de comentarios contiene información sobre un comentario. Cada comentario tiene un autor, un título y un contenido.
Un perfil de usuario contiene la información que ese usuario ha incluido en su página de perfil de YouTube.
Para solicitar el perfil del usuario conectado actualmente, envía una solicitud GET HTTP a la URL que aparece a continuación. Nota: Para realizar esta solicitud, deberás incluir un token de autenticación en el encabezado de la solicitud HTTP Authorization. El token de autenticación permite que YouTube identifique al usuario.
http://gdata.youtube.com/feeds/api/users/default
Para solicitar el perfil de otro usuario, envía una solicitud GET HTTP a la URL que aparece a continuación. Ten en cuenta que esta solicitud no requiere autenticación.
http://gdata.youtube.com/feeds/api/users/username
Debes sustituir el texto username de la URL anterior por el nombre de usuario de YouTube del usuario en cuestión. Según el tipo de respuesta del API de YouTube que utilices, los nombres de usuario aparecerán en la etiqueta <name> o en la etiqueta <yt:username>.
Nota: Aunque muchas respuestas del API contienen información sobre el feed de respuestas y una lista de entradas, la solicitud de recuperación de un perfil sólo contiene una entrada. De ahí que la etiqueta raíz de la respuesta del API correspondiente a esta solicitud sea <entry>.
El feed de contactos de un usuario incluye todos los contactos del usuario especificado.
Para solicitar la lista de contactos del usuario conectado actualmente, envía una solicitud GET HTTP a la URL que aparece a continuación. Nota: Para realizar esta solicitud, deberás incluir un token de autenticación en el encabezado de la solicitud HTTP Authorization. El token de autenticación permite que YouTube identifique al usuario.
http://gdata.youtube.com/feeds/api/users/default/contacts
Para solicitar la lista de contactos de otro usuario, envía una solicitud GET HTTP a la URL que aparece a continuación. Ten en cuenta que esta solicitud no requiere autenticación.
http://gdata.youtube.com/feeds/api/users/username/contacts
Debes sustituir el texto username de la URL anterior por el nombre de usuario de YouTube del usuario en cuestión.
Los contactos se pueden clasificar como amigos (Friends) o familiares (Family).
Cada entrada y feed utiliza etiquetas <link rel="relationshipID"> y elementos <gd:feedLink rel="relationshipID"> que contienen enlaces a entradas o feeds relacionados. Por lo general, una etiqueta <link> identifica una relación entre feeds relacionados, pero no anidados. Por otra parte, una etiqueta <gd:feedLink> identifica a un feed que podría estar anidado con la respuesta original de no ser porque ese anidamiento provocaría un aumento excesivo del tamaño del feed.
Estas etiquetas identifican URL que te permitirán implementar funciones de API sin codificar URL en tu aplicación. Por ejemplo, el siguiente elemento <link>, que podría aparecer en una entrada de vídeo, proporciona un enlace a un feed que contiene respuestas en vídeo para esa entrada.
<link rel="http://gdata.youtube.com/schemas/2007#video.responses"
type="application/atom+xml"
href="http://gdata.youtube.com/feeds/api/videos/UwOA8H5Vaak/responses"/>
Del mismo modo, el siguiente elemento <gd:feedLink> podría aparecer en una entrada de perfil de usuario. Esta etiqueta identifica la URL que permitiría recuperar un feed de los contactos de ese usuario.
<gd:feedLink
rel="http://gdata.youtube.com/schemas/2007#user.contacts"
href="http://gdata.youtube.com/feeds/api/users/liz/contacts"/>
En los casos de uso incluidos en la Guía del desarrollador se explica la forma de desplazarse entre los distintos feeds. Además, el siguiente diagrama muestra las interconexiones existentes entre los feeds del API de datos de YouTube. Las flechas continuas designan elementos <link> y las flechas discontinuas designan elementos <gd:feedLink>. Las flechas azules designan enlaces <link rel="related">. Una entrada de suscripción puede contener una etiqueta <gd:feedLink> que apunte a un determinado tipo de feed según el tipo de suscripción que describa esa entrada.
El último término de cada círculo representa el tipo de entradas de Google Data de un feed determinado. Por ejemplo, un feed de suscripciones contendrá entradas del tipo "suscription" y un feed de vídeos contendrá entradas del tipo "video".

En esta sección se explican los códigos de respuesta HTTP que devuelve YouTube para distintos tipos de solicitudes del API.
Un código de respuesta 200 indica que YouTube ha procesado correctamente una solicitud GET HTTP de recuperación de un feed.
Un código de respuesta 400 identifica una solicitud errónea. Por ejemplo, recibirás un código de respuesta 400 si envías una solicitud a una URL incorrecta o incluyes en la solicitud un parámetro no admitido o inexistente. En el contenido de la respuesta del API se explicará el motivo por el que el API ha devuelto un código de respuesta 400.
Subida basada en navegador
200: El API devuelve un código de respuesta 200 si subes correctamente los metadatos de un vídeo. En la sección Subida de metadatos de vídeos de la guía del desarrollador se explica este proceso de forma más detallada.
301: Si el usuario sube un archivo de vídeo directamente a YouTube a través del formulario de tu sitio, YouTube enviará un mensaje de redirección 301 al navegador del usuario, que hará que el navegador solicite y cargue la URL que hayas especificado mediante el parámetro nexturl en el formulario de subida. (Consigue más información sobre el formulario de subida.) YouTube añadirá a esa URL las variables indicadas a continuación, que tendrás que extraer para ofrecer un servicio adecuado al usuario.
Subida directa
201: El API devuelve un código de respuesta 201 si el vídeo se sube correctamente.
400 (Solicitud errónea): Un código de respuesta 400 indica que la solicitud no tenía un formato correcto o contenía datos no válidos. Por ejemplo, el API devolverá un código de respuesta 400 si tu solicitud contiene XML de formato incorrecto o si intentas enviar palabras clave que incluyan caracteres no válidos.
El API devuelve los códigos de respuesta indicados a continuación para las solicitudes de adición de recursos, tales como puntuaciones, comentarios, respuestas en vídeo, reclamaciones, vídeos favoritos, listas de reproducción, entradas de listas de reproducción, suscripciones y contactos.
201 (Creado): Un código de respuesta 201 indica que se ha procesado correctamente una solicitud POST HTTP de adición de una puntuación, un comentario, una reclamación, una respuesta en vídeo, una suscripción, una lista de reproducción o un contacto.
400 (Solicitud errónea): Un código de respuesta 400 indica que la solicitud no tenía un formato correcto o contenía datos no válidos. Por ejemplo, el API devolverá un código de respuesta 400 si tu solicitud contiene XML de formato incorrecto o si intentas enviar una puntuación de "16" para un vídeo, cuando la puntuación debe estar comprendida entre 1 y 5. En el contenido de la respuesta del API se explicará el motivo por el que el API ha devuelto un código de respuesta 400.
El API devuelve los códigos de respuesta indicados a continuación para las solicitudes de actualización de recursos, tales como vídeos, listas de reproducción, entradas de listas de reproducción y contactos.
200 (Correcto): Un código de respuesta 200 indica que YouTube ha procesado correctamente una solicitud PUT HTTP de actualización de un recurso.
400 (Solicitud errónea): Un código de respuesta 400 indica que la solicitud no tenía un formato correcto o contenía datos no válidos. En el contenido de la respuesta del API se explicará el motivo por el que el API ha devuelto un código de respuesta 400.
El API devuelve los códigos de respuesta indicados a continuación para las solicitudes de eliminación de recursos, tales como vídeos, respuestas en vídeo, vídeos favoritos, listas de reproducción, entradas de listas de reproducción, suscripciones y contactos.
200 (Correcto): Un código de respuesta 200 indica que YouTube ha procesado correctamente una solicitud DELETE HTTP de eliminación de un recurso.
401 (Sin autorización): Un código de respuesta 401 indica que una solicitud no contenía un encabezado Authorization, que el formato del encabezado Authorization no era válido o que el token de autenticación proporcionado en el encabezado no era válido.
403 (Prohibido): Un código de respuesta 403 indica que se ha enviado una solicitud que no estaba correctamente autenticada para la operación solicitada.
404 (No encontrado): Un código de respuesta 404 indica que se ha intentado modificar un recurso inexistente. Por ejemplo, recibirás un código de respuesta 404 si intentas eliminar una suscripción, pero has especificado una URL incorrecta para esa suscripción.
El API puede devolver también los siguientes códigos de respuesta:
401 (Sin autorización): Un código de respuesta 401 indica que una solicitud no contenía un encabezado Authorization, que el formato del encabezado Authorization no era válido o que el token de autenticación proporcionado en el encabezado no era válido.
403 (Prohibido): Un código de respuesta 403 indica que se ha enviado una solicitud que no estaba correctamente autenticada para la operación solicitada.
500 (Error interno): Un código de respuesta 500 indica que YouTube ha experimentado un error al procesar una solicitud. Puedes probar a enviar de nuevo la solicitud más adelante.
501 (Sin implementar): Un código de respuesta 501 indica que se ha intentado ejecutar una operación no admitida como, por ejemplo, recuperar una lista de puntuaciones o actualizar una reclamación.
503 (Servicio no disponible): Un código de respuesta 503 indica que no se ha podido acceder al API de datos de YouTube. Puedes probar a enviar de nuevo la solicitud más adelante.
Para buscar vídeos, envía una solicitud GET HTTP a la siguiente URL, añadiendo los parámetros de consulta apropiados a tu solicitud:
http://gdata.youtube.com/feeds/api/videos
Por ejemplo, una solicitud enviada a la siguiente URL buscará el segundo conjunto de los 10 vídeos subidos recientemente que coincidan con el término de consulta "football", pero no con "soccer":
http://gdata.youtube.com/feeds/api/videos?
vq=football+-soccer
&orderby=published
&start-index=11
&max-results=10
El API de datos de YouTube admite los siguientes parámetros de consulta de Google Data estándar.
| Nombre | Definición |
|---|---|
| alt | El parámetro alt especifica el formato del feed que se va a devolver. Los valores válidos de este parámetro son atom, rss y json. El valor predeterminado es atom (en este documento sólo se explica el formato de las respuestas Atom). |
| author | El parámetro author restringe la búsqueda a los vídeos subidos por un determinado usuario de YouTube. En la sección sobre vídeos subidos por un usuario específico se explica este parámetro de forma más detallada. |
| max-results | El parámetro max-results especifica el número máximo de resultados que se deben incluir en el conjunto de resultados. Este parámetro funciona junto con el parámetro start-index para determinar los resultados que se deben devolver. Por ejemplo, para solicitar el segundo conjunto de 10 resultados (es decir, los resultados 11 a 20), deberás establecer el parámetro max-results en 10 y el parámetro start-index en 11. El valor predeterminado de este parámetro para todas las API de datos de Google es 25 y el valor máximo es 50. Sin embargo, para mostrar listas de vídeos, te recomendamos que establezcas el parámetro max-results en 10. |
| start-index | El parámetro start-index permite especificar el índice del primer resultado coincidente que se deberá incluir en el conjunto de resultados. Este parámetro utiliza un índice de base 1, lo que significa que el primer resultado es 1, el segundo es 2 y así sucesivamente. Este parámetro trabaja en combinación con el parámetro max-results para determinar qué resultados se devolverán. Por ejemplo, para solicitar el segundo conjunto de 10 resultados (es decir, los resultados 11 a 20), deberás establecer el parámetro start-index en 11 y el parámetro max-results en 10. |
Consulta la referencia del protocolo de las API de datos de Google para obtener más información sobre funciones estándar del API de datos de Google o sobre estos parámetros específicos.
Además de los parámetros de consulta de Google Data, el API de datos de YouTube define los siguientes parámetros de consulta específicos del API. Estos parámetros sólo están disponibles en feeds de listas de reproducción y vídeos.
| Nombre | Definición | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| vq | El parámetro vq especifica un término de consulta para una búsqueda. YouTube buscará todos los metadatos de los vídeos que coincidan con el término. Los metadatos de los vídeos incluyen títulos, palabras clave, descripciones, nombres de usuario de los autores y categorías. Ten en cuenta que a todos los espacios, las comillas y otros signos de puntuación del valor del parámetro se les debe aplicar un formato de escape URL. Para buscar una frase exacta, escriba la frase entre comillas dobles. Por ejemplo, para buscar vídeos que coincidan con la frase "spy plane", establece el parámetro vq en %22spy+plane%22. Tu solicitud puede utilizar los operadores booleanos NOT (-) y OR (|) para excluir vídeos o buscar vídeos asociados a uno de los distintos términos de búsqueda. Por ejemplo, para buscar vídeos que coincidan con "boating" o "sailing", establece el parámetro vq en boating%7Csailing. (Ten en cuenta que se debe aplicar un formato de escape URL al carácter de barra vertical.) De forma similar, para buscar vídeos que coincidan con "boating" o "sailing" pero no con "fishing", establece el parámetro vq en "boating&7Csailing+-fishing". |
||||||||
| orderby | El parámetro orderby permite especificar el valor que se utilizará para ordenar vídeos en el conjunto de resultados de la búsqueda. Los valores válidos de este parámetro son relevance, published, viewCount y rating. Además, puedes solicitar los resultados más relevantes para un idioma en particular estableciendo el valor de parámetro en relevance_lang_languageCode, donde languageCode es un código de idioma de dos letras ISO 639-1. (Utiliza los valores zh-Hans para chino simplificado y zh-Hant para chino tradicional.) Además, ten en cuenta que los resultados en otros idiomas se obtendrán si presentan un alto nivel de relevancia con el término de consulta de la búsqueda. El valor predeterminado de este parámetro es relevance para un feed de resultados de búsqueda. Para un feed de lista de reproducción, el orden predeterminado se basa en la posición de cada vídeo en la lista de reproducción. En el caso de un feed de listas de reproducción o suscripciones de un usuario, el orden predeterminado es arbitrario. |
||||||||
| format | El parámetro format permite especificar en qué formato deben estar disponibles los vídeos. Tu solicitud podrá especificar cualquiera de los formatos siguientes:
| ||||||||
| lr | El parámetro lr permite restringir la búsqueda de vídeos que tengan el título, la descripción o las palabras clave en un idioma específico. Los valores válidos del parámetro lr son códigos de idioma de dos letras ISO 639-1. También puedes utilizar los valores zh-Hans para chino simplificado y zh-Hant para chino tradicional. Este parámetro también se puede utilizar para solicitar cualquier feed de vídeos que no sea un feed estándar. | ||||||||
| racy | El parámetro racy permite incluir contenido restringido y contenido estándar en el conjunto de resultados de una búsqueda. Los valores válidos de este parámetro son include y exclude. De forma predeterminada, se excluye el contenido restringido. Las entradas de feeds de los vídeos que incluyen contenido restringido presentan un elemento <yt:racy> adicional. | ||||||||
| restriction | El parámetro restriction identifica la dirección IP que se debe utilizar para filtrar vídeos que sólo se pueden reproducir en países específicos. De forma predeterminada, el API excluye los vídeos que no se pueden reproducir en el país desde el que se envían las solicitudes del API. Esta restricción se basa en la dirección IP de la aplicación del cliente. Para solicitar vídeos reproducibles desde un equipo específico, incluye el parámetro "restriction" en tu solicitud y establece como valor del parámetro la dirección IP del equipo en el que se reproducirán los vídeos, por ejemplo restriction=255.255.255.255.Para solicitar vídeos reproducibles desde un país específico, incluye el parámetro "restriction" en tu solicitud y establece como valor del parámetro el código de país de dos letras ISO 3166 del país en el que se reproducirán los vídeos, por ejemplo restriction=DE. |
||||||||
| time | El parámetro time, que sólo está disponible para los feeds estándar top_rated, top_favorites, most_viewed, most_discussed, most_linked y most_responded, restringe la búsqueda para vídeos subidos dentro del período de tiempo especificado. Los valores válidos de este parámetro son today (1 día), this_week (7 días), this_month (1 mes) y all_time. El valor predeterminado de este parámetro es all_time. |
Los vídeos de YouTube se pueden clasificar de dos formas:
Cada vídeo se puede asociar a una categoría de YouTube predefinida como, por ejemplo, Comedia, Música, Noticias o Deportes. La categoría de un vídeo se identifica a través de la etiqueta <media:category> y la etiqueta <category>, para las que el valor del atributo scheme es http://gdata.youtube.com/schemas/2007/categories.cat.
Cada vídeo se puede asociar a un número arbitrario de palabras clave, que también se conocen como etiquetas. Las etiquetas de un vídeo se identifican con la etiqueta <media:keywords> en las solicitudes y respuestas del API. Las etiquetas de palabras clave también se identifican a través de las etiquetas <category>, para las que el valor del atributo scheme es http://gdata.youtube.com/schemas/2007/keywords.cat.
Cada vídeo también se puede asociar a un número arbitrario de etiquetas de desarrollador. Puedes utilizar etiquetas de desarrollador para buscar vídeos. No obstante, las etiquetas de desarrollador no aparecen en el sitio web de YouTube y no deben aparecer en tu aplicación. Las etiquetas de desarrollador de un vídeo se definen en las etiquetas <media:category> y <category>, para las que el valor del atributo scheme es http://gdata.youtube.com/schemas/2007/developertags.cat.
Consulta la guía del desarrollador para obtener más información sobre la asignación de etiquetas de desarrollador.
Utiliza la siguiente URL para recuperar vídeos de una categoría específica o etiquetados con una etiqueta de desarrollador o palabra clave específica:
http://gdata.youtube.com/feeds/api/videos/-/category_or_tag
El guión (-) de la URL es una notación del API de datos de Google estándar que indica que el resto de la URL se compone de una serie de una o varias etiquetas. Las siguientes directrices proporcionan más detalles sobre la solicitud de vídeos asociados a etiquetas o categorías específicas:
Si en tu solicitud se especifica una categoría y una o varias palabras clave o no se especifica una categoría pero sí varias palabras clave, separa el nombre de cada categoría y cada palabra clave con una barra inclinada. Por ejemplo, la siguiente URL permite solicitar vídeos relacionados con las palabras clave "bass" y "fishing":
http://gdata.youtube.com/feeds/api/videos/-/bass/fishing
Tu solicitud puede utilizar los operadores booleanos NOT (-) y OR (|) para excluir vídeos o buscar vídeos asociados a una de las distintas categorías o palabras clave. Por ejemplo, si quieres ver vídeos relacionados con "bass" y "music", el método más eficaz puede ser buscar vídeos asociados a la palabra clave "bass", pero no asociados a las palabras clave "fish" o "fishing", como se muestra en el ejemplo siguiente. (Buscar vídeos asociados a la categoría "Music" y la palabra clave "bass" (bajo) puede excluir vídeos instructivos sobre cómo tocar el bajo.)
http://gdata.youtube.com/feeds/api/videos/-/bass/-fish/-fishing
En el ejemplo siguiente se muestra cómo buscar vídeos de béisbol pertenecientes a la categoría "Sports" o "Howto". Los nombres de las categorías estás separados por el valor "%7C", que representa un carácter de barra vertical de codificación URL (|) que especifica que el vídeo debe estar asociado a una de las dos categorías:
http://gdata.youtube.com/feeds/api/videos/-/Sports%7CHowto/baseball
Escribe los nombres de las categorías en mayúsculas y los de las palabras clave en minúsculas. Por ejemplo, la siguiente consulta identifica vídeos asociados a la palabra clave "comedy" que no pertenecen a la categoría "Comedy":
http://gdata.youtube.com/feeds/api/videos/-/comedy/-Comedy
Si quieres realizar búsquedas de categorías o palabras clave automáticamente en función de la información de una respuesta del API, especifica el esquema como parte del nombre de categoría para diferenciar claramente las categorías de YouTube a partir de las etiquetas de palabras clave o las etiquetas del desarrollador. En las siguientes URL se indica cómo especificar el esquema en el nombre de la categoría:
http://gdata.youtube.com/feeds/api/videos/-/%7Bhttp%3A%2F%2Fgdata.youtube.com%2Fschemas%2F2007%2Fcategories.cat%7DNews http://gdata.youtube.com/feeds/api/videos/-/%7Bhttp%3A%2F%2Fgdata.youtube.com%2Fschemas%2F2007%2Fkeywords.cat%7Ddog http://gdata.youtube.com/feeds/api/videos/-/%7Bhttp%3A%2F%2Fgdata.youtube.com%2Fschemas%2F2007%2Fdevelopertags.cat%7Dexample.com
Especifica el esquema, tal como se explica en el elemento anterior, si quieres solicitar vídeos asociados a una etiqueta de desarrollador en particular.
El API de datos de YouTube utiliza etiquetas de diversos esquemas XML. En la siguiente tabla aparecen los distintos esquemas que el API utiliza, el prefijo de espacio de nombre asociado a cada esquema y la URL de espacio de nombre de cada esquema.
| Esquema | Prefijo de espacio de nombre | URL de esquema |
|---|---|---|
| Formato de sindicación Atom | [Ninguno] - es el espacio de nombre predeterminado | http://www.w3.org/2005/Atom |
| Esquema de OpenSearch | openSearch | http://a9.com/-/spec/opensearchrss/1.0/ |
| Media RSS | media | http://search.yahoo.com/mrss/ |
| Esquema XML de YouTube | yt | http://gdata.youtube.com/schemas/2007 |
| Esquema de datos de Google | gd | http://schemas.google.com/g/2005 |
| GeoRSS | georss | http://www.georss.org/georss |
| Lenguaje de marcado geográfico | gml | http://www.opengis.net/gml |
| Atom Publishing Protocol | app | http://www.w3.org/2007/app |
En las tablas que aparecen a continuación se definen las etiquetas XML de cada uno de estos esquemas que aparecen en las solicitudes y respuestas del API. Cada tabla contiene la definición de una única etiqueta, y las etiquetas aparecen en orden alfabético según el esquema.
Junto a algunas etiquetas secundarias de las definiciones que se muestran a continuación pueden aparecer determinados símbolos. Estos símbolos y sus significados son los siguientes:
La etiqueta <author> contiene información sobre el usuario de YouTube a quien pertenece una parte de contenido de vídeo, una suscripción, una lista de vídeos favoritos, un contacto u otra entidad.
<author>
La etiqueta <category> especifica la categoría a la que pertenece la entrada.
Cuando la etiqueta <category> aparece como una subetiqueta de <feed> o <entry>, la etiqueta puede identificar el tipo de elemento descrito en cada entrada de feed. El valor del atributo scheme es http://schemas.google.com/g/2005#kind y el valor del atributo term indica si las entradas de feeds describen vídeos, enlaces de listas de reproducción, suscripciones, contactos u otro tipo de entidad.
Cuando la etiqueta <category> aparece como una subetiqueta de <entry> y la entrada describe un vídeo, la etiqueta también puede especificar una palabra clave concreta o una categoría asociada a dicho vídeo. En este caso, el atributo scheme indica si el valor de atributo term hace referencia a una palabra clave o a una categoría.
En una solicitud de adición de una suscripción, la etiqueta <category> indica si el usuario se va a suscribir a un canal, a la lista de favoritos de otro usuario o a una etiqueta de palabra clave:
Si el usuario se va a suscribir a un canal, el valor del atributo term de la etiqueta <category> debe ser channel.
Si el usuario se va a suscribir a la lista de favoritos de otro usuario, el valor del atributo term de la etiqueta <category> debe ser favorites.
Si el usuario se va a suscribir a una etiqueta de palabra clave, el valor del atributo term de la etiqueta <category> debe ser query.
En una solicitud de adición o actualización de un contacto, la etiqueta
Si el contacto es un familiar, el valor del atributo term de la etiqueta <category> debe ser Family.
Si el contacto es un amigo, el valor del atributo term de la etiqueta <category> debe ser Friends.
| Nombre | Formato | Descripción |
|---|---|---|
| scheme | Complejo | El atributo scheme especifica un identificador uniforme de recursos (URI) que identifica el esquema de categorización asociado a la etiqueta.
|
| term | Complejo | El atributo term identifica el tipo de entidad contenida en una entrada de feed, o en una categoría o palabra clave asociada a un vídeo.
|
| label | Complejo | El atributo label especifica el nombre de secuencias de escape de la entidad de la categoría de YouTube a la que pertenece el vídeo. Este atributo sólo se incluye en las etiquetas <category> que hacen referencia a una categoría (y no a un tipo de entidad ni palabra clave). |
<category scheme='http://gdata.youtube.com/schemas/2007/subscriptiontypes.cat' term='channel'/>
La etiqueta <content> contiene el texto de un comentario o una descripción de un vídeo o una lista de reproducción. Si la etiqueta <content> aparece en una entrada de vídeo o de lista de reproducción, puede contener la misma descripción que aparece en la etiqueta <media:description>.
La etiqueta <content> es obligatoria en una solicitud de adición de un comentario.
<content type="text">Video comments are cool.</content>
La etiqueta <entry> incluye información sobre un vídeo, una lista de reproducción, una suscripción, un contacto u otra entidad. La etiqueta <entry> es la etiqueta raíz de todas las solicitudes del API de datos de YouTube para añadir (POST) o actualizar (PUT) datos.
<entry>
En una entrada de lista de reproducción o vídeo: id, published, updated, category*, title?, content?, link*, author?, media:group?, yt:description? (esta etiqueta sólo aparece en una entrada de lista de reproducción), yt:position? (esta etiqueta sólo aparece en una entrada de lista de reproducción), yt:statistics?, gd:comments?, gd:rating?, location?, yt:recorded?, georss:where?, app:control?
En un feed de comentarios: id, published, updated, category*, title?, content?, link*, author?
En un feed de listas de reproducción: id, published, updated, category*, title?, content?, link*, author?, yt:description?, gd:feedLink
En un feed de suscripciones: id, published, updated, category*, title?, content?, link*, author?, yt:username?, yt:queryString?, gd:feedLink
En una entrada de perfil: id, published, updated, category*, title?, content?, link*, author?, yt:age?, yt:books?, yt:company?, firstName?, yt:gender?, yt:hobbies?, lastName?, yt:location?, yt:movies?, yt:music?, yt:occupation?, yt:school?, yt:username?, yt:statistics?, media:thumbnail?, gd:feedLink*
Adición de vídeos favoritos: id
Adición y actualización de listas de reproducción: title, yt:description, yt:private
Adición y actualización de entradas de listas de reproducción: title, yt:description, yt:position
Adición de suscripciones: category, yt:username, yt:queryString
Adición y actualización de contactos: category, yt:username
Adición de comentarios: content
Adición de respuestas en vídeo: id
Adición de puntuaciones: gd:rating
Adición de reclamaciones: yt:description
La etiqueta <feed> es la etiqueta raíz de varios tipos de feeds del API de datos de YouTube, incluidos los feeds de vídeos, feeds de suscripciones, feeds de listas de reproducción, feeds de vídeos favoritos y feeds de contactos. Un feed contiene una serie de elementos <entry>. Cada elemento contiene información sobre un vídeo, una lista de reproducción, una suscripción u otra entidad individual.
<feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:media='http://search.yahoo.com/mrss/' xmlns:yt='http://gdata.youtube.com/schemas/2007' xmlns:gd='http://schemas.google.com/g/2005'>
id, updated, category*, title, logo?, link*, author?, generator, openSearch:itemsPerPage?, openSearch:startIndex?, openSearch:totalResults?, entry+
La etiqueta <generator> identifica el software utilizado para crear el feed. Esta información se debe utilizar con fines de depuración.
| Nombre | Formato | Descripción |
|---|---|---|
| version | Complejo | El atributo version especifica la versión del software utilizada para generar el feed. |
| uri | Complejo | El atributo uri especifica un identificador uniforme de recursos (URI) relacionado con el software de generación del feed. |
<generator version='beta' uri='http://gdata.youtube.com/'>YouTube data API</generator>
La etiqueta <id> especifica un identificador uniforme de recursos (URI) que identifica de forma permanente y exclusiva una entrada de vídeo o feed.
<id>http://gdata.youtube.com/feeds/api/users/andyland74/subscriptions/5c56f45db338111c</id>
La etiqueta <link> contiene una referencia IRI relevante para una entrada de feed o un feed.
| Nombre | Formato | Descripción |
|---|---|---|
| rel | Complejo | El atributo rel indica la forma en que el identificador uniforme de recursos (URI) especificado en el atributo href está relacionado con el conjunto de resultados actual:
|
| type | Complejo | El atributo type especifica el tipo de medio del recurso de la URL asociada. Los enlaces de una respuesta del API de datos de YouTube suelen hacer referencia a una página HTML u otra respuesta del API (feed de Atom). Por ello, los valores más comunes del atributo type son text/html y application/atom+xml. |
| href | Complejo | El atributo href especifica un identificador uniforme de recursos (URI) que identifica el recurso identificado en la etiqueta <link>. |
<link rel='http://gdata.youtube.com/schemas/2007#video.related' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/videos/AlPqL7IUT6M/related'/>
La etiqueta <logo> especifica una imagen que proporciona información visual al feed. El logotipo de un feed del API de datos de YouTube es el logotipo de YouTube.
<logo>http://www.youtube.com/img/pic_youtubelogo_123x63.gif</logo>
La etiqueta <name> contiene el nombre de usuario de YouTube del autor.
<name>andyland74</name>
La etiqueta <published> especifica la hora de creación de una entrada de feed.
<published>2007-10-15T15:39:34.000-07:00</published>
La etiqueta <title> proporciona un título legible para un feed o una entrada de un feed. Esta etiqueta también es obligatoria para añadir listas de reproducción y es opcional para añadir o actualizar entradas de listas de reproducción.
En una solicitud de adición o actualización de una lista de reproducción, la etiqueta <title> especifica el título de la lista de reproducción.
En una solicitud de adición o actualización de una entrada de lista de reproducción, la etiqueta <title> especifica el título personalizado que el usuario desea mostrar en la lista de reproducción en lugar del título real del vídeo. Si el usuario no proporciona un título personalizado, YouTube mostrará el título real del vídeo en la lista de reproducción.
<title type='text'>andyland74's Subscriptions</title>
La etiqueta <updated> especifica la hora de la última actualización de un feed o una entrada de feed.
<updated>2007-10-15T15:39:34.000-07:00</updated>
La etiqueta <uri> contiene una URL relacionada con elauthor.
<uri>http://gdata.youtube.com/feeds/api/users/andyland74</uri>
La etiqueta <openSearch:itemsPerPage> indica cuántas entradas aparecen en una respuesta del API.
<openSearch:itemsPerPage>25</openSearch:itemsPerPage>
La etiqueta <openSearch:startIndex> identifica el índice de base 1 del primer elemento devuelto en el feed.
<openSearch:startIndex>1</openSearch:startIndex>
La etiqueta <openSearch:totalResults> identifica el número de elementos del conjunto de resultados del feed. Ten en cuenta que este valor es una aproximación y que es posible que no represente el valor exacto. No debes utilizar este valor para crear enlaces de paginación. Utiliza las etiquetas <link rel="next"> y <link rel="prev"> para determinar si deseas mostrar enlaces de paginación o no:
<openSearch:totalResults>36</openSearch:totalResults>
La etiqueta <yt:age> especifica la edad del usuario, que se calcula en función de la fecha de nacimiento proporcionada en el perfil de YouTube del usuario. La etiqueta <yt:age> aparece en el feed de perfil de usuario.
<yt:age>33</yt:age>
La etiqueta <yt:books> identifica los libros favoritos del usuario introducidos en su perfil público de YouTube.
<yt:books>Catch-22</yt:books>
La etiqueta <yt:company> identifica la empresa en la que trabaja el usuario introducida por éste en su perfil público de YouTube.
<yt:company>Google</yt:company>
La etiqueta <yt:description> contiene la descripción introducida por un usuario para una lista de reproducción, una descripción personalizada introducida por un usuario para un vídeo de una lista de reproducción o el texto de una reclamación.
<yt:description>My new playlist description</yt:description>
La etiqueta <yt:duration> especifica la duración del vídeo en segundos.
| Nombre | Formato | Descripción |
|---|---|---|
| seconds | Complejo | El atributo seconds indica la duración de un vídeo en segundos. |
<yt:duration seconds='344'/>
La etiqueta <yt:firstName> especifica el nombre del usuario.
<yt:firstName>John</yt:firstName>
La etiqueta <yt:gender> especifica el sexo del usuario introducido en su perfil público de YouTube.
<yt:gender>m</yt:gender>
La etiqueta <yt:hobbies> identifica las aficiones del usuario introducidas en su perfil público de YouTube.
<yt:hobbies>Testing YouTube APIs</yt:hobbies>
La etiqueta <yt:hometown> identifica la ciudad natal del usuario introducida en su perfil público de YouTube.
<yt:hometown>Albany, GA</yt:hometown>
La etiqueta <yt:lastName> especifica el apellido del usuario.
<yt:lastName>Smith</yt:lastName>
En una entrada de vídeo, la etiqueta <yt:location> contiene texto descriptivo sobre el lugar del que se ha extraído el vídeo. En una entrada de perfil de usuario, la etiqueta <yt:location> identifica la ubicación geográfica del usuario introducida en su perfil público de YouTube.
<yt:location>US</yt:location>
La etiqueta <yt:movies> identifica las películas favoritas del usuario introducidas en su perfil público de YouTube.
<yt:movies>Aqua Teen Hungerforce</yt:movies>
La etiqueta <yt:music> identifica la música favorita del usuario introducida en su perfil público de YouTube.
<yt:music>Elliott Smith, the Kooks</yt:music>
La etiqueta <yt:noembed> especifica que un vídeo no se puede insertar en otros sitios web. Esta etiqueta se puede incluir en una solicitud de subida o actualización de los metadatos de un vídeo. De forma predeterminada, los vídeos se pueden insertar en otros sitios a menos que sean vídeos privados. Si una solicitud no incluye las etiquetas <yt:noembed> o <yt:private>, el vídeo se podrá insertar en otros sitios web.
<yt:noembed/>
La etiqueta <yt:occupation> identifica el empleo del usuario introducido en su perfil público de YouTube.
<yt:occupation>Technical writer</yt:occupation>
La etiqueta <yt:position> especifica el orden en el que aparecerá un vídeo en una lista de reproducción.
<yt:position>4</yt:position>
La etiqueta <yt:private> indica que un vídeo es privado, es decir, que ese vídeo no lo pueden ver todos los usuarios del sitio web de YouTube. Los vídeos privados sólo los pueden ver las personas específicamente elegidas por el propietario de cada vídeo. Esta etiqueta se puede incluir en una solicitud de subida o actualización de los metadatos de un vídeo. La etiqueta no debe especificar ningún valor. La presencia de esa etiqueta indica que el vídeo es privado. La ausencia de la etiqueta indica que todos los usuarios de YouTube podrán ver el vídeo. De forma predeterminada, todos los usuarios de YouTube pueden ver los vídeos. La ausencia de la etiqueta indica que todos los usuarios de YouTube podrán ver el vídeo. (De forma predeterminada, todos los usuarios de YouTube pueden ver los vídeos. Por tanto, para indicar que un vídeo es privado, se debe incluir la etiqueta <yt:private> en todas las solicitudes de subida o actualización del vídeo.)
<yt:private/>
La etiqueta <yt:queryString> especifica las palabras clave (cadena de consulta) asociadas a una suscripción.
<yt:queryString>Dog skateboarding</yt:queryString>
La etiqueta <yt:racy> indica si un vídeo incluye contenido restringido. Si solicitas un feed de vídeos, el feed sólo incluirá contenido restringido si la solicitud del API incluye el parámetro racy.
<yt:racy/>
La etiqueta <yt:recorded> especifica la fecha de grabación de un vídeo.
<yt:recorded>2003-08-03</yt:recorded>
La etiqueta <yt:relationship> indica si el usuario mantiene una relación, según la información que aparece en su perfil público de YouTube.
<yt:relationship>taken</yt:relationship>
La etiqueta <yt:school> identifica el centro de estudios al que asistió el usuario, según la información que aparece en su perfil público de YouTube.
<yt:school>University of North Carolina</yt:school>
La etiqueta <yt:state> contiene información que describe el estado de un vídeo. El valor de esta etiqueta y del atributo reasonCode permite conocer los motivos a los que se deben los problemas de subida de los vídeos que no se han podido subir o que se han rechazado tras el proceso de subida.
| Nombre | Formato | Descripción |
|---|---|---|
| name | Complejo | El atributo name identifica el estado de un vídeo no publicado. Los valores válidos de esta etiqueta son processing, rejected y failed. |
| reasonCode | Complejo | El atributo reasonCode proporciona información sobre los motivos por los que un vídeo no se ha podido subir o se ha rechazado tras el proceso de subida. La etiqueta <yt:state> no incluirá un atributo reasonCode si el valor del atributo name es processing. En la lista que aparece a continuación se identifican posibles valores del atributo reasonCode para los casos en los que un vídeo no se ha podido subir o se ha rechazado.
|
| helpUrl | Complejo | El parámetro helpUrl contiene un enlace a una página del Centro de asistencia de YouTube mediante la cual los desarrolladores y los propietarios de los vídeos pueden determinar los motivos por los que un vídeo se ha rechazado o no se ha podido subir. |
<yt:state name="rejected" reasonCode="tooLong" helpUrl="http://www.youtube.com/t/community_guidelines">Video is too long</yt:state>
La etiqueta <yt:statistics> proporciona datos estadísticos referentes a un vídeo o a un usuario. La etiqueta <yt:statistics> no se incluye en una entrada de vídeo si el valor del atributo viewCount es 0.
| Nombre | Formato | Descripción |
|---|---|---|
| viewCount | Complejo | Si el atributo viewCount hace referencia a una entrada de vídeo, indicará el número de veces que se ha visto ese vídeo. Si el atributo viewCount hace referencia a un perfil de usuario, indicará el número de veces que se ha visto ese perfil de usuario. |
| videoWatchCount | Complejo | El atributo videoWatchCount indica el número de vídeos que ha visto un usuario en YouTube. El atributo videoWatchCount sólo se incluye si aparece la etiqueta <yt:statistics> en una entrada de perfil de usuario. |
| subscriberCount | Complejo | El atributo subscriberCount indica el número de usuarios de YouTube que se han suscrito al canal de YouTube de un determinado usuario. El atributo subscriberCount sólo se incluye si aparece la etiqueta <yt:statistics> en una entrada de perfil de usuario. |
| lastWebAccess | Complejo | El atributo lastWebAccess indica la hora más reciente a la que un determinado usuario ha utilizado YouTube. |
| favoriteCount | Complejo | El atributo favoriteCount indica el número de usuarios de YouTube que han añadido un vídeo a su lista de vídeos favoritos. El atributo favoriteCount sólo se incluye si aparece la etiqueta <yt:statistics> en una entrada de vídeo. |
<yt:statistics viewCount='9' videoWatchCount='24' subscriberCount='1' lastWebAccess='2008-02-29T13:09:48.000-08:00'/>
La etiqueta <yt:status> identifica el estado de un contacto. Esta etiqueta sólo aparece si se van a recuperar los contactos del usuario actualmente autenticado. En la siguiente lista se identifican los valores válidos de esta etiqueta:
<yt:status>accepted</yt:status>
La etiqueta <yt:username> especifica un nombre de usuario de YouTube. En un feed de suscripciones o en una solicitud de adición de una suscripción, la etiqueta <yt:username> identifica al propietario de la lista de favoritos o del canal de YouTube correspondiente a la suscripción. En una entrada de perfil, la etiqueta <yt:username> identifica al usuario asociado al perfil. En una entrada de contacto de usuario, la etiqueta <yt:username> identifica al contacto del usuario conectado.
<yt:username>andyland74</yt:username>
La etiqueta <media:category> es una etiqueta de desarrollador o género que describe un recurso de vídeo. En la sección Lista de categorías de los vídeos subidos se identifican distintas categorías de vídeo de YouTube. Puedes asociar una categoría a un vídeo o asignar cada vídeo a una categoría de la lista.
También puedes asociar cada vídeo a una o varias palabras clave o categorías privadas mediante el esquema de categoría http://gdata.youtube.com/schemas/2007/developertags.cat. Consulta la sección Asignación de etiquetas de desarrollador del documento de protocolo para obtener más información sobre las etiquetas de desarrollador.
| Nombre | Formato | Descripción |
|---|---|---|
| label | Complejo | El atributo label especifica el nombre de secuencias de escape de la entidad de la categoría de YouTube a la que pertenece el vídeo. |
| scheme | Complejo | El atributo scheme especifica un identificador uniforme de recursos (URI) que identifica el esquema de categorización asociado a la etiqueta. |
<media:category label='Sports' scheme='http://gdata.youtube.com/schemas/2007/categories.cat'>Sports</media:category>
La etiqueta <media:content> especifica una URL y otro tipo de información referente a un vídeo.
| Nombre | Formato | Descripción |
|---|---|---|
| url | Complejo | El atributo url especifica la URL del objeto de medio. |
| type | Complejo | El atributo type especifica el tipo MIME del objeto de medio. |
| isDefault | Complejo | El atributo isDefault indica si la etiqueta <media:content> correspondiente identifica el recurso de medios predeterminado del grupo de medios. En una respuesta del API de datos de YouTube, el recurso de medios predeterminado es la URL del reproductor insertable (SWF) del vídeo. |
| expression | Complejo | El atributo expression indica si el objeto de vídeo representa una muestra del vídeo, la versión completa del mismo o una secuencia de vídeo en directo. Los correspondientes (y únicos) valores válidos de este atributo son sample, full y nonstop. |
| duration | Complejo | La etiqueta duration especifica la duración del vídeo en segundos. |
| yt:format | Complejo | El atributo yt:format especifica el formato de vídeo del objeto de vídeo descrito por el elemento <media:content>. En la lista que aparece a continuación se identifican los valores válidos de este atributo.
|
<media:content url='http://www.youtube.com/v/8aYQ_wjmriQ' type='application/x-shockwave-flash' medium='video' isDefault='true' expression='full' duration='166' yt:format='5'/>
La etiqueta <media:description> contiene el resumen o la descripción de un vídeo. Este campo es obligatorio en las solicitudes de subida o actualización de los metadatos de un vídeo. La descripción debe ser una frase, no una lista de palabras clave, y puede aparecer en los resultados de búsqueda. La descripción puede tener una longitud máxima de 5.000 caracteres y puede contener todos los caracteres UTF-8 válidos, excepto < y >.
| Nombre | Formato | Descripción |
|---|---|---|
| type | Complejo | El atributo type especifica el tipo de texto especificado en el valor de la etiqueta. Los feeds de contenido de YouTube requieren el uso de texto sin formato (type=plain). |
<media:description type="plain">Granny takes crocheting to the extreme during a rodeo and while surfing.</media:description>
La etiqueta <media:group> incluye metadatos sobre un recurso de vídeo.
<media:group>
media:title, media:description, media:keywords, media:category, media:content, media:player, media:thumbnail, yt:duration?, yt:private?, yt:noembed?
La etiqueta <media:keywords> incluye una lista de palabras o frases asociadas a un vídeo separadas por comas. Debes especificar al menos una palabra clave para cada uno de los vídeos de tu feed. Este campo puede tener una longitud máxima de 120 caracteres y puede contener todos los caracteres UTF-8 válidos, excepto < y <. La longitud máxima de cada palabra clave es de 25 caracteres.
| Nombre | Formato | Descripción |
|---|---|---|
| scheme | Texto | El atributo scheme especifica un identificador uniforme de recursos (URI) que identifica el esquema de categorización asociado a la etiqueta.
|
<media:keywords>rodeo, surfing, crochet</media:keywords>
La etiqueta <media:player> especifica una URL en la que se encuentra disponible el vídeo completo, que se puede ver a través de un reproductor de medios que se ejecuta en un navegador web. En una respuesta del API de datos de YouTube, la etiqueta <media:player> especifica la URL de la página del sitio web de YouTube en la que se reproduce el vídeo.
| Nombre | Formato | Descripción |
|---|---|---|
| url | Complejo | El atributo url identifica una URL que utiliza un reproductor de vídeo para mostrar el vídeo en una ventana del navegador. |
<media:player url='http://www.youtube.com/watch?v=8aYQ_wjmriQ'/>
La etiqueta <media:thumbnail> especifica la ubicación de una imagen que se puede utilizar para representar un vídeo en una lista de resultados de búsqueda. Un feed de vídeos puede hacer referencia a varias imágenes en miniatura y a varios tamaños de esas imágenes. Puedes seleccionar el tamaño de miniatura que sea más adecuado para tu interfaz de usuario.
| Nombre | Formato | Descripción |
|---|---|---|
| url | Complejo | El atributo url especifica la URL de la imagen en miniatura. |
| height | Complejo | El atributo height especifica la altura de la imagen en miniatura. |
| width | Complejo | El atributo width especifica el ancho de la imagen en miniatura. |
| time | Complejo | El atributo time especifica el momento del vídeo en el que aparece el fotograma mostrado en la imagen en miniatura. El valor del atributo se expresa mediante el protocolo Normal Play Time (NTP) de DSM-CC utilizado en RTSP. |
<media:thumbnail url='http://img.youtube.com/vi/8aYQ_wjmriQ/2.jpg' height='97' width='130' time='00:01:23'/>
La etiqueta <media:title> identifica el título del vídeo. Este campo puede tener una longitud máxima de 60 caracteres y puede contener todos los caracteres UTF-8 válidos, excepto < y >.
| Nombre | Formato | Descripción |
|---|---|---|
| type | Complejo | El atributo type especifica el tipo de texto especificado en el valor de la etiqueta. Los feeds de contenido de YouTube requieren el uso de texto sin formato (type=plain). |
<media:title type="plain">Extreme crocheting in high surf, rodeo</media:title>
La etiqueta <gd:comments> incluye un enlace al feed de comentarios de un vídeo.
<gd:comments>
La etiqueta <gd:feedLink> identifica un feed anidado de forma lógica. Por ejemplo, un feed de comentarios estará anidado de forma lógica debajo de una entrada de vídeo. Del mismo modo, el feed de una lista de reproducción estará anidado de forma lógica dentro de una entrada de lista de reproducción del feed de listas de reproducción de un usuario.
| Nombre | Formato | Descripción |
|---|---|---|
| rel | Complejo | El atributo rel indica la forma en que el identificador uniforme de recursos (URI) especificado en el atributo href está relacionado con el conjunto de resultados actual:
|
| href | Complejo | El atributo href especifica un identificador uniforme de recursos (URI) que identifica el recurso identificado en la etiqueta <link>. |
| gd:countHint | Complejo | El atributo gd:countHint especifica el número de entradas del feed relacionado. Por ejemplo, si la etiqueta <gd:feedLink> especifica un enlace al feed de comentarios de un vídeo, el atributo gd:countHint indicará el número de comentarios que tiene ese vídeo. |
<gd:feedLink href='http://gdata.youtube.com/feeds/api/videos/8aYQ_wjmxiQ/comments' countHint='0'/>
La etiqueta <gd:rating> especifica la puntuación que se le asigna a un vídeo (en una solicitud de adición de puntuación) o la puntuación media actual del vídeo basada en las puntuaciones globales de los usuarios de YouTube.
| Nombre | Formato | Descripción |
|---|---|---|
| min | Complejo | El atributo min especifica la puntuación mínima que se puede asignar a un vídeo. Este valor debe ser 1. |
| max | Complejo | El atributo max especifica la puntuación máxima que se puede asignar a un vídeo. Este valor debe ser 5. |
| numRaters | Complejo | El atributo numRaters indica el número de personas que han puntuado el vídeo. Este atributo no se utiliza en las solicitudes de adición de puntuaciones. |
| average | Complejo | El atributo average indica la puntuación media del vídeo. Este atributo no se utiliza en las solicitudes de adición de puntuaciones. |
<gd:rating min='1' max='5' numRaters='7773' average='4.75'/>
La etiqueta <georss:where> incluye información sobre una ubicación geográfica. Ten en cuenta que, si un vídeo tiene asociada una ubicación geográfica, deberás incluir esa información en las posteriores solicitudes de actualización de la información de ese vídeo. De lo contrario, la información de ubicación geográfica se eliminará.
<georss:where>
La etiqueta <gml:Point> contiene información sobre una ubicación geográfica específica. La proyección de puntos predeterminada es WGS84. Puedes especificar la ubicación geográfica de la que se ha extraído un vídeo en las solicitudes de subida o actualización de los metadatos de ese vídeo. Ten en cuenta que, si un vídeo tiene asociada una ubicación geográfica, deberás incluir esa información en las posteriores solicitudes de actualización de la información de ese vídeo. De lo contrario, la información de ubicación geográfica se eliminará.
<gml:Point>
La etiqueta <gml:pos> especifica las coordenadas de un punto geográfico. La proyección de puntos predeterminada es WGS84. Ten en cuenta que, si un vídeo tiene asociada una ubicación geográfica, deberás incluir esa información en las posteriores solicitudes de actualización de la información de ese vídeo. De lo contrario, la información de ubicación geográfica se eliminará.
<gml:pos>47.367 8.55</gml:pos>
La etiqueta <app:control> indica que un vídeo no se ha publicado. Esta etiqueta sólo aparece en el feed de subidas del usuario autenticado actualmente.
<app:control>
La etiqueta <app:draft> indica si un vídeo se encuentra en estado "borrador" o "no publicado". Esta etiqueta sólo se incluye para videos no publicados, por lo que su valor siempre es yes.
<app:draft>yes</app:draft>
La etiqueta <response> incluye la respuesta del API que devuelve YouTube a una solicitud de subida de los metadatos de un nuevo vídeo mediante la subida basada en navegador.
<response>
La etiqueta <token> aparece en la respuesta del API que devuelve YouTube a una solicitud de subida de los metadatos de un nuevo vídeo mediante la subida basada en navegador. El token debe estar incluido en la página que permite que el usuario suba el nuevo vídeo directamente a YouTube.
<token>AEwbFAQEvf3xox...</token>
La etiqueta <url> aparece en la respuesta del API que devuelve YouTube a una solicitud de subida de los metadatos de un nuevo vídeo mediante la subida basada en navegador. El formulario incluido en tu página web que puede utilizar el usuario para subir el archivo de vídeo a YouTube se enviará a esta URL.
<url>http://uploads.gdata.youtube.com/action/FormUpload/AEF3087AUD</url>
La etiqueta <code> indica el motivo por el que no se ha podido atender la solicitud del API. En la lista que aparece a continuación se identifican los posibles valores de la etiqueta <code> en función del valor de la etiqueta <domain> correspondiente.
yt:validation:
<code>required</code>
La etiqueta <domain> identifica el error por el que no se ha podido atender una solicitud del API. En la siguiente lista se identifican los posibles valores de la etiqueta <domain>:
Un error yt:validation informa de un problema relativo a un valor de elemento XML existente en una solicitud de inserción o actualización de una entrada. Las funciones del API que introducen o actualizan vídeos u otros datos pueden informar de errores yt:validation. Los errores de validación se suelen notificar a través del código de respuesta HTTP 400.
Un error yt:quota identifica un problema relativo a un uso irregular del API.
Un error yt:authentication identifica un problema relativo a una solicitud de ejecución de una función del API que requiere una autenticación de usuario que no se ha realizado correctamente. Los errores de autenticación se pueden identificar con los códigos de respuesta HTTP 401 o 403.
<domain>yt:validation</domain>
La etiqueta <error> contiene información sobre el error por el que no se ha podido atender una solicitud del API.
<error>
La etiqueta <errors> incluye una respuesta del API que explica los errores por los que no se ha podido atender la solicitud del API correspondiente.
<errors>
La etiqueta <location> proporciona información sobre el elemento de la solicitud que ha producido el error.
Si el valor de la etiqueta <domain> es yt:validation, la etiqueta <location> definirá la ubicación del error como una ruta Xpath que indica la etiqueta XML que ha causado el error en la solicitud. La ubicación Xpath se especifica en relación con la etiqueta <entry> de la solicitud.
Si el valor de la etiqueta <domain> es yt:quota y el valor de la etiqueta <code> es too_many_recent_calls, la respuesta del API no incluirá una etiqueta <location>.
Si el valor de la etiqueta <domain> es yt:quota y el valor de la etiqueta <code> es too_many_entries, la etiqueta <location> identificará el feed que ha causado el error.
Si el valor de la etiqueta <domain> es yt:authentication, la etiqueta <location> (en caso de que aparezca) identificará la causa del error de autenticación.
| Nombre | Formato | Descripción |
|---|---|---|
| type | Complejo | El atributo type proporciona contexto para el valor de la etiqueta <location>. El atributo type puede tener cualquiera de los valores indicados a continuación.
|
<location type='xpath'>media:group/media:title/text()</location>
En el documento de categorías de YouTube, que se puede descargar de la página http://gdata.youtube.com/schemas/2007/categories.cat, se identifican las categorías que se pueden utilizar para clasificar los vídeos. El documento de categorías es un archivo XML en el que se identifican las categorías y se indica si se pueden asignar nuevos vídeos a cada categoría y si es posible localizar cada una de las categorías en YouTube.
En el fragmento que aparece a continuación se muestran las entradas de las categorías "Entertainment" y "Nonprofit & Activism" tal como aparecían en el documento de categorías de YouTube el 2 de enero de 2008. Ten en cuenta que podía haber vídeos asignados a ambas categorías pero, en ese momento, sólo se podía localizar en YouTube la categoría "Entertainment". Tal como se muestra en el ejemplo, la presencia de la etiqueta <yt:browsable> indica que se puede localizar en YouTube la categoría correspondiente y la etiqueta <yt:assignable> indica que se pueden asignar nuevos vídeos a esa categoría. (No se pueden asignar nuevos vídeos a categorías que no estén marcadas como asignables con la etiqueta <yt:assignable>.)
<atom:category term='Entertainment' label='Entertainment'> <yt:browsable/> <yt:assignable/> </atom:category> <atom:category term='Nonprofit' label='Nonprofit & Activism'> <yt:assignable/> </atom:category>
En la solicitud de subida enviada por el API, el valor de la etiqueta <media:category> debe coincidir con el valor del atributo term de la etiqueta <atom:category> de la categoría correspondiente. En el siguiente ejemplo se indica cómo se debe utilizar la etiqueta <media:category> para asignar un nuevo vídeo a la categoría Nonprofit & Activism, que aparece en el fragmento de esquema anterior.
<media:category scheme="http://gdata.youtube.com/schemas/2007/categories.cat">Nonprofit</media:category>
Si vas a realizar una solicitud de búsqueda HTTP, debes seguir una serie de convenciones para que Google pueda traducir correctamente tu solicitud HTTP y generar una respuesta adecuada.
El esquema de URL HTTP especifica que una solicitud de URL HTTP sólo puede contener los caracteres que se indican a continuación.
Google utiliza caracteres reservados para descodificar URL y algunos caracteres especiales para solicitar funciones de búsqueda. En consecuencia, deberás aplicar un formato de escape URL a todos los caracteres no alfanuméricos incluidos en los valores de los parámetros de búsqueda.
Para aplicar un formato de escape URL a una cadena, debes convertir cada secuencia de caracteres de espacio en blanco en un signo más ("+") y sustituir todos los demás caracteres no alfanuméricos por el código hexadecimal que represente el valor de ese carácter. En la tabla que aparece a continuación se muestran los códigos hexadecimales de los caracteres reservados y especiales anteriormente mostrados. Se deberá aplicar un formato de escape URL a cada uno de estos caracteres en los valores de los parámetros de solicitud.
| Carácter | Código hexadecimal |
|---|---|
| $ | %24 |
| - | %2D |
| _ | %5F |
| . | %2E |
| + | %2B |
| ! | %21 |
| * | %2A |
| " | %22 |
| ' | %27 |
| ( | %28 |
| ) | %29 |
| ; | %3B |
| / | %2F |
| ? | %3F |
| : | %3A |
| @ | %40 |
| = | %3D |
| & | %26 |
| | | %7C |
Examples
| Cadena original | Cadena con formato de escape URL |
|---|---|
| punch&judy | punch%26judy |
| O'Reilly | O%27Reilly |
Para obtener información adicional sobre el escape URL, consulta los documentos RFC 2396 y W3C.