Nico Excluder


ニコ動のホロライブタグのランキングが煽りとかで溢れててキレた
特定の投稿者の動画を非表示にするスクリプト書いたhttps://t.co/WQkIarlGU0
— Isaac (@_leo_isaac) June 16, 2020
ニコニコ動画のランキングページにて、指定した投稿者の動画を非表示にするスクリプト。視界から消す、ただそれだけ。
本スクリプトは、拒否したい投稿者のUserIDの配列をdenyUserList
というkeyでstorageに設定することで動作する。
また、この配列を外部に保存しておき、denyUserListUrl
にそのURLを設定することで、denyUserListを更新することができる。
なお本スクリプトでは、広く知られているニコニコ動画のWebAPIであるgetthumbsinfoを使用している。
https://dic.nicovideo.jp/a/ニコニコ動画API
サービスに過度な負荷をかけないよう、下記の工夫を行っている。
- 動画のサムネイルが画面の表示領域に来た時に、初めてWebAPIを叩いている
- 同時に1つのWebAPIしか叩かず、また1秒のインターバルを置いている
- 一部の結果をキャッシュしている
この工夫は、増えたり減ったりするかもしれない。
簡単な使い方
1. UserScript用のアドオンをインストールする
お使いのブラウザにいずれかのUserScript用のアドオンを入れる。有名なものとして下記のアドオンがあり、いずれも本スクリプトが正常に動作することを確認している。
私個人としては、開発がより盛んであるViolentmonkeyの使用を薦める。
2. 本スクリプトをインストールする
このページでスクリプトをインストールする。
一度、 https://www.nicovideo.jp/ranking/genre/all にアクセスしておく。この時、下記の状況が起こる。
- 自動的にStorageがセットアップされる
- Tampermonkeyの場合、「A userscript wants to access a cross-origin resource.」というウィンドウが表示される
- これは本スクリプトが動画IDからユーザIDを引くために外部のWebAPIを利用しているためである
- 「Always allow」をクリックして許可してほしい
3. 以上
インストール後に特に設定をしなければ、 私が勝手に作成した 非表示ユーザリストに基づいて動画を非表示にしていきます。
これは、私がエンターテイメントの動画ランキングを見ていて「あ、これ不快」と思った時に、投稿者を調べて追加しています。
勿論、ご自分でカスタマイズすることもできます↓
カスタマイズ方法
1. 拒否したい投稿者のUserIDを確認する
ニコニコ動画上で、拒否したい投稿者のユーザページを開く。
URLはこんな感じのはず。
https://www.nicovideo.jp/user/xxxxxxxx
UserIDはURL上の/user/
の後の数字として現れる他、ページ内のID:
の後に表示される。このUserIDをクリップボードにコピーするなどしておく。
2. 拒否したい投稿者のUserIDを設定する
ここではViolentmonkeyでのストレージの設定方法について記す。
Tampermonkeyでストレージを編集したい場合は、コチラを参考にしてほしい。
Violentmonkeyの設定画面を開き、本スクリプトの「Edit」ボタンをクリックする。
上のメニュータブに「Values」タブがあるので、クリックする。
「No value is stored」を表示されていれば、「+」(プラス)ボタンをクリックし、次のように入力する。
- Keyには、「denyUserList」と入れる
- Valueには、拒否したい投稿者のUserID(String)を配列にしたものを入れる
つまり、
[
"xxxxxxxx",
"yyyyyyyy",
"zzzzzzzz"
]
のように入力する。これはJSONの記述であるから、UserIDはダブルクオーテーション("
)で囲み、文字列の最後にはカンマ(,
)を付ける(最後の行にカンマを付けてはいけない)。これを拒否したい投稿者のUserIDの分だけ入力する。
なお、このJSONをウェブ上に保存しておき、先程の要領でストレージに下記のように設定することもできる。一度取得すると1時間キャッシュされる。
- keyには「denyUserListUrl」と入れる
- Valueには、JSONで保存した先のURLを入力する
- ダブルクオーテーションなどで囲うとエラーになります
- 例
終わりに
何か質問などあれば、フィードバックに書き込んで頂くか、個別に連絡される場合はTwitterのDMまでご連絡ください。