Saltar al contenido

¿Cómo validar los ID de video de youtube?

Solución:

Consulte este hilo para obtener información oficial.

puedes presionar esto: http://gdata.youtube.com/feeds/api/videos/VIDEO_ID (La página ahora devuelve: “Ya no está disponible”).

y determinar si el video es válido según la respuesta

No hay forma de que pueda verificar la validez de la ID con RegEx, ya que no todos los valores alfanuméricos son ID válidos.

PD: estoy bastante seguro de que vi “guiones” en las ID de video

pps “subrayado” también es un carácter válido: http://www.youtube.com/watch?v=nrGk0AuFd_9

[a-zA-Z0-9_-]{11} es la expresión regular (fuente), pero no hay garantía de que el video esté allí incluso si la expresión regular es válida

Con la v3 de la API de YouTube lo logré llamando a:

GET https://www.googleapis.com/youtube/v3/videos?part=id&id=Tr5WcGSDqDg&key={YOUR_API_KEY}

Esto devuelve algo como:

{
  "kind": "youtube#videoListResponse",
  "etag": ""dc9DtKVuP_z_ZIF9BZmHcN8kvWQ/P2cGwKgbH6EYZAGxiKCZSH8R1KY"",
  "pageInfo": {
    "totalResults": 1,
    "resultsPerPage": 1
  },
  "items": [{
    "kind": "youtube#video",
    "etag": ""dc9DtKVuP_z_ZIF9BZmHcN8kvWQ/Rgd0_ApwigPcJHVX1Z2SIQ5FJtU"",
    "id": "Tr5WcGSDqDg"
  }]
}

Entonces puedes hacer una verificación:

if(json.hasOwnProperty('pageInfo') && json.pageInfo.totalResults === 1) {
   if(items[0].kind==='youtube#video') {
      //valid video ID
   }
}

Si está buscando una solución más rápida y escalable, diría que use REGEX con algunos registros / reserva para que los errores sean proactivos si YouTube cambia su ID en el futuro.

He estado trabajando con la API de YouTube durante un tiempo y ahora lidiando con millones de videos, al recorrerlos, encontré que este es el más ideal:

/^[A-Za-z0-9_-]{11}$/

Un ejemplo más detallado dice en PHP:

public static function validId($id) {
    return preg_match('/^[a-zA-Z0-9_-]{11}$/', $id) > 0;
}
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *