通过Json显示视频计数

时间:2013-12-12 20:34:46

标签: php json api youtube-api

所以我一直用imagecreatepng制作动态签名,我正在使用的API是

(假设用户名是“googlechrome”)

http://gdata.youtube.com/feeds/api/users/googlechrome?v=2&alt=json

这一行显示他们有289个视频:

{"rel":"http://gdata.youtube.com/schemas/2007#user.uploads","href":"http://gdata.youtube.com/feeds/api/users/googlechrome/uploads?v=2","countHint":289},

我不确定如何在图像上打印出来。

到目前为止我的代码。

语法:domain.com/image.php?channel=googlechrome

yt.png = http://i.imgur.com/OCRWhI6.png

<?php
$channel = $_REQUEST["channel"];
$image = ('yt.png');

$im = imagecreatefrompng($image);

$white = imagecolorallocate($im, 255, 255, 255);
$width = imagesx($im);
$height = imagesy($im);
$font = 2;

$json_output = file_get_contents('http://gdata.youtube.com/feeds/api/users/'.($channel).'?v=2&alt=json');
$json = json_decode($json_output, true);

$username = $json['entry']['yt$username']['$t'];
$view_count = $json['entry']['yt$statistics']['totalUploadViews'];
$sub_count = $json['entry']['yt$statistics']['subscriberCount'];
//$video_count = $json['entry']['DUNNO_YET']['$t'];

$UserName = ("".$username);
imagestring($im, $font, $width-190, $height-59, $UserName, $white);

$viewCount = ("".$view_count);
imagestring($im, $font, $width-190, $height-45, $viewCount, $white);

$subCount = ("".$sub_count);
imagestring($im, $font, $width-190, $height-30, $subCount, $white);

$VideoCount = ("".$video_count);
imagestring($im, $font, $width-190, $height-15, $VideoCount, $white);

//text before counts
$UNAME = ('Username:');
imagestring($im, $font, $width-278, $height-59, $UNAME, $white);
$TOTALVIEWS = ('Total Views: ');
imagestring($im, $font, $width-278, $height-45, $TOTALVIEWS, $white);
$SUBS = ('Subscribers: ');
imagestring($im, $font, $width-278, $height-30, $SUBS, $white);
$TOTALVIDEOS = ('Total Videos: ');
imagestring($im, $font, $width-278, $height-15, $TOTALVIDEOS, $white);

Header('Content-type: image/png');
imagepng($im);
imagedestroy($im);
?>

任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:0)

$video_count变量应该等于:

$video_count = $json['entry']['gd$feedLink'][6]['countHint'];

但是,我不确定上传计数是否始终位于gd$feedLink的第6个索引,因此使用类似以下内容的提示可能是明智之举:

$video_count = 0;
foreach ($json['entry']['gd$feedLink'] as $feed) {
    if ($feed['rel'] == 'http://gdata.youtube.com/schemas/2007#user.uploads') {
        $video_count = $feed['countHint'];
        break;
    }
}