ニコニコ動画のFLV, コメントをダウンロード&コメントをその場で表示できる GreaseMonkey スクリプト

一応, プレミア対応できた?かな.
テストが全然足りてないけど, これはしょうがない.

ダウンロード

# DL できるサイトを移転しました。それに応じてスクリプトの名前も変更したので、
# 以前のバージョンを入れている方は一旦削除してから新しいバージョンを入れた方が良いと思います。
# ただし、スクリプトに大きな変更はありません。

機能

ニコニコ動画http://www.nicovideo.jp/watch/ 以下の URLで動作する GreaseMonkey スクリプトです.
使用するには, Firefox 拡張機能GreaseMonkey が必要です.
このスクリプトを導入すると, 動作対象となっているページ左上に「F」,「C」, 「D」というリンクが,
また, flashplayer のすぐ下にコメントを表示するためにメッセージ領域が追加されます.
このスクリプトの主な機能としては, 以下の通りです.

  1. 動画の FLV ファイルのダウンロード.
    左上リンク「F」です.
  2. 動画の現在のコメントのダウンロード*1.
    左上リンク「C」です.
  3. 動画のコメントを表示.
    左上リンク「D」と flashplayer のすぐ下の領域です.
FLV ファイルのダウンロード

現在視聴している動画の FLV ファイルをダウンロードします.
ダウンロードの窓が出るまで遅いです*2.

コメントのダウンロード

現在視聴している動画のコメントのダウンロードをします.
無料の一般会員の場合, 現在のコメントを 1000 レス分取得します.
プレミアユーザの場合, 後述する過去コメント取得のチェックボックスがチェックされていたならば,
指定した日付/時刻のコメントを 1000 レス分取得します.
チェックボックスがチェックされていなければ, 一般会員と同様に動作します.
コメントの拡張子は, おかしなことになっていると思いますが, 実体は, XML ファイルなので,
通常のテキストエディタ/ウェブブラウザ等で閲覧できるはずです.

コメントの表示

現在のコメントを指定したレス数分だけ, flashplayer 下部の領域に表示します.
デフォルトでの表示数は, 500 レスで, 250, 500, 750, 1000 の中から選択できます.
「コメントを表示」もしくは, 左上の「D」リンクを押すとコメントが表示されます*3.
コメントを表示すると, 表示領域のタイトル部が「[×]/No./書込時刻/再生時/ユーザID/コメント」のように変化します.
それぞれ, [×], 書込時刻, ... には機能が割り当ててあります.

  • [×]:コメントの表示をやめて, 表示領域を閉じます.
  • No.: No. でソートします.
  • 書込時刻: 書込時刻でソートします.
  • 再生時: 再生時刻でソートします.
  • ユーザID: ユーザIDでソートします.
  • コメント: コメントでソートします.

ユーザIDにマウスカーソルを合わせると, そのIDのコメント数が表示されます.
また, ユーザIDをクリックすると, そのIDの書込を背景色を変更することで強調することができます.
この背景色の変更は, もう一度クリックすることで, 元の色に戻ります.


コメントには, コメントの書込時に使用したコマンドが反映されるようになっています.
色の設定のコマンドは, そのまま表示するコメントの色としてあります. ただし, black のみ, 太字になります.
他のコマンドは, 以下の通りです.

  • big:フォントを14ptにします.
  • small:フォントを8ptにします.
  • ue:コメントに上線を引きます.
  • shita:コメントに下線を引きます.
  • black:フォントを太字にします.
  • sage:背景色を濃いグレーにします.

ちょっと色の違いは分かりづらいかもしれません.
その場合, マウスカーソルをコメント表示領域のコメントに重ねると,
コマンドがあるもののみ, コメントとともに, 使用したコマンドも表示されます.


コメント欄での改行の表示もサポートされています.
# 単純に \n を <br> に置き換えているだけですがw
また, sm***** のような動画ID(?)にリンクを貼るようにしてあります.
通常の URL にはリンクを貼りません.
# http://www.nicovideo.jp/watch/sm***** のような URL があると文字列の置換が衝突して, それを回避するのがメンドーになったのでw


プレミアユーザの場合, 過去のコメントの表示もできます.
プレミアユーザの場合のみ, レス数の指定の他に,
過去のコメントを取得するかどうかのチェックボックス,
取得する日付/時刻を指定するプルダウンメニューが表示されます.
ここで取得したい日付を指定し, チェックボックスをチェックすることで,
現在のコメントの閲覧と同じように, 過去のコメントの閲覧ができます.

コメント


なんとかやりたいことは詰め込めた...かな?
まだテストたりないどね.
ソースコードがありえんぐらいカオスのスパゲティになってるのがしゃくだけど, まず動くのが重要.
まあ, テストしづらくなって困るのはうちやったけどw
JavaScript ちゃんと勉強せんとな.
まあ, JavaScript をよく知らないことだけじゃないな, ソースコードがこんななった原因はw

追記

FLV のダウンロードで, タイトルを指定したいってのがあるけど, ちょっと難しい.
というかやり方が分からない.
たぶん, Firefox 拡張機能になれば, やりようはあるんだと思うんだけどなあ.
とりあえずの対処としては, 右クリックからリンク先を名前をつけて保存とかして,
自分でタイトルを書くってのぐらいしか思い浮かばないなあ.
ダウンロードするとき, クリップボードにタイトルの文字列を入れれば便利かなとも思ったけど,
Firefox + Greasemonkey だとキツそう.
クリップボードへのコピーは, Flash を使えばうまくいくみたいなんだけどね.

追記

なんか, コメントに非常に改行が多いと, 途中から, 色 #808080 で覆われて, 見えなくなる自体が発生するみたい.
解決方法は, 1. 改行を <br> に変換するのをやめる. 2. <br> ではなく, <p> タグで括るようにする.
2. が現実的なんだけど, これをやると, ソートが上手くできなくなる.
なので, どうしたものかとちょっと考え中.

スクリーンショット

一般ユーザによる表示1


一般ユーザによる表示2


プレミアムユーザによる表示


更新時刻

  • 1かいめ 2007年, 9月15日, 3:00
  • 2かいめ 2007年, 9月15日, 3:22
  • 3かいめ 2007年, 9月15日, 22:00
  • 4かいめ 2007年, 9月15日, 23:10

*1:プレミアユーザで, 過去コメント取得にチェックをしていると, 過去コメントがダウンロードされます

*2:理由がよくわからないので, 対処のしようが...

*3:表示レス数によっては, 処理が重く, 数秒またされるかもしれません.