2011-01-05 234 views
1

我使用PHP来访问YouTube视频的属性,例如标题,URL,缩略图,持续时间等访问YouTube的YT:等级(喜欢/不喜欢)系统PHP

这并不是说GD:评分(5个星评级)已取代YT:等级(喜欢/不喜欢系统),我想修改我的PHP。

GD:评级(旧)

$gd = $entry->children('http://schemas.google.com/g/2005'); 
if ($gd->rating) { 
    $attrs = $gd->rating->attributes(); 
    $rating = $attrs['average']; 
} else { 
    $rating = 0; 
} 

YT:评级(新)

$yt = $entry->children('http://gdata.youtube.com/schemas/2007'); 
if ($yt->rating && $yt->rating[0]->attributes()) { 
    $attrs = $yt->rating[0]->attributes(); 
    $videoobj[$loopCounter]['dislikes'] = strval($attrs['numDislikes']); 
    $videoobj[$loopCounter]['likes'] = strval($attrs['numLikes']); 
} else { 
    $videoobj[$loopCounter]['dislikes'] = 0; 
    $videoobj[$loopCounter]['likes'] = 0; 
} 

使用YT:等级代码没有工作。即使我做了print_r($yt->rating);,没有什么在数组中。

我哪里错了?

回答

2

校正。您可以。

您访问的需求来追加到结尾的网址:

$url = 'http://gdata.youtube.com/feeds/api/videos/' . $vid . '?v=2'; 

这一切都不同 - 所以我的代码最后一位:

// get <yt:rating> node for like/dislikes 
$yt = $entry->children('http://gdata.youtube.com/schemas/2007'); 
$attrs = $yt->rating->attributes(); 
$obj->dislikes = $attrs['numDislikes']; 
$obj->likes = $attrs['numLikes']; 
echo $obj->dislikes; 
echo ' '; 
echo $obj->likes; 
+0

呀,我的代码的最后一位非常类似于您的代码 - 关键是您正在访问的URL。 – keif 2011-02-10 21:24:11