Hatena::ブログ(Diary)

Alone Like a Rhinoceros Horn

2010-01-08

ニコニコ動画の検索結果をフィルタリングする Greasemonkeyスクリプト

重要なお知らせ

Nicovideo Results Filter の開発は終了しました。

現在のバージョン(0.2.7_2010-11-21)が動作しなくなった時点でこのエントリ内のダウンロード用リンクは削除されます。以後、当スクリプトの更新は行われません。(追記:2011-01-11)

Nicovideo Results Filter は開発を終了し、現在は一切メンテナンスされておりません。このエントリ内のダウンロード用リンクはあくまで「改造して使う人用」です。インストールしても現在(2011年10月22日時点)ニコニコ動画では正常に動作しない可能性があります。(動作未確認)

スクリプトは MIT License にて公開していますので、自由に改変、再配布していただいて結構ですが、(当然のことながら)当方では一切責任を負いませんのであしからず。(追記:2011-10-22)

インストール用リンクを削除(追記:2011-11-19)


ニコニコ動画の検索結果を眺めていて、

  1. 動画のタイトル、説明文に NGワードを含む動画
  2. 最新コメントに「釣り」とか書かれている動画
  3. 再生数/コメント数/マイリスト数の少ない動画

などを検索結果から削除したいと思い*1ニコニコ動画の検索結果をフィルタリングする Greasemonkeyスクリプトを書きました。Greasemonkey については以下のリンクを参照↓)

インストール

お使いのブラウザFirefox であれば、以下のリンクをクリックすることでインストールできます。(※ただし、前もって上記リンクから Greasemonkeyアドオンインストールしておく必要があります)

  • nicovideo_results_filter.user.js (0.2.7_2010-11-21)

注意:インストールに際しては以下の「機能」をよく読んで下さい。

注意:ブラウザに古いバージョンがキャッシュされていると上記リンクをクリックしても最新バージョンがインストールされない場合があります。そのような場合はブラウザキャッシュを削除してから再度インストールして下さい。

機能

合計 10 のフィルタがあり、個別に ON/OFF できます。

「タイトル」/「説明文」/「タグ」フィルタ

動画の「タイトル」/「説明文」/「タグ」が NGパターンにマッチする動画を検索結果から削除します。興味がない、嫌い、などの理由により検索結果に表示されて欲しくないものを削除するためのフィルタ群です。

「最新コメント」フィルタ

動画の「最新コメント」が NGパターンにマッチする動画を検索結果から削除します。釣り動画の最新コメントにはしばしば「釣り」という単語が含まれていますので、このフィルタの NGパターンに「釣り」などと設定しておくと釣り動画をある程度排除できます。

「投稿者」フィルタ

特定の投稿者の動画を検索結果から削除します。不愉快な動画ばかり投稿する困った投稿者を抹殺するためのフィルタです。

このフィルタを ON にすると、動画のタイトルの頭に投稿者ブロックボタン( f:id:h1mesuke:20100612134852p:image )が表示されるようになりますので、それをクリックすることによってその動画の投稿者を NGユーザーに登録することができます。

しきい値フィルタ

動画の「再生数」/「コメント数」/「マイリスト数」がしきい値未満の動画を検索結果から削除します。再生数やコメント数をある程度獲得した人気の動画だけチェックしたい場合などに有効です。

フィルタしきい値は個別に設定できます。

「視聴できません」フィルタ

投稿者あるいは運営によって削除されてしまった動画を検索結果から削除します。

有料動画フィルタ

有料動画を検索結果から削除します。

AutoPagerize に対応

AutoPagerize と併用できます。

自動更新機能

スクリプトアップデートチェックを自動化したい場合は、インストールした Greasemonkeyスクリプトの自動更新を行ってくれるアドオン Wescript の利用を推奨します。

設定方法

各種フィルタの ON/OFF、NGパターンの登録/削除などは、ページ最上部の「メニュー」から設定画面を呼び出して行って下さい。*2

f:id:h1mesuke:20101013135733p:image

▼設定画面

f:id:h1mesuke:20100711014026p:image

f:id:h1mesuke:20100711014027p:image

NGパターンは1行に1つずつ登録して下さい。投稿者ID以外の NGパターンは正規表現として解釈されます。(両端を「/」で囲む必要はありません。また、半角アルファベットの大文字と小文字は区別されません)

NGパターンはサンプルも兼ねていくつか初期設定が登録してありますが、何が削除されて欲しいかは人によって異なるので必ず各自で編集して使って下さい。

初期設定では、「タイトル」フィルタ、「視聴できません」フィルタ、有料動画フィルタが ON になっています。これだけでも十分効果がありますが、さらに厳しい条件で検索結果をフィルタリングしたい場合は、必要に応じてその他のフィルタも ON にしてみるといいでしょう。

動作の確認

Firefox のエラーコンソールにフィルタリングされた動画のタイトルとその理由を出力するようになっています。フィルタが期待した通りに動作しているか確認したい場合は「ツール > エラーコンソール」の出力をチェックしてみて下さい。

非同期通信の発生条件

一部のフィルタは動画の詳細情報を取得するためにニコニコ動画サーバーへ問い合わせを行います。その場合、通信の待ち時間が発生するため、検索結果表示からフィルタリング完了までのレスポンスが若干低下します。以下にその条件を示します。

フィルタ非同期通信
タイトル不要
説明文△必要 (4列表示時)
最新コメント△必要 (1/4列表示時)
タグ必要
投稿者必要
再生数
コメント数
マイリスト
不要

基本的に、検索結果に含まれていない情報が必要となる場合には非同期通信が必要になります。非同期通信によって取得した情報は一定数キャッシュするようになっていますので、同じ動画に対する問い合わせが連続して何度も発生することはありません。

更新履歴

0.2.7_2010-11-21

0.2.6_2010-10-31

0.2.5_2010-10-14

  • ページ最上部のメニューから設定画面を開けるようにした

0.2.4_2010-10-12

0.2.3_2010-10-08

0.2.2_2010-09-29

  • 検索結果ページの変更に対応
  • 投稿者フィルタが正常に動作しなかった問題を修正

0.2.1_2010-08-08

  • 検索結果ページの HTML変更により、動画件数のカウントに失敗していた問題を修正
  • フィルタリングされた動画のマスク機能を無効に*3

0.2.0_2010-07-11

  • GM_config を自作ライブラリ USConfig *4 で置き換え
  • それにより設定画面がたまに出ない問題が解決


更新履歴が長くなってきたため、これより古い部分は別ページに移動しました。

ToDo
進捗ToDo実装
検討中キャッシュの圧縮0.2.x
検討中投稿後の日数によるフィルタ0.2.x
検討中再生時間によるフィルタ0.2.x
完了設定画面へのアクセス改善0.2.5
完了自作ライブラリによる gm_config の置き換え0.2.0
完了たまに設定画面が開かない問題を解決0.2.0
完了有料動画フィルタ0.1.8
完了タグフィルタ0.1.6
完了投稿者フィルタ復活0.1.6
検討中4列表示時の「最新コメント」/「投稿者」フィルタの両立0.1.x
完了XHRキャッシュ0.1.0
決定自動更新機能をなくし、wescript で代替0.1.0
完了「視聴できません」フィルタ0.1.0
完了投稿者フィルタ0.1.0
完了説明文フィルタ(全文)0.1.0
完了最新コメントフィルタ(4列表示時)0.1.0
不具合の報告等

不具合報告や感想などありましたらコメント欄の方へどうぞ。特に、ニコ動HTML変更を受けてスクリプトが動作しなくなった場合などは、コメ欄の方へ一報を入れていただけると、作者の対応が(少し)早くなる可能性があります。

Twitter もやってますんで、そちらへのリプライも歓迎です。

*1:ことの発端は自分の好きな作品の「ミリ知ら」シリーズにイラッときたことであった。

*2:「ツール > Greasemonkey > ユーザスクリプトコマンド > Nicovideo Results Filter」 または ウィンドウ最下部の「f:id:h1mesuke:20100110104650p:imageを右クリック > ユーザスクリプトコマンド > Nicovideo Results Filter」でも開くことができます。

*3:検索結果の HTML変更を受け、マスク用 div要素の位置を揃えるのが難しくなったため。

*4github にて公開準備中