¿Se garantiza que los códigos de YouTube siempre tengan 11 caracteres?

18

Estoy escribiendo código para validar las URL de YouTube. ¿Se garantiza que la identificación de video, como oHg5SJYRHA0, siempre tiene exactamente 11 caracteres de longitud, o puede ser a veces más corta o más larga? ¿Hay alguna documentación oficial sobre esto?

nitro2k01
fuente
Al menos hasta que se realicen 5.20e + 19 videos;)
@Jason maldito seas! ¿Qué calculadora estás usando?
2
El máximo. La combinación en 11 caracteres parece un gran número, pero probablemente no será posible en unos pocos años, ya que el número de videos subidos a YouTube aumenta exponencialmente ... Así que NO cuente con eso si está creando no por uno. año sitios web.
jave.web
@ jave.web Llegas tarde a la fiesta. Estaba pidiendo fuentes autorizadas, no alguien para discutir si 64 ^ 11 es un gran número. Podría haber otras razones por las que algunos códigos de video pueden tener un formato diferente al de quedarse sin ellos. Por ejemplo, puede haber videos heredados con códigos más cortos, o videos que se almacenan en un sistema separado, con un formato de código completamente diferente. La respuesta aceptada contiene la respuesta más autorizada que he visto hasta ahora.
nitro2k01
mi comentario aún se aplica, especialmente en 2014, y solo respalda la respuesta aceptada;)
jave.web

Respuestas:

20

Probablemente se quedarán con 11 caracteres durante mucho tiempo. Cada personaje tiene 64 valores posibles:

2 * 26 letras (minúsculas y mayúsculas) + 10 para los dígitos, + 2 para los caracteres "_" y "-"

2 * 26 + 10 + 2 = 64

Luego 11 caracteres en total:

64 ^ 11 = 73786976294838210000 (o más o menos "73,7e18")

Por supuesto, no se utilizarán todas las combinaciones, dependiendo de su algoritmo, pero probablemente no lo cambiarán pronto. Sin embargo, las palabras de un desarrollador de YouTube indican que no garantizan:

No veo en ninguna parte de la documentación donde nos comprometemos oficialmente a una longitud estándar de 11 caracteres para los identificadores de video de YouTube. Es una de esas cosas donde tenemos una implementación actual, y puede permanecer así indefinidamente. Pero no estamos ofreciendo ningún compromiso oficial con eso, así que proceda bajo su propio riesgo.

Un mejor enfoque, aunque uno más involucrado, sería tomar cada identificación de video y hacer una solicitud a la API de YouTube para ver si es válida. Por ejemplo, hacer un HTTP GET para

http://gdata.youtube.com/feeds/api/videos/VIDEO_ID

y vea si obtiene una respuesta HTTP 200. Por supuesto, si adopta ese enfoque, los videos que se han eliminado de YouTube volverán a ser inválidos (lo que puede o no ser lo que desea) y los videos que se hayan subido recientemente a YouTube también podrían volver a ser inválidos.

Saludos, -Jeff Posnick, Equipo API de YouTube

Fuente: https://web.archive.org/web/20120306111051/http://osdir.com/ml/youtube-api-gdata/2009-10/msg00237.html

Vidar S. Ramdal
fuente
1
@ Diego: Si vas a citar tantos dígitos, también puedes mostrar los últimos: 64 ^ 11 = 2 ^ 66 = 73,786,976,294,838,206,464 Con un redondeo de 0,5, la forma de ingeniería es 73,787e18.
Estoy de acuerdo con @ user60228, no muestre dígitos completos a menos que muestre precisión o detalles completos de lo contrario. Es interesante para algunos de nosotros saber la verdad matemática completa. (PD ¡Gran respuesta!)
Xonatron
4

Algo que vale la pena señalar, un par de URL apuntan al mismo video. Por ejemplo, en los videos publicados a continuación, todos son "¡Los Premios Nobel 2015!" por Scishow:

Además, si cambia el último carácter a Co Deso también funcionará.

Criticofus
fuente
1
Es posible que haya encontrado una falla. Aparentemente, cada video tiene al menos 4 URL. En el caso de que mencione A, B, C y D, todos apuntan a A. Además, E, F, G y H apuntan a E; I, J, K y L apuntan a I. Y así sucesivamente. Y eso es cierto para cada video que probé.
JP de la Torre
Parece que este ya no es el caso al publicar este comentario.
nitro2k01
-2

Sí, siempre tienen 11 caracteres.


fuente
3
¿Tienes alguna información para respaldar eso?
ale