2011-01-05 238 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