Étant donné que YouTube a une variété de styles d'URL, je pense que Regex est une meilleure solution. Voici mon Regex :
^.*(youtu.be\/|v\/|embed\/|watch\?|youtube.com\/user\/[^#]*#([^\/]*?\/)*)\??v?=?([^#\&\?]*).*
Le groupe 3 a votre identifiant YouTube
Exemples d'URL YouTube (actuellement, y compris le style "legacy embed URL") - la Regex ci-dessus fonctionne sur toutes ces URL :
http://www.youtube.com/v/0zM3nApSvMg?fs=1&hl=en_US&rel=0
http://www.youtube.com/embed/0zM3nApSvMg?rel=0
http://www.youtube.com/watch?v=0zM3nApSvMg&feature=feedrec_grec_index
http://www.youtube.com/watch?v=0zM3nApSvMg
http://youtu.be/0zM3nApSvMg
http://www.youtube.com/watch?v=0zM3nApSvMg#t=0m10s
http://www.youtube.com/user/IngridMichaelsonVEVO#p/a/u/1/QdK8U-VIH_o
Conseil de chapeau à Lasnv
1 votes
Duplication possible de Extraire la valeur d'un paramètre d'un url en utilisant des expressions régulières
0 votes
Cette question ne concerne que les formats comme le mien. Mais j'y ai trouvé une réponse intéressante, merci de la partager.
0 votes
Il existe une expression régulière pour cela : http://pregcopy.com/exp/27
0 votes
Je ne peux pas m'en attribuer le mérite, mais j'ai trouvé ça assez complet : gist.github.com/FinalAngel/1876898 . Il attrape même des urls aussi diverses que youtube.com/watch?feature=player_embedded&v=1p3vcRhsYGo y youtube.com/v/1p3vcRhsYGo
2 votes
A partir de 2015 : passer à cette réponse . Les autres réponses sont dépassées.
0 votes
Vérifiez le module javascript get-video-id qui extraira l'identifiant Youtube de tout format d'url Youtube connu (y compris les chaînes intégrées). Il n'utilise pas une regex monolithique, mais il emploie plusieurs regex pour trouver les différents modèles.