Laurent MOREL

Blog d'un étudiant en informatique

Récupérer l’ID d’une vidéo Dailymotion, Youtube ou Vimeo via son lien en PHP

Après avoir galéré un petit moment, je partage mon bout de code avec vous !

Le script permet de récupérer l’ID d’une vidéo si elle provient de Dailymotion, Youtube ou Vimeo à l’aide de différentes expressions régulières bien rodées tout droit sorties de StackOverflow :

J’ai volontairement stocké le résultat dans $media_url sous la forme « plateforme:_:VideoID » pour pouvoir savoir s’il s’agit de Vimeo, YT ou Dailymotion par la suite.

Pour savoir si l’adresse entrée est invalide, il vous suffit simplement de regarder la taille de $media_url comme ceci :

Les expressions régulières détectent les liens du type :

Vimeo :

http://vimeo.com/vidid
http://vimeo.com/vidid
http://player.vimeo.com/video/vidid
http://player.vimeo.com/video/vidid
http://player.vimeo.com/video/vidid?title=0&byline=0&portrait=0
http://player.vimeo.com/video/vidid?title=0&byline=0&portrait=0
http://vimeo.com/channels/vimeogirls/vidid
http://vimeo.com/channels/vimeogirls/vidid
http://vimeo.com/channels/staffpicks/vidid
http://vimeo.com/vidid
http://vimeo.com/channels/vimeogirls/vidid

Youtube :

youtube.com/v/vidid
youtube.com/vi/vidid
youtube.com/?v=vidid
youtube.com/?vi=vidid
youtube.com/watch?v=vidid
youtube.com/watch?vi=vidid
youtu.be/vidid
youtube.com/embed/vidid
http://youtube.com/v/vidid
http://www.youtube.com/v/vidid
https://www.youtube.com/v/vidid
youtube.com/watch?v=vidid&wtv=wtv
http://www.youtube.com/watch?dev=inprogress&v=vidid&feature=related

Dailymotion :

http://www.dailymotion.com/embed/video/vidid
http://www.dailymotion.com/video/vidid
http://www.dailymotion.com/swf/video/vidid

La liste est donc assez longue !

D’ailleurs je vous partage également le script permettant d’afficher les différents lecteurs suivant les plateformes.

Vous n’avez plus qu’à faire un bête echo $html; et votre vidéo s’affiche dans le lecteur adéquat !

 

En espérant que ça vous fera gagner du temps 😉

12 Comments

  1. Super, merci l’ami ! fonctionne très bien !

  2. Hell yeah!
    tu viens de me sauver de plusieurs heures de galère!
    Merci 🙂

  3. Super comme code !! Tu m’as fait gagner pas mal de temps.
    Cependant, les videos de types :
    http://www.dailymotion.com/embed/video/vidid
    sont considérées comme des vidéos youtube dont l’id est video/vidid.

  4. Merci mec, ça marche bien ton code, nickel, bravo 🙂

  5. Un super grand merci à toi pour ton partage.
    Tu m’as fait économiser un max de temps et de prise de tête.

  6. Hello, petit soucis avec les urls du type « https://www.youtube.com/watch?v= » … Ils ne passent pas dans l’expression régulière… Celle-ci fonctionne mieux :

    « /^(?:http(?:s)?:\/\/)?(?:www\.)?(?:m\.)?(?:youtu\.be\/|youtube\.com\/(?:(?:watch)?\?(?:.*&)?v(?:i)?=|(?:embed|v|vi|user)\/))([^\?&\ »‘>]+)/ »

    Merci pour le code 🙂

Laisser un commentaire

Your email address will not be published.

*

© 2017 Laurent MOREL

Theme by Anders NorenUp ↑