Com esta função, isYoutubeVideo, será possível validar se o link de um vídeo no Youtube é válido. A função verifica também a versão encurtada, que utiliza o domínio youtu.be além das versão EMBED.
A função foi desenvolvida utilizando javascript com expressão regular e pode ser facilmente convertida para outra linguagem, como PHP por exemplo.
Funciona da seguinte maneira, ao passar uma URL ela retornará o código do vídeo extraído, por exemplo: lb6hG-lajbc. Caso a função não consiga identificar o código do vídeo ela retornará falso.
function isYoutubeVideo(url) { var v = /^(?:https?:\/\/)?(?:www\.)?(?:youtu\.be\/|youtube\.com\/(?:embed\/|v\/|watch\?v=|watch\?.+&v=))((\w|-){11})(?:\S+)?$/; return (url.match(v)) ? RegExp.$1 : false; }
Algumas URLs que a função aceita:
- Versão tradicional: https://www.youtube.com/watch?v=g5entWrZA7Q
- Versão tradicional (com playlist): https://www.youtube.com/watch?v=8_ytodHYAlE&list=PLVc5bWuiFQ8FHpWW5Q2Tyh8k9I3kjQ8hW&index=3
- Versão encurtada: https://youtu.be/lb6hG-lajbc
- Versão embed: https://www.youtube.com/embed/lb6hG-lajbc
Exemplo de utilização:
var urlvideo = "https://www.youtube.com/embed/lb6hG-lajbc"; //Substitua pela URL do seu vídeo var codvideo = isYoutubeVideo(urlvideo); if (!codvideo){ alert('Vídeo não encontrado.'); } else{ alert('Código do vídeo: ' + codvideo); }