まーきのブログ

ニコ動三昧の日々で思ったことなど

ランキングデータファイルにいいね!数を追加するツール

ニコニコランキングメーカーで作ったランキングデータファイルにいいね!数を追加するツールを作りました。

 

たとえばこのようなランキングデータ(rank.txt)があったとします。

・・・新・豪血寺一族 -煩悩解放 - レッツゴー!陰陽師 2007年03月06日 00:33:00 sm9.png

 

ツールを起動し、ランキングデータファイルのフルパスを「参照」ボタンで指定して、「いいね!数」を出力したい列数を指定します。

NRM Ver3.07以上のデータファイルですと、標準レイアウトでは14列目になります。

「いいね!数取得」ボタンクリックで取得を開始します。

f:id:mar_ky:20210608210425p:plain

画面下部に取得状況が表示されます。

f:id:mar_ky:20210608210552p:plain

元のランキングファイルと同じ場所に、ファイル名+Like (rankLike.txt)
というファイルが作られます。指定した列にいいね!数が出力されています。

・・・ -煩悩解放 - レッツゴー!陰陽師 2007年03月06日 00:33:00 sm9.png 7953

元のデータより大きい列数を指定した場合は、末尾にいいね!数が追加されます。

削除動画や非公開動画など、取得できない場合は「取得に失敗しました」と表示し、データに「-」が出力されます。

 

いいね!数をポイントに加算したい場合は「ポイントに加算する」にチェックを入れ、ポイントの列数を指定します。(標準レイアウトでは8列目)

f:id:mar_ky:20210608210522p:plain

 


動画IDを指定して取得することも可能です。
画面下部に表示されますのでコピペして使用します。

f:id:mar_ky:20210608210645p:plain

 


スナップショット検索APIを利用して取得していますので、朝5時に集計されたいいね!数です。ご注意ください。

朝5時以降に投稿された動画の取得は失敗します。

 

DLはこちらから。ZIPファイルのパスワードは「NRM」です。

https://drive.google.com/file/d/1-tC35lZ5J8IthtIrEBcGyWbPFWCPXp2Q/view (GetLike.zip)

 

ニコニコランキングメーカーでいいね!数を取得する

5月20日からスナップショット検索APIに「いいね!数」と「ユーザーID」が追加されたのでAPI検索時に対応してみました。

 

ランキングデータファイルの13列目に「ユーザーID」(公式動画の場合は「チャンネルID」)、14列目に「いいね!数」を出力します。

「タグ」は15列目になりました。

※以前のバージョンで出力したデータファイルと互換性がありませんので、
 以前のファイルを利用される場合は以前のバージョンのNRMをご利用ください。

 

HTML検索時は空白となります。  「いいね!数」のみ出力が可能になりました。

また、詳細情報更新では「ユーザーID」を出力し、「いいね!数」は空白になります。

 

いいね!数をポイントに加算するかどうかは利用する方により違うと思いますので、

加算したい方は「上級者向け1」の「ランキングファイルをカスタマイズする」にチェックし、出力書式の「デフォルト」ボタンを押して、表示された書式の9行目の式に「+like」を追加してください。

 

f:id:mar_ky:20210521210911p:plain

出力書式

<expression val="view+res+mylist*X"/>
                         
<expression val="view+res+mylist*X+like"/>

(※Xは「リスト作成・更新」タグの「マイリスト倍率」の設定値。画像では1)

 

なお、詳細情報所得でユーザーのニックネームも取得するようにしました。

上記のランキングファイルのカスタマイズで、ニックネームを出力したい列を

<user_name/>」に変更するか、新しい行に「<user_name/>」を追加してください。

※出力書式を変更した場合は、入力書式も同じように変更してください

上記変更をした場合、詳細情報取得以外ではその位置に空白が出力されます。

 

 

【2021/5/24追記】

マイリストの説明文更新を実行すると、公式動画の場合エラーが発生していましたので対応しました。

 

【2021/6/29追記】

HTML検索でいいね!数が取得出来るようになりました。

 

【2021/7/1追記】

詳細情報取得チェック時に、いいね!数を空白で上書きしないようにしました。

 

【2021/7/30追記】

ランキング過去ログファイルでいいね!数が取得可能になりましたので、対応しました。

以下の記事で配布しています。

ニコニコランキングメーカーのフィルターでユーザーIDを指定する

 

ニコニコランキングメーカーの差分作成を並列で処理する

ニコニコランキングメーカーをマルチスレッドで処理できないかという要望を頂きました。

調べてみると、リスト作成・更新タブの差分作成で使用している「ランキングデータファイルに指定の動画IDが存在するかチェックする」という共通処理が並列化できそうでしたので、実装しました。

差分作成では、例えば1万件のランクファイル同士の差分を求めるのに1億回の総当たりを行いますが、今までCPUを1スレッドしか使用していなかったのでかなりの時間がかかっていましたが、全スレッドを使用するようになりましたのでかなり時間が短縮されました。

処理の並列化にはC#のバージョンを上げる必要がありましたので、.NET Frameworkを4.0に上げました。Windows10では問題なく動くと思います。



また、タグ検索で複数の条件指定が出来ないかという要望も頂きました。

そこで、「投稿日時」+α が指定出来るように「投稿日時指定を併用」を追加しました。

使い方ですが、まず検索順を「投稿日時が新しい or 古い順」にして投稿日時を指定します。
この時に「投稿日時指定を併用」にチェックを入れます。



次に、別の検索順に移動し、2つめの条件を指定します。
下の例では、再生数が10000以上を指定しています。
この状態で検索すると、上で指定した投稿日時+再生数10000以上で検索します。



「投稿日時指定を併用」は「条件指定」にチェックが入っている時のみ有効です。
「投稿日時が新しい or 古い順」を選んで検索した時はこのチェックに効果はありません。



その他、マイリストの説明文更新で、8月に「マイリストメモ」の更新に対応しましたが、公式動画の場合に更新が出来ていませんでしたので、公式動画にも対応しました。



以上に対応したニコニコランキングメーカーをアップロードしました。
パスワードは「NRM」です。

https://u6.getuploader.com/ondouru/download/546/nicorank30620.zip


【03/16追記】
視聴ページ変更のため動画DLが出来なくなっていましたので対応しました。



ニコニコランキングメーカーのAPI検索でジャンルを指定する

スナップショット検索APIで、フィルター条件にジャンルを指定できるようになっていたので、ニコニコランキングメーカーを対応してみました。
取得方法が「API」の時のみ有効になります。 【2/16】「HTML」の時にも対応しました。
「全ジャンル」を選ぶと今まで通り全てのジャンルが対象になります。
(ジャンル未設定を含む)


ジャンルを絞り込みたいときにお試しください。
パスワードは「NRM」です。
https://u6.getuploader.com/ondouru/download/533/nicorank30516.zip

【2/16追記】
HTML検索で投稿日時を指定した場合も事前に絞り込んで検索するようにしました。
1600件を超える場合の絞り込みにジャンルと投稿日時を利用できます。

【2/19追記】
nrmcのジャンル指定検索呼び出しに対応しました。

【3/22追記】
UNICODE文字を含むタグ、タイトルに対応しました。

【4/4追記】
RSSのランキングファイルに空白行が入る事象に対応しました。

【7/28追記】
ニコニコ動画のリニューアルに対応しました。
こちらの記事より最新版を取得してください。 → entry/20210727/1627395252


ニコニコランキングメーカーのAPI検索で10万件以上取得する

7月2日にスナップショット検索APIで仕様変更があり、取得できる件数が10万までになったとご報告を頂きました。
正確にはAPIの取得オフセットに指定できる値が最大10万となりました。

APIは1回に100件までしかデータを返しませんので、取得オフセットを100ずつ大きくする事ですべてのデータを取得できますが、あまり大きな値をオフセットに指定すると負荷が高くなるため、予防措置を設けたそうです。

そこで、1回に取得した100件の検索順の最小値(または最大値)を、次の開始条件としてフィルターに指定し、APIを呼び出すことにしました。
同じ値の動画が複数存在する場合は、次の動画から取得するようオフセットを調整します。
この方法により、取得オフセットを最小にしたまま検索が続けられるようになりました。

なお今回の変更で、検索順をコメントが新しい順、または古い順にすると、コメント無しの動画が取得できなくなりました。
これはAPIの仕様なのか不具合なのか、公式窓口に確認中です。
→【7月19日】公式より仕様と回答がありました。

「途中経過を保存」には対応していません。 【7月9日】対応しました。

ちなみに、上級者向け1タグの「タグ検索の間隔」をデフォルト値の8秒より小さくすると、取得時間を早めることができます。(最小値=3秒)
ただし、サーバー負荷が高くなるので多用はお控えください。

また、この変更と合わせて、ランキングデータファイルの11列目にサムネURL、12列目にジャンルを出力するようにしました。


パスワードは「NRM」です。
https://u6.getuploader.com/ondouru/download/527/nicorank30511.zip


【7月10日追記】
API検索で、条件指定時に必要なページのみ取得するようにしました。
また、条件指定時に検索が終わらない不具合がありましたので併せて修正しました。

【7月24日追記】
ランキング過去ログがアクセス拒否時にエラーとなる問題に対応しました。

【8月1日追記】
API検索で、大量データ出力時のメモリー不足に対応しました。

【8月18日追記】
API検索で、titleがnullで返ってくる事象に対応しました。

【9月3日追記】
起動時の403エラーに対応しました。

【9月29日追記】
差分作成時もサムネURL、ジャンルを引き継ぐようにしました。
また、ランキングファイルのカスタマイズにも対応しました。
サムネURLは「thumbnail_url」、ジャンルは「genre」をご指定ください。

【11月30日追記】
公式動画(動画IDがsoで始まる動画)からスレッドIDへリダイレクトされなくなり、
サムネイルの取得でエラーが発生していました。
公式動画も一般動画と同じ方法で取得するようにしました。

【12月2日追記】
ランキングダウンロードで、ファイル名に使用できない文字がタグに含まれると、
エラーとなっていました。
使用できない文字を除去して保存するようにしました。

【1月19日追記】
ランキングダウンロードでRSS指定時に、URLで使用できない文字を含む人気のタグが
エラーとなっていました。
人気のタグをURLエンコードして取得するようにしました。

【2月8日追記】
HTMLのタグ検索で最終ページを超えると404エラーが返ってくる仕様変更に対応しました。

【7月28日追記】
ニコニコ動画のリニューアルに対応しました。
こちらの記事より最新版を取得してください。 → entry/20210727/1627395252



ニコニコランキングメーカーで新ランキングをDLする

ニコニコランキングメーカーのランキングDLを、6月26日から実装された新ランキングに対応しました。

リアルタイムで更新されるランキングRSSXMLファイル)と、毎日0時頃に保存されるランキング過去ログファイル(jsonファイル)がDLできます。

ファイルの種類でRSSを選択した場合、当日有効なジャンルと人気のタグを表示します。
全ジャンルを選ぶと、全てのジャンルと人気のタグを選択リストに表示します。
ジャンルリストを選ぶと、そのジャンルと人気のタグのみが選択リストに表示します。



ファイルの種類で過去ログを選択した場合、日付と生成時間(0時 or 5時)が指定出来ます。
指定した日に存在したジャンルと人気のタグを表示します。
なお、過去ログは毎時ランキングが存在しませんので、操作不可となります。


各期間で指定できる日付は下記の通りです。
・24時間・・・2019/06/11~当日
・週間 ・・・2019/06/17~当日
・月間 ・・・2019/07/01~当日
・全期間・・・2019/06/11~当日

週間は指定した日の直前の月曜日の、月間は指定月1日の過去ログを取得します。
生成時間で5時を指定した場合は、週間と月間は取得できません。

人気のタグは、RSSは毎時と24時間、過去ログは24時間しかランキングデータがないので、
それ以外の期間が指定されていた場合、RSSでは直前に取得したランキングを取得し、
過去ログでは無視されます。


DLしたファイルはリスト作成・更新タブのランキング解析でランキングデータファイルにしてください。
ファイルはランキング順になっていますので、「並び替え」は「しない」をお勧めします。

なお、新ランキングでは期間ポイントが取得できませんので、差分作成タグを利用するか、
ご自身で差分値を計算してご利用ください。

パスワードは「NRM」です。
https://u6.getuploader.com/ondouru/download/516/nicorank3053.zip

【6/29追記】
過去ログの生成時間を0時か5時で選べるようにしました。
また、複数の過去ログを解析した時に動画が重複して出力されていましたので修正しました。

【7月24日追記】
ランキング過去ログがアクセス拒否時にエラーとなる問題に対応しました。

【12月2日追記】
ファイル名に使用できない文字がタグに含まれる場合に対応しました。

【2020年8月19日追記】
RSSを選択した場合にランキング全ページを取得するようにしました。
こちらの記事より最新版を取得してください。 → entry/20210727/1627395252


動画の大きいサムネ画像を一括DLするツール

ランキング動画でランク下位の作品などをサムネ表示する時があります。
サムネ画像はニコニコランキングメーカーのサムネイルDL機能で通常サイズ(130x100)が取得できます。

新仕様に変わって960x540や1280x720のサイズで動画編集するようになると、通常のサムネ画像では小さく感じるようになりました。

動画のサムネ画像は通常サイズの他にMサイズ(320x180)やLサイズ(360x270)が保存されています。(※【2019/01/03追記】【2019/05/24追記】あり)

(例)
通常サイズ:http://tn-skr1.smilevideo.jp/smile?i=31559856
Mサイズ:http://tn-skr1.smilevideo.jp/smile?i=31559856.M
Lサイズ:http://tn-skr1.smilevideo.jp/smile?i=31559856.L

そこで、サムネイルDL部分を抜き出して、大きさを選ぶオプションを追加してみました。



「小」が通常サイズ、「中」がMサイズ、「大」がLサイズです。
Mサイズの場合は動画ID+"M"、Lサイズは動画ID+"L"というファイル名で保存します。

なお、Lサイズのサムネイルは2011年12月以降に投稿、Mサイズは2014年5月以降に投稿した動画しか保存されていませんので、それ以前に投稿した動画は取得できません。

また、公式動画(soで始まるID)は通常サイズしかサムネイルがないため取得できません。

パスワードは「GTN」です。
https://u6.getuploader.com/ondouru/download/492/GetThumbnail.zip

適当なフォルダに解凍するだけです。
不要になったらこのEXEと、同じフォルダに出来るGetThumbnail.txtを削除して下さい。

【2018/02/28追記】
ランクファイルの選択ボタンクリック時にファイルオープンダイアログを開くように変更しました。

【2019/01/03追記】
2018年よりniconicoサービスのhttps化の一環?により下記URLに移行しているようです。
(例)
通常サイズ:https://tn.smilevideo.jp/smile?i=31559856 など。(http~でも可)

また、2018年12月中頃より投稿された動画の後ろには「.XXXXX」が付くようになりました。(例)
https://tn.smilevideo.jp/smile?i=34404251.98094

【2019/05/24追記】
5月21日頃よりサムネURLが大きく変わりました。
(例)
https://nicovideo.cdn.nimg.jp/thumbnails/35159021/35159021.71221705

本ツールはAPIから都度、最新のURLを取得しているため、変更後でも使用できます。