voilà je voulais récupérer les informations des vidéos de Youtube. J'ai le code ci-dessous, mais mise à part l'image rien d'autre n'est récupéré...
Quelqu'un pourrait-il m'aider en me disant s'il y a une ou plusieurs erreur dans mon code.
Merci d'avance...
<?php function getytid($url){
$yt_start = explode("v=",$url,2);
$yt_end = explode("&",$yt_start[1],2);
$gotid = $yt_end[0];
return $gotid;
}
/**
* Gets Author from youtube id
*
* @param Youtube Id
* @return $yt_author
*/
function getauthor($videoid){
$yt_xml_author_string = @file_get_contents("http://gdata.youtube.com/feeds/api/videos?q=".$videoid);
$yt_xml_author_start = explode("<uri>http://gdata.youtube.com/feeds/api/users/",$yt_xml_author_string,2);
$yt_xml_author_end = explode("</uri></author>",$yt_xml_author_start[1],2);
$yt_author = addslashes($yt_xml_author_end[0]);
return $yt_author;
}
function getdur($videoid){
$yt_xml_dur_string = @file_get_contents("http://gdata.youtube.com/feeds/api/videos?q=".$videoid);
$yt_xml_dur_start = explode("<yt:duration seconds='",$yt_xml_dur_string,2);
$yt_xml_dur_end = explode("'/>",$yt_xml_dur_start[1],2);
$yt_dur = addslashes($yt_xml_dur_end[0]);
return $yt_dur;
}
/**
* Gets Title from youtube id
*
* @param Youtube Id
* @return $yt_title_noslash
*/
function gettitle($videoid){
$yt_xml_title_string = @file_get_contents("http://gdata.youtube.com/feeds/api/videos?q=".$videoid);
$yt_xml_title_start = explode("<media:title type='plain'>",$yt_xml_title_string,2);
$yt_xml_title_end = explode("</media:title>",$yt_xml_title_start[1],2);
$yt_title = addslashes($yt_xml_title_end[0]);
$yt_title_noslash = $yt_xml_title_end[0];
return $yt_title_noslash;
}
/**
* Gets description from youtube id
*
* @param Youtube Id
* @return $yt_description
*/
function getdescription($videoid){
$yt_xml_description_string = @file_get_contents("http://gdata.youtube.com/feeds/api/videos?q=".$videoid);
$yt_xml_description_start = explode("<media:description type='plain'>",$yt_xml_description_string,2);
$yt_xml_description_end = explode("</media:description>",$yt_xml_description_start[1],2);
$yt_description = addslashes($yt_xml_description_end[0]);
return $yt_description;
} ?>
l'affichage de la vidéo :
<?php
if($_POST)
{
include 'conf.inc.php';
$videourl = $_POST['url'];
include 'youtube.php';
$videoid_untrim = getytid($videourl);
$videoid = trim($videoid_untrim);
if($videoid !== null){
$title = gettitle($videoid);
$author = getauthor($videoid);
$des = getdescription($videoid);
$dur = getdur($videoid);
$temp = $dur % 3600;
$time[0] = ( $dur - $temp ) / 3600 ;
$time[2] = $temp % 60 ;
$time[1] = ( $temp - $time[2] ) / 60;
$duration = $time[1].':'.$time[2];
$thumb = "http://img.youtube.com/vi/".$videoid."/1.jpg";
}
$sql = "SELECT COUNT(*) AS nbr FROM video WHERE url = '$videourl'";
$res = mysql_query($sql);
$alors = mysql_fetch_assoc($res);
if(!($alors['nbr'] == 0)){
$msg = "Cette vidéo est déjà listé !";
}else{
mysql_query("INSERT INTO video(url,title,description,author,thumb,duration) VALUES ('$videourl','$title','".mysql_real_escape_string($des)."','$author','$thumb','$duration')")or die(mysql_error());
$msg = 'Vidéo ajoutée';
}
}
else { }
?>
<li class="box">
<img src="<?php echo $thumb; ?>" align="left"/>
<?php echo $title;?><br />
<?php echo stripslashes($des); ?><br />
Par : <b><?php echo $author; ?></b><br />
<br />Durée : <?php echo $duration; ?> min.
<br /><h1><?php echo $msg; ?></h1>
</li>