HOME > スポンサー広告 > title - ニコニコ動画APIでマイリストに登録されている動画の平均再生数とか出してみた改HOME > ニコニコ動画API > title - ニコニコ動画APIでマイリストに登録されている動画の平均再生数とか出してみた改


スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
[ --/--/-- --:-- ] スポンサー広告 | TB(-) | CM(-)

ニコニコ動画APIでマイリストに登録されている動画の平均再生数とか出してみた改

multiRequest関数を使ってコードを軽くします。

スポンサードリンク

Yahoo!ブックマークに登録 newsing it! この記事をクリップ! BuzzurlにブックマークBuzzurlにブックマーク このエントリーをはてなブックマークに追加

ニコニコ動画APIでマイリストに登録されている動画の平均再生数とか出してみた

マイリストに登録されている動画の再生数等を取得してみます。
登録されている動画のIDを使って、ニコニコ動画API「getthumbinfo」を叩いています。
マイリストのRSSに再生数等のデータがあれば簡単に取得できるのですが・・・。

multiRequest関数

複数APIを同時に叩いて超高速化することが出来ます。
以前のコードより明らかに早くなっています。

サンプルコード

<?php
$array = array();

$xml = simplexml_load_file('ニコニコ動画マイリストのRSS');
echo convert($xml->channel->title);

echo "<ul>";

foreach($xml->channel->item as $entry){

$id = explode( "/", convert($entry->link) );
array_push($array, "http://ext.nicovideo.jp/api/getthumbinfo/$id[4]");

$i++;
}

$r = multiRequest($array);

foreach ($r as $value) {
$mmm = simplexml_load_string($value);
echo "<li>".convert($mmm->thumb->title);
echo "&nbsp;再生数:",convert($mmm->thumb->view_counter),"&nbsp;コメント数:",convert($mmm->thumb->comment_num),"&nbsp;マイリスト数:",convert($mmm->thumb->mylist_counter);

$view_counter+=convert($mmm->thumb->view_counter);
$comment_num+=convert($mmm->thumb->comment_num);
$mylist_counter+=convert($mmm->thumb->mylist_counter);
}

echo "</ul>";

$Total_view_counter=floor($view_counter);
$Total_comment_num=floor($comment_num);
$Total_mylist_counter=floor($mylist_counter);
$Average_view_counter=floor($view_counter/=$i);
$Average_comment_num=floor($comment_num/=$i);
$Average_mylist_counter=floor($mylist_counter/$i);

echo <<<HTML
<ul>
<li>動画数 $i
<li>再生数$Total_view_counter
<li>コメント数$Total_comment_num
<li>マイリス数数$Total_mylist_counter
<li>平均再生数$Average_view_counter
<li>平均コメント数$Average_comment_num
<li>平均マイリス数数$Average_mylist_counter
</ul>
HTML;

function convert($str) {
return mb_convert_encoding($str, "SJIS" ,"utf-8");
}
function multiRequest($data, $options = array()) {

// array of curl handles
$curly = array();
// data to be returned
$result = array();

// multi handle
$mh = curl_multi_init();

// loop through $data and create curl handles
// then add them to the multi-handle
foreach ($data as $id => $d) {

$curly[$id] = curl_init();

$url = (is_array($d) && !empty($d['url'])) ? $d['url'] : $d;
curl_setopt($curly[$id], CURLOPT_URL, $url);
curl_setopt($curly[$id], CURLOPT_HEADER, 0);
curl_setopt($curly[$id], CURLOPT_RETURNTRANSFER, 1);

// post?
if (is_array($d)) {
if (!empty($d['post'])) {
curl_setopt($curly[$id], CURLOPT_POST, 1);
curl_setopt($curly[$id], CURLOPT_POSTFIELDS, $d['post']);
}
}

// extra options?
if (!empty($options)) {
curl_setopt_array($curly[$id], $options);
}

curl_multi_add_handle($mh, $curly[$id]);
}

// execute the handles
$running = null;
do {
curl_multi_exec($mh, $running);
} while($running > 0);

// get content and remove handles
foreach($curly as $id => $c) {
$result[$id] = curl_multi_getcontent($c);
curl_multi_remove_handle($mh, $c);
}

// all done
curl_multi_close($mh);

return $result;
}
?>

実行結果

とあるマイリストの数字です。
本来は各動画の名前と一覧が出ますが伏せています。

  • 動画数 108
  • 再生数7087862
  • コメント数346687
  • マイリス数数177522
  • 平均再生数65628
  • 平均コメント数3210
  • 平均マイリス数数1643

スポンサードリンク

loading...
自分だけのアバターで友達をつくろう!【MILU(ミル)】
人気ブログランキングへ
Yahoo!ブックマークに登録 newsing it! この記事をクリップ! BuzzurlにブックマークBuzzurlにブックマーク このエントリーをはてなブックマークに追加
[ 2012/01/17 00:39 ] ニコニコ動画API | TB(0) | CM(0)

コメントの投稿













管理者にだけ表示を許可する

トラックバック:

この記事のトラックバック URL
http://computernlife.blog.fc2.com/tb.php/48-4f85ed95





上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。