Os códigos do YouTube têm sempre 11 caracteres?

18

Estou escrevendo um código para validar os URLs do YouTube. É garantido que o ID do vídeo, como oHg5SJYRHA0, sempre tenha exatamente 11 caracteres ou, às vezes, pode ser menor ou maior? Existe alguma documentação oficial sobre isso?

nitro2k01
fonte
Pelo menos até 5.20e + 19 vídeos são feitos;)
@ Jason maldito você! que calculadora você está usando!
2
O max. A combinação de 11 caracteres parece ser um número grande, mas provavelmente não será suficiente em alguns anos, já que o número de vídeos do YouTube enviados aumenta exponencialmente ... Portanto , NÃO conte com isso se você estiver criando um não-por-um- sites do ano.
jave.web
@ jave.web Você está atrasado para a festa. Eu estava pedindo fontes autorizadas, não alguém para discutir se 64 ^ 11 é um número grande. Pode haver outros motivos pelos quais alguns códigos de vídeo podem ter um formato diferente do que ficar sem eles. Por exemplo, pode haver vídeos herdados com códigos mais curtos ou vídeos armazenados em um sistema separado, com um formato de código completamente diferente. A resposta aceita contém a resposta mais autorizada que já vi até agora.
Nitro2k01
o meu comentário ainda se aplica, especialmente em 2014, e apenas suporta a resposta aceita;)
jave.web

Respostas:

20

Eles provavelmente ficarão com 11 caracteres por muito tempo. Cada personagem tem 64 valores possíveis:

2 * 26 letras (minúsculas e maiúsculas) + 10 para os dígitos, + 2 para caracteres "_" e "-"

2 * 26 + 10 + 2 = 64

Em seguida, 11 caracteres no total:

64 ^ 11 = 73786976294838210000 (ou mais ou menos "73,7e18")

É claro que nem todas as combinações serão usadas, dependendo do algoritmo, mas provavelmente elas não serão alteradas tão cedo. Palavras de um desenvolvedor do YouTube afirmam que elas não garantem:

Não vejo nenhum lugar na documentação em que nos comprometemos oficialmente a um tamanho padrão de 11 caracteres para os IDs de vídeo do YouTube. É uma daquelas coisas em que temos uma implementação atual e pode permanecer assim indefinidamente. Mas não estamos oferecendo nenhum compromisso oficial com isso, portanto, prossiga por seu próprio risco.

Uma abordagem melhor, embora mais envolvida, seria pegar cada ID de vídeo e fazer uma solicitação à API do YouTube para verificar se ela é válida. Por exemplo, faça um HTTP GET para

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

e veja se você recebe uma resposta HTTP 200. Obviamente, se você seguir essa abordagem, os vídeos que foram removidos do YouTube voltarão como inválidos (o que você pode ou não ser o que você deseja) e os vídeos que foram enviados muito recentemente para o YouTube também poderão voltar como inválidos.

Saúde, -Jeff Posnick, Equipe da API do YouTube

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

Vidar S. Ramdal
fonte
1
@ Diego: Se você citar tantos dígitos, também poderá mostrar os últimos: 64 ^ 11 = 2 ^ 66 = 73.786.976.294.838.206.464 Com arredondamento 0,5, o formulário de engenharia é 73.787e18.
Concordo com @ user60228, não mostre dígitos completos, a menos que você mostre precisão ou detalhes completos. Apenas interessante para alguns de nós conhecer a verdade matemática completa. (PS: Ótima resposta!)
Xonatron
4

Algo que vale a pena destacar: alguns URLs apontam para o mesmo vídeo. Por exemplo, nos vídeos postados abaixo, todos são "Os Prêmios Nobel de 2015!" de Scishow:

Além disso, se você alterar o último caractere para Cou Disso também funcionará.

Criticofus
fonte
1
Você pode ter encontrado uma falha. Aparentemente, todo vídeo tem pelo menos 4 URLs. No caso de você mencionar A, B, C e D, todos apontam para A. Além disso, E, F, G e H apontam para E; Eu, J, K e L aponto para I. E assim por diante. E isso é verdade para todos os vídeos que testei.
JP de la Torre
Parece não ser mais o caso quando da publicação deste comentário.
Nitro2k01 12/11/2018
-2

Sim, eles sempre têm 11 caracteres.


fonte
3
Você tem alguma informação para fazer backup disso?
ale