Quiero, en mi función init(), verificar si el video es una URL de youtube o un nombre de archivo.
¿Esto parece adecuado o hay algún tipo de caso límite que podría estar perdiendo?
function init(){ playerSource = Document.getElementById('vid').src; if ( playerSource.includes("https://www.youtube") ){ //Call to function that begins setting up YT iFrame API } }
¡Gracias por adelantado!
Puede validar la URL de youtube usando la siguiente expresión regular.
regExp = /^(?:https?:\/\/)?(?:www\.)?(?:m\.)?(?:youtu\.be\/|youtube\.com\/(?:embed\/|v\/|watch\?v=|watch\?.+&v=))((\w|-){11})(?:\S+)?$/
Youtube tiene diferentes formas de URL dependiendo de dónde esté tomando
URL normal
https://www.youtube.com/watch?v=12345678901
Compartir URL
https://youtu.be/12345678901
Compartir URL con hora de inicio
https://youtu.be/12345678901?t=6
URL del navegador móvil
https://m.youtube.com/watch?v=12345678901&list=RD12345678901&start_radio=1
URL larga
https://www.youtube.com/watch?v=12345678901&list=RD12345678901&start_radio=1&rv=smKgVuS
URL larga con hora de inicio
https://www.youtube.com/watch?v=12345678901&list=RD12345678901&start_radio=1&rv=12345678901&t=38
Puede verificar esta validación de URL a continuación https://regex101.com/r/7a1lGH/1