l'obtention de l'id youtube à partir d'un lien
J'ai ce code pour obtenir l'id youtube à partir des liens
www.youtube.com/watch?v=xxxxxxx
URL youtubeURL = new URL(link);
youtubeURL.getQuery();
en gros, cela va me faire de l'id facilement v=xxxxxxxx
mais j'ai remarqué que parfois les liens de youtube sera comme ceci
http://gdata.youtube.com/feeds/api/videos/xxxxxx
Je suis les liens à partir d'un flux
donc j'ai besoin de construire une regex pour que la ou il y a un analyseur à obtenir que pour moi ?
- Vous pouvez regarder la ma réponse à une question très semblable. Il extrait de la vidéo-id à partir d'une variété de l'URL de YouTube formats.
- merci mais il manque le gdata liens
- Merci pour cette remarque. J'ai updatated mon YouTube ID matching de l'expression de sorte qu'il correspond bien à votre
gdata
sous-domaine par exemple.
Vous devez vous connecter pour publier un commentaire.
Essayé les autres, mais pas dans mon cas - ajusté la regex pour s'adapter à mon url
Celui-ci travaille pour: (vous pouvez aussi mettre en œuvre un contrôle de sécurité youtubeid longueur = 11 )
(?<=watch\?v=|/videos/|embed\/|youtu.be\/|\/v\/|watch\?v%3D|%2Fvideos%2F|embed%2F|youtu.be%2F|%2Fv%2F)[^#\&\?\n]*
Cette regex ferait l'affaire:
Cela signifie que nous sommes les premiers à la recherche pour
video/
ouv=
puis capture tous les caractères suivants qui peuvent être dans le mot (lettres, chiffres, et des caractères de soulignement) et des traits d'union.Exemple en java:
De sortie:
http://gdata.youtube.com/feeds/api/videos/xxxxxx
comme indata-je obtenirxTmi7zzUa-M
en sortie. Ai-je mal lu votre question et vous demandent une regex qui vous permettra d'analyser lesv=xxxxxxxx
et l'autre?matcher.group()
) serait l'id de la personne est à la recherche d', plutôt que la première capture d'un groupe (matcher.group(1)
)Ce modèle a fonctionné pour moi:
source: Expression régulière pour des liens youtube
A une meilleure solution à partir de ce lien.
Utiliser la méthode suivante pour obtenir la videoId à partir du lien.
Espère que cette aide.
Sans connaître la spécification complète pour tous les YouTube Url, cela semble fonctionner pour les exemples que vous avez fournies:
... correspond à
PjDw3azfZWI
partir de l'une de ces URL:Il vous faudra un peu plus pour obtenir cette info si vous ne saviez pas que ces ont été à partir de youtube, mais c'est une jolie vérification rapide
Gardez à l'esprit que si vous essayez d'utiliser uniquement le résultat de la
getQuery()
méthode, il ne sera pas possible d'extraire le résultat de lahttp://gdata.youtube.com/feeds/api/videos/PjDw3azfZWI
URL, comme cette URL n'a pas une requête de la partie pour elle...Java Exemple:
youtu.be
ainsi que/embed/
liens:(?<=watch\?v=|/videos/|/embed/|youtu.be/)[^&#?]*
(je vais mettre à jour ma réponse) - s'il vous plaît laissez-moi savoir si ce n'est pas, comme je l'ai fait que jusqu'à maintenant par la main...Cela a fonctionné pour moi
Source lien
Ce n'est pas utiliser une regex mais doit encore faire le travail.