ページ

2013年6月15日

heatmeter、Nico Comment Graphは動作しません

このブログにある過去のスクリプト「heatmeter」、「Nico Comment Graph」は2013年6月現在、動作しなくなっています。
代わりに、現在制作中のHistogramHeatGraph.user.jsを使ってね。

2013年1月21日

俺得!ニコニコ動画でコメントの盛り上がりをグラフで表示する11の方法

1.「ニコニコ動画用設定済みオミトロン」

公式サイト Proxomitron導入ガイド/設定済/flvplayer_wrapper
プロクシソフト。動画下にコメントの盛り上がりを折れ線グラフで表示。弾幕グラフと呼ぶ。
2007年4月?、公開。
2010年12月?、最終更新。
2013年1月現在、動作?
2.「Nico☆UP DATE」

公式ブログ ニコニコ動画専用ブラウザ Nico☆UP DATE(ニコアップデート) 開発blog
専用ブラウザ。動画下にコメントの盛り上がりを色別の棒グラフで表示。弾幕グラフと呼ぶ。
2007年7月?、公開。
2011年11月、最終更新。
2012年10月、公開終了。
_.「ニコニコグラフ」

公式ブログ ニコニコ動画にコメント分布グラフがあったらいいな
Flashによるデモ。動画下にコメントの盛り上がりを棒グラフで表示。
2007年8月、公開。
3.「Heat the nicovideo up」

公式ブログ uchiuchiyamaの日記
公式サイト userscripts.org
動画下にコメントの盛り上がりをサーモグラフィーのように色別で表示。Comment Heat Mapと呼ぶ。
ユーザースクリプト。Firefox+Greasemonkeyで動作。
2007年9月、公開。
2007年12月、最終更新。
2013年1月現在、DLページ404、使用不可能?
4.「NicoNicoDouga - Analytics」

公式ブログ uchiuchiyamaの日記
日付ごとのコメント数を折れ線グラフで、動画内時間帯ごとのコメント数を棒グラフで表示。バブルチャートもある。
ユーザースクリプト。Firefox+Greasemonkeyで動作。
2008年1月、公開。
2013年1月現在、DLページ404、使用不可能?
5.「にこぐらふ」

公式サイト にこぐらふ
外部サイト。コメントの「w」の盛り上がりを折れ線グラフで表示。
2008年3月、公開。
2012年10月、最終更新。
2013年1月現在、運営中?
6.「NicoWatch Tools」

紹介ブログ 【火狐4.0】nico watch toolsを使えるようにする方法【ユーザースクリプト】
ミラー userscripts.org
動画下にコメントの盛り上がりをサーモグラフィーのように色別で表示。もともと同作者のスクリプト「KomeShoku」の機能だったものを移植。HeatMeterと呼ぶ。
ユーザースクリプト。Firefox+Greasemonkeyのみ動作。原宿のみ対応。
2008年5月、公開。
2011年10月、最終更新。
2013年1月現在、DLページ404、有志によるミラーあり。改変しなければ動作しない。
7.「Nicovideo Utilities」

公式サイト Class G
動画下にコメントの盛り上がりをサーモグラフィーのように色別で表示。コメントヒートマップと呼ぶ。
ユーザースクリプト。Operaのみ動作。原宿のみ対応。
2011年7月?、公開。
2012年7月、最終更新。
2013年1月現在、動作。
8.「ばっちりサーチ.net」

公式サイト ばっちりサーチ.net
外部サイト。動画URLを入力するとコメントの盛り上がりを折れ線グラフで表示。さらにコメント内容を独自に分類して円グラフで表示。
2012年1月、公開。
2013年1月現在、運営中。
9.「NicoCommentAmount」

公式ブログ ニコニコ動画のコメントの盛り上がりをグラフで表示するgreasemonkeyのスクリプトを書いた
動画下にコメントの盛り上がりを棒グラフで表示。
ユーザースクリプト。Firefox+Greasemonkeyのみ動作。原宿のみ対応。
2012年2月、公開。
2013年1月現在、外部PHPの不具合で使用不可能?
10.「heatmeter」「Nico Comment Graph」

自作。動画下にコメントの盛り上がりをサーモグラフィーのように色別で表示。公式チャンネルも対応。
ユーザースクリプト。Chrome+Tampermonkeyのみ動作。原宿のみ対応。
2012年2月、2012年10月、このブログで公開。
2013年1月現在、動作。
11.「HistogramHeatGraph.user.js」

自作。動画下にコメントの盛り上がりを棒グラフなどで表示。棒にマウスが乗るとその時間のコメント一覧を表示。公式チャンネルも対応。
ユーザースクリプト。Chrome、Firefox+Greasemonkeyで動作。Qのみ対応。
2013年1月現在、未公開。

2012年10月16日

Nico Comment Graph

// ==UserScript==
// @name Nico Comment Graph
// @version 0.20121016
// @description Niconico video comment chart script for Chrome
// @include http://www.nicovideo.jp/watch/*
// @require http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js
// ==/UserScript==

(function(){
player = document.getElementById('flvplayer');
videoLength = unsafeWindow.Video.length + 1;
barQty = 0;
arrayBar = Array();
arrayTime = Array();
arrayColor = [
'000', '00f', '33c', '36c', '39c', '3cc', '3c9', '3c6',
'3c3', '6c3', '9c3', 'cc3', 'c93', 'c63', 'c33', 'f00'
];
func = {
container : function(){
doc = document.createElement('div');
doc.id = 'graph_container';
$('#WATCHFOOTER').prepend($(doc));
$('#graph_container').html('<table><tr><td id="graph_body"></td><td id="graph_text"></td><tr></table>');
this.body();
},
body : function(){
for (i = 0; i < 10; i++) {
if(player.ext_getComments(i).length > 0) threadId = i;
}
arrayComment = player.ext_getComments(threadId);
for (i = 0; i < arrayComment.length; i++) {
if (videoLength + 1 < Math.floor(arrayComment[i].vpos / 1000)) {
videoLength += 10;
break;
}
}
barTimeLength = videoLength / barQty;
for (i = 0, barTime = 0, barNumMax = 0; i < barQty; i++) {
barTime += barTimeLength;
arrayBar[i] = 0;
for (j = 0; j < arrayComment.length; j++) {
vpos = arrayComment[j].vpos / 1000;
if (barTime - barTimeLength <= vpos && vpos < barTime) arrayBar[i]++;
}
if (arrayBar[i] > barNumMax) barNumMax = arrayBar[i];
vposMin = Math.floor((barTime - barTimeLength) / 60);
vposSec = Math.floor(barTime - barTimeLength) - vposMin * 60;
if (vposMin < 10) vposMin = '0' + vposMin;
if (vposSec < 10) vposSec = '0' + vposSec;
arrayTime[i] = vposMin + ':' + vposSec + ' - ';
vposMin = Math.floor(barTime / 60);
vposSec = Math.floor(barTime) - vposMin * 60;
if (vposMin < 10) vposMin = '0' + vposMin;
if (vposSec < 10) vposSec = '0' + vposSec;
arrayTime[i] += vposMin + ':' + vposSec;
}
for (i = 0, bar = ''; i < barQty; i++) {
strColor = arrayColor[Math.round(arrayBar[i] / barNumMax * 15)];
if(arrayBar[i] == 0) strColor = 'fff';
strComment = arrayBar[i] + ' ' + arrayTime[i];
bar += '<div class="graph_bar" style="margin-top:' + arrayBar[i] + 'px;background:#' + strColor + ';" title="Comment : ' + strComment + '"></div>';
}
$('#graph_body').html(bar);
$('#graph_text').html('<a id="reload">' + arrayComment.length + ' Comment GET</a>');
$('#reload').click(function(){func.body()});
}
}
if (player.getAttribute('flashvars').indexOf('isWide=1') > 0) {
if (videoLength < 600) {
barQty = 170;
}else if (videoLength < 6000) {
barQty = 163;
}else{
barQty = 156;
}
}else{
if (videoLength < 600) {
barQty = 106;
}else if (videoLength < 6000) {
barQty = 99;
}else{
barQty = 92;
}
}
t = setInterval(function(){
if (player.ext_getStatus() != 'stopped') {
func.container();
clearInterval(t);
}
}, 3000);
GM_addStyle((<><![CDATA[
#player_bottom_textlink a{
color: #ccc;
}
#graph_container{
margin: -506px 0 0 75px;
color: #333;
font-size: 12px;
}
#graph_text{
padding: 504px 5px 0;
cursor: pointer;
}
.graph_bar{
width: 2px;
height: 500px;
float: left;
}
]]></>).toString());
})();