Récupérer les informations d'une vidéos Youtube, dailymotion, vimeo ou google vidéo
Cette fonction analyse l'url donné en argument et renvoi un tableau contenant les informations suivante à propos de la vidéo :
- id
- type (youtube, google, vimeo, dailymotion)
- titre
- description
- img
- code (code HTML embed)
Renvoi false si le "type" de vidéo n'a pas été détecté.
- id
- type (youtube, google, vimeo, dailymotion)
- titre
- description
- img
- code (code HTML embed)
Renvoi false si le "type" de vidéo n'a pas été détecté.
Site de l'auteur voir
[18] sources en PHP voir
Code vu 6384 fois
Enregistré le 12 Oct 2010
|
|
Code Source
Fonctions du code
: Recherche par expression rationnelle insensible à la casse - (PHP 4, PHP 5)
: Coupe une chaîne en segments - (PHP 4, PHP 5)
: Lit tout un fichier dans une chaîne - (PHP 4 >= 4.3.0, PHP 5)
: Expression rationnelle standard - (PHP 4, PHP 5)
: Compte le nombre d'éléments d'un tableau ou le nombre de propriétés...
: Extrait toutes les balises méta d'un fichier HTML - (PHP 4, PHP 5)
: Convertit les caractères spéciaux en entités HTML - (PHP 4, PHP 5)
: Remplace toutes les occurrences dans une chaîne - (PHP 4, PHP 5)
: - (PHP 4, PHP 5)
: Crée un tableau - (PHP 4, PHP 5)
Commentaires
Utile mais par contre bcp d'erreurs !
ligne 53 :
ligne 53 :
else if($type=="vimeo")){ligne 38 :
une ) en trop
if($type=="youtube")){
Même chose
$titre = $resultTitre[count($result)-1];
=>
$titre = $resultTitre[count($resultTitre)-1];
$description = $resultDescription[count($result)-1];
=>
$description = $resultDescription[count($resultDescription)-1];
$description = $metatags["description"];
=>
$description = $tags["description"];
Je n'ai pas encore fait le tour des erreurs mais en voilà déjà 5.
On pourrait également noter que l'utilisation des fonctions de recherche par expression rationnelle de type ereg() est dépréciée :)
Avec un hébergement gratuit sur free.fr, on ne peut pas utiliser l'API de Vimeo, car la fonction du php file_get_contents semble être désactivée et provoque une erreur comme ceci :
Fatal error: file_get_contents(http://vimeo.com/api/v2/video/3823051.xml) [<a href='function.file-get-contents'>function.file-get-contents</a>]: failed to open stream: HTTP request failed! HTTP/1.0 403 Forbidden
Merci !
J'ai corrigé les quelques erreurs mentionnées ...
(Par contre je n'ai pas encore changé ereg par preg_match [que je ne connais pas très bien...])
J'ai corrigé les quelques erreurs mentionnées ...
(Par contre je n'ai pas encore changé ereg par preg_match [que je ne connais pas très bien...])
bonjour, il aurait été bien d'apprendre aux débutants a utiliser cette fonction.
je ne sais pas la faire fonctionner. merci s'il vous plait de me donner les directives.
je ne sais pas la faire fonctionner. merci s'il vous plait de me donner les directives.
Bonjour, s'il vous plait pouvez-vous nous expliquer la marche a suivre pour que ça fonctionne? un petit exemple serait bienvenu.
Merci infiniment d'avance.
Merci infiniment d'avance.
Bonjour voici un petit exemple basique d'utilisation de la fonction :
<?php
$urlVideo = "http://URLdeLAVideoEnQuestion/";
$infosVideo = getVideoInfo($urlVideo);
echo 'ID : '.$infosVideo["id"].'</br>';
echo 'Titre : '.$infosVideo["titre"].'</br>';
echo 'Type :'.$infosVideo["type"].'</br>';
echo 'Description : '.$infosVideo["description"].'<br />';
echo 'Image de la vidéo : <img alt="Image de la video" src="'.$infosVideo["img"].'"/> <br />';
echo 'Vidéos : '.$infosVideo["code"].'<br />';
?>
J'espère que cela répondra à votre question ;-)
Pour le problème du file_get_contents chez Free il y a pas vraiment de solution à part changer d'hébergeur (ou réclamer chez Free mais il y a peu de chance qu'ils activent la fonction...)
<?php
$urlVideo = "http://URLdeLAVideoEnQuestion/";
$infosVideo = getVideoInfo($urlVideo);
echo 'ID : '.$infosVideo["id"].'</br>';
echo 'Titre : '.$infosVideo["titre"].'</br>';
echo 'Type :'.$infosVideo["type"].'</br>';
echo 'Description : '.$infosVideo["description"].'<br />';
echo 'Image de la vidéo : <img alt="Image de la video" src="'.$infosVideo["img"].'"/> <br />';
echo 'Vidéos : '.$infosVideo["code"].'<br />';
?>
J'espère que cela répondra à votre question ;-)
Pour le problème du file_get_contents chez Free il y a pas vraiment de solution à part changer d'hébergeur (ou réclamer chez Free mais il y a peu de chance qu'ils activent la fonction...)
merci infiniment c'est tres gentil
Ce code est excellent et fonctionne parfaitement, je vous en remercie.
J'ai cependant une petite question correspondant aux méta données des vidéos. Avez-vous les autres méta données que contiennent les vidéos ? J'imagine qu'il doit y en avoir d'autre que les génériques ?
En fait je cherche un indice me permettant de savoir si la vidéo a été supprimer de dailymotion et donc de mon blog afin de ne pas avoir des playres sans vidéos.
Vous remerciant par avance.
J'ai cependant une petite question correspondant aux méta données des vidéos. Avez-vous les autres méta données que contiennent les vidéos ? J'imagine qu'il doit y en avoir d'autre que les génériques ?
En fait je cherche un indice me permettant de savoir si la vidéo a été supprimer de dailymotion et donc de mon blog afin de ne pas avoir des playres sans vidéos.
Vous remerciant par avance.
Une vidéo supprimé te renverra une erreur 404 lorsque tu voudra charger le fichier
$url = http://www.dailymotion.com/video/ID_DE_TA_VIDEO
J'ai trouvé ceci :
Tu peux par exemple remplacer
ou ceci http://robert.arlesnet.com/2008/01/20/betwittered-php-and-file_get_contents
ou ... (une petite recherche sur la détection des erreurs 404 en php te donnera surement + d'infos)
$url = http://www.dailymotion.com/video/ID_DE_TA_VIDEO
J'ai trouvé ceci :
<?php
if (@fclose(@fopen($url, "r"))) {
print("L'URL existe.");
} else {
print("L'URL n'existe pas.");
}
?>Tu peux par exemple remplacer
print("L'URL n'existe pas.");
par un @mail("ton adresse","Erreur video detectée","La vidéo ".$url." n'existe sans doute plus");
Regarde ceci : http://forum.webrankinfo.com/detection-site-inexistant-erreur-404-php-t6312.htmlou ceci http://robert.arlesnet.com/2008/01/20/betwittered-php-and-file_get_contents
ou ... (une petite recherche sur la détection des erreurs 404 en php te donnera surement + d'infos)
Bonjour a tous,
Désolé de répondre tardivement a votre dernier message, mais je souhaitais vous remercier pour vos éléments de réponses. Je n'avais pas pensé au 404... Cependant, jute pour ma culture, il y a une redirection établie sur certaines viédo pour les lire seulement sur dailymotion. Est ce une meta ou pas qui est indiqué pour effctuer une redirection ?
Merci par avance,
Désolé de répondre tardivement a votre dernier message, mais je souhaitais vous remercier pour vos éléments de réponses. Je n'avais pas pensé au 404... Cependant, jute pour ma culture, il y a une redirection établie sur certaines viédo pour les lire seulement sur dailymotion. Est ce une meta ou pas qui est indiqué pour effctuer une redirection ?
Merci par avance,
Je n'en ai pas la moindre idée ... Si tu as une vidéo où c'est le cas il te suffit de regarder le code source de la page de la vidéo en question et le comparer au code source d'une autre vidéo «partageable»
Note : Je viens de constater que dailymotion propose un flux xml (et un flux json) permettant d'extraire les infos plus rapidement, il s'agit de cette adresse :
http://www.dailymotion.com/services/oembed?url=URL_DE_LA_VIDEO&format=xml
Il serait donc judicieux de modifier le code pour en tenir compte ! (mais je n'ai pas le temps de le faire maintenant ... )
Note : Je viens de constater que dailymotion propose un flux xml (et un flux json) permettant d'extraire les infos plus rapidement, il s'agit de cette adresse :
http://www.dailymotion.com/services/oembed?url=URL_DE_LA_VIDEO&format=xml
Il serait donc judicieux de modifier le code pour en tenir compte ! (mais je n'ai pas le temps de le faire maintenant ... )
Bonjour et merci pour ce script!
J'utilisais ce script et il marchait très bien.
Par contre, depuis ce matin, il ne récupère plus l'image ni le titre ni ladescription des vidéos depuis VIMEO.
Est ce que quelqu'un peut me confirmer ce changement de comportement?
Merci beaucoup.
J'utilisais ce script et il marchait très bien.
Par contre, depuis ce matin, il ne récupère plus l'image ni le titre ni ladescription des vidéos depuis VIMEO.
Est ce que quelqu'un peut me confirmer ce changement de comportement?
Merci beaucoup.
bonjour, pas mal la function mais je ferais plutot une class...
et aussi utliser la fonction simplexml_load_file() au lieu de file_get_contents()
un bout de la modif pour dailymotion :
$url_video = "http://www.dailymotion.com/video/".$id;
$xml = simplexml_load_file('http://www.dailymotion.com/services/oembed?url='.$url_video.'&format=xml');
$description = get_meta_tags($url_video);
$titre = $xml->title;
$description = $description["description"];
$imageLarge = $xml->thumbnail_url;
et aussi utliser la fonction simplexml_load_file() au lieu de file_get_contents()
un bout de la modif pour dailymotion :
$url_video = "http://www.dailymotion.com/video/".$id;
$xml = simplexml_load_file('http://www.dailymotion.com/services/oembed?url='.$url_video.'&format=xml');
$description = get_meta_tags($url_video);
$titre = $xml->title;
$description = $description["description"];
$imageLarge = $xml->thumbnail_url;
la description de la video youtube ne saffiche pas :( , sinon tres bonne fonction !
Woooo..... sa viens de me sauver des heure de travail..... http://www.phpsources.org c'est rendu mon meilleur ami :) ..
merci 1000 fois
merci 1000 fois
Daimymotion a récement changé le fonctionnement de récupération des vignettes des vidéos.
Obligé de passer par l'API avec un peu de Json, l'url http direct de l'image avec l'ID de la vidéo concaténé ne fonctionne plus.
Avec ça, ça marche :
//image
$json_img_api_url = "https://api.dailymotion.com/video/".$id."?fields=thumbnail_medium_url";
$json = file_get_contents($json_img_api_url,0,null,null);
$json_output = json_decode($json);
$img = $json_output->thumbnail_medium_url;
Obligé de passer par l'API avec un peu de Json, l'url http direct de l'image avec l'ID de la vidéo concaténé ne fonctionne plus.
Avec ça, ça marche :
//image
$json_img_api_url = "https://api.dailymotion.com/video/".$id."?fields=thumbnail_medium_url";
$json = file_get_contents($json_img_api_url,0,null,null);
$json_output = json_decode($json);
$img = $json_output->thumbnail_medium_url;
bonjour, je ne comprend pas comment utilisé la fonction ! est ce en fesant un simple:
echo getVideoInfo();
???
echo getVideoInfo();
???
Bonjour,
Merci et bravo pour toutes ces astuces. En tant que novice absolu, j'espère pouvoir trouver un nouveau code propre qui prennent en compte toutes les remarques ci-dessus.
Pour ma part, je cherche à récuperer facilement et rapidement les informations suivantes sur les vidéos:
Titre
Date de publication
Lien html
Tags
Nombre de vues
Nombre de commentaires
Nombre de favoris
Nombre de 'likes' (Facebook, Google plus et twitter)
Quelqu'un peut m'aider ?
Merci d'avance !
Merci et bravo pour toutes ces astuces. En tant que novice absolu, j'espère pouvoir trouver un nouveau code propre qui prennent en compte toutes les remarques ci-dessus.
Pour ma part, je cherche à récuperer facilement et rapidement les informations suivantes sur les vidéos:
Titre
Date de publication
Lien html
Tags
Nombre de vues
Nombre de commentaires
Nombre de favoris
Nombre de 'likes' (Facebook, Google plus et twitter)
Quelqu'un peut m'aider ?
Merci d'avance !
Ajouter un commentaire
Librairie PHP
Connexion
Vidéos
PHP
- Affichage (5)
- Applications (9)
- Chaînes (71)
- Classes (29)
- Constantes (4)
- Cookies (3)
- Date-Heure (40)
- Email (14)
- Fichiers - Réps (45)
- Fonctions (23)
- Formulaires (18)
- GD-Graphiques (11)
- Google (13)
- HTML (7)
- Images (21)
- Inclassable (28)
- Maths (24)
- MySQL (23)
- Navigateurs (6)
- Recherches (6)
- Regex (13)
- Reseau (2)
- Sécurité (25)
- Sessions (13)
- Statistiques (5)
- Système (18)
- Tableaux (21)
- Tag-cloud (3)
- Templates (3)
- Twitter (5)
- URL (22)
- Variables (8)
- Vidéos (2)
- Windows (1)
- XML (2)






















