「ニコニコ動画の コメント検索 → 動画逆引き (2024/08/14)」
何かと騒がしかった最近のネット界隈。
さて。ニコニコ動画って
実は「コメント検索 → 動画逆引き」
の機能があるのはご存知でしょうか。
まあ見てもらったほうが早いでしょう。
↑の画像は
"あら^~"
と言うワードでコメントを検索。
→ ヒットしたコメントの動画IDを取得
→ 動画の再生
→ コメントの位置に移動し、スクリーンをキャプチャーした物です
実際。全部「あら^~」って感じでしょう。
(ユーザーコメントを元に取得してるのですから当たり前ですが)
個人的に、
2020年ぐらいから、クローラーを自作して
稼働 / 取得 / 構築。
数十万件のアニメ動画 / コメントによるデータベースを作成して
私のローカルサーバーに構築しています。
(もちろんこれはあくまで。
私個人が、自分の趣味のために構築している物。
外部公開はしません)
で。さて。
これ、どーやってるかと言うと。^^;
ニコニコ動画の公開API
(Application Programming Interface。
簡単に言えば、
〇〇をしたい? → じゃあこのコマンド打って
公式のコマンド表と思ってください。)
を使います。簡単に言えば、
〇〇をしたい? → じゃあこのコマンド打って
公式のコマンド表と思ってください。)
APIの仕様自体は、公開されているので
Webブラウザ & URLを打ち込む事で取得できますが。
それよりも簡単なのは
C#で作られた Niconico Toolkit
ライブラリを使うことでしょう。
だいたい、↓のようなコードを使って。
//※あくまで概念図。実際のコードとは違う。
//APIを作成
var api = new NiconicoToolkit.NiconicoContext();
//"アニメ"とか一般ワードで検索すると数百万ヒットしてしまう。
//それでは多すぎるから、作品別で検索する方がベター。
var titles = ["タイトル1","タイトル2",...]
//全てのタイトルに対して
foreach (var title in titles)
{
//タイトルの検索 & 結果の取得
var items = api.VideoSnapshotSearch.GetVideoSnapshotSearchAsync(title);
//全てのアイテムに対して
foreach (var item in items)
{
//コメントを取得
var comments = api.Video.VideoWatch.GetInitialWatchDataAsync(item.id);
//全てのコメントに対して
foreach (comment in comments)
{
//コメントが目的のワードを含んでいたら、
if (comment.contains("あら^~"))
{
//該当箇所のスクリーンを取得&保存
retrieve(item);
}
}
}
}
/*
あとは好きに。
コメントテキストさえ取得しちゃえば、
テキスト検索でなんとでもできます。
*/
次回にもっと詳しく解説するかも。