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?
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?
Respostas:
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
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 C
ou D
isso também funcionará.