NicoCache_nl は、ニコニコ動画の通信を中継し、視聴した動画をローカルへ保存して再利用する HTTP/HTTPSプロキシー兼キャッシュサーバーです。
導入と初回設定は NicoCache_nl USAGE GUIDE を参照してください。
- 使い方や設定の質問は Q&A Discussions
- 新機能や改善案は Ideas Discussions
- 再現可能な不具合や文書の誤りは Issue作成画面
- 脆弱性は公開Issueへ書かず、
SECURITY.mdの非公開報告手順
報告先の詳しい選び方と、公開してはいけない情報は SUPPORT.md を参照して
ください。コードや文書を変更する場合は CONTRIBUTING.md に従います。
本体コードと標準資材は NicoCache License で提供されます。配布物に含まれる
外部依存関係の権利表示は packaging/windows/THIRD-PARTY-NOTICES.txt を確認してください。
- 初回セットアップで利用者データの保存先を選び、HTTPS MitM、ローカルCAの信頼登録、
proxy.pac、ログオン時自動起動を設定します。通常は4項目とも推奨設定のまま進めます。 NicoCacheLauncherを起動し、画面またはタスクトレイの「本体を起動」を選びます。 ランチャーを開いただけでは本体も診断アプリも起動しません。- ブラウザーで初回セットアップ時に設定した
proxy.pacを使用し、ニコニコ動画を視聴します。 NicoCache_nlを経由して受信した動画は、選択した利用者データフォルダーのcache/へ保存されます。 - 終了するときは、ランチャー画面またはタスクトレイの「本体を停止」を選びます。 本体と診断アプリが揃って正常終了し、ランチャーだけが残ります。
本体の設定を変更するときは、アプリケーションフォルダーのdefaults/を直接編集せず、
変更する項目だけをconfig.propertiesへ記述します。利用者が追加するlocal/、nlFilters/、
Extensionと、キャッシュ、証明書、個人設定は利用者データフォルダーへ置きます。
初回起動時に、config.properties、proxy.pac、利用者側のnlFilters/、list/、
local/、data/cors/にある認識可能なテキストをUTF-8(BOMなし)へ自動変換します。
変換前のバイト列は利用者データのdata/text-encoding-backups/v1/へ保存され、結果は
data/text-encoding-migration-v1.propertiesとランチャーの「データルート診断」で確認できます。
判定できないファイルや形式を確認できないファイルは変更されません。診断に表示された
ファイルだけをテキストエディターでUTF-8として保存し直してください。
証明書は全利用者が作り直す必要はありません。ランチャー診断でsite.targetsの対象不足が
表示された場合だけ、現在のcertificate-targets.txtからSITE証明書を再生成します。
既存のcerts/ca.jksを再利用するため、通常はca.cerをOSやFirefoxへ登録し直す必要は
ありません。CA自体を削除・再生成した場合だけ、新しいca.cerを信頼登録し直します。
NicoCache_nl Updaterは、本体と外部依存関係を更新する自己完結アプリです。
GitHub ReleasesからOSとCPUに合う
アップデーターを導入して使用します。
- NicoCache_nl本体を停止します。
- アップデーターを起動し、表示された更新対象フォルダーが現在のNicoCache_nlであることを 確認します。自動検出されない場合は対象フォルダーを選びます。
NicoCache_nlタブで「更新チェック」を行い、新しい版があれば更新します。外部依存関係タブで「全てチェック」を行い、必要なものだけを個別に、または 「全てインストール」で更新します。
外部依存関係では、Eclipse Temurin、FFmpeg、Bouncy Castle、Apache Ant、7-Zip、 GPAC/MP4Boxを管理できます。本体更新では配布物のSHA-256を検証し、置換に失敗した場合は 既存内容を復元します。更新対象が使用中だと更新できないため、先に本体を停止してください。
ランチャーはNicoCache_nl本体とは別の起動管理アプリです。次の操作を行えます。
- 本体の起動、状態確認、通常停止、強制停止
- 起動管理画面のタスクトレイ格納
- ログオン時自動起動の登録、更新、削除
- 利用者データフォルダー、HTTPS証明書、
proxy.pac、権限の診断
ランチャーのウィンドウを閉じるとタスクトレイへ格納されます。「ランチャーのみ終了」は
ランチャーだけを終了し、本体と診断アプリは停止しません。CLIでは
--launcher-only-stopで同じ操作を安全に実行できます。
画面のない環境ではNicoCacheLauncher.jarを次のように使用できます。
java -jar NicoCacheLauncher.jar --headless --start
java -jar NicoCacheLauncher.jar --headless --status
java -jar NicoCacheLauncher.jar --headless --stop
java -jar NicoCacheLauncher.jar --headless --launcher-only-stop
java -jar NicoCacheLauncher.jar --headless --check-data-root
本体は、ランチャー、直JAR、ヘッドレス、自動起動のどの経路でも、別プロセスの診断アプリを
起動して起動完了を確認します。管理APIと実際の
プロキシー経路を2秒ごとに監視し、3回連続で応答しない場合や本体が予期せず終了した場合に、
利用者データフォルダーのdiagnostics/incidents/へ匿名化済みHTMLレポートを保存します。
外部への自動送信と本体の自動再起動は行いません。
エラーが起きた時はこの匿名化済みHTML診断レポートを添付しIssueで報告してください。
診断画面の「今すぐ収集」で手動レポートを作成し、「レポートを開く」で保存先を確認できます。 ウィンドウを閉じても監視は続きます。本体を正常停止すると診断アプリも終了します。 本体がクラッシュした場合だけは診断アプリが残り、障害レポートを採取します。 診断画面の「診断アプリを終了」は本体へ正常停止を要求して両方を終了します。
以下は、feat: ファーストコミット(2026-07-20)以降に追加された主な機能と使い方です。
- 自己完結パッケージ: Windows、Linux、macOS向けのインストーラー、アプリイメージ、 ZIPに専用Javaランタイムを同梱しました。通常はOSに合うパッケージを導入するだけで使えます。
- 初回セットアップ: 利用者データロケーション、HTTPS証明書、プロキシー、自動起動を初回ウィザードで簡単に設定できます。
- アプリケーションと利用者データの分離: 更新される標準資材(アプリケーションルート)と、キャッシュや個人設定を 別の場所(データルート)へ保存できるようになりました。保存先は初回セットアップで選び、独自資材は 利用者データ側の同名フォルダーへ追加します。 Windowsでは既定でアプリケーションルートが$env:LOCALAPPDATA\NicoCache_nl、データルートが$env:USERPROFILE\Documents\NicoCahce_nlに保存されます。
- 独立アップデーター: 本体と外部依存関係をGUIから確認・更新できるようになりました。 本体を停止してから、上記の手順で使用します。
- 起動管理ランチャー: 本体の起動・停止、タスクトレイ常駐、ログオン時自動起動、 利用者データ診断を1つの画面で扱えるようになりました。通常は本体を直接起動せず、 ランチャーの「本体を起動」を使います。 自動起動を設定してある場合は本体も自動起動するようにタスクスケジューラに設定してあります。
- 常駐診断アプリ: 応答停止や予期しない終了を検出して、ログ、実行環境、監視履歴、 稼働中に保持した直近のJVMスナップショットをHTMLへ自動保存できるようになりました。 通常は本体の自動管理に任せ、 任意の時点の情報が必要なときだけ「今すぐ収集」を使います。 収集した診断レポートはIssueで提出してください。
- CMAF/Domand MP4変換アプリ: 保存済みの完成キャッシュをFFmpegで単一MP4へ変換できる
GUIを追加しました。
tools/cmaf-to-mp4/のアプリを起動し、キャッシュフォルダーと 出力先を選んで変換します。FFmpegが必要なので独立アップデーターでインストールしてください。 - ログ検索と検索履歴: mainとExtensionのログを通常文字列または正規表現で絞り込める
ようになりました。
Ctrl+Fで検索欄へ移動し、Escまたは「解除」で全件表示へ戻します。 - ワンクリックでデバッグログ記録: GUIのチェックボックス「デバッグログを debug.log に記録」で記録を切り替えられる
ようになりました。問題が起きる前に有効にし、再現後の
debug.logを確認します。 自動切り詰めがあるので常時ONでもファイルサイズが莫大になりません。しかしこの利用方法は非推奨です。必要なときだけONにしてください。 - 大量ログの非同期配送: WebSocketが実装されました。大量のフィルターログが出ても本体処理とGUIを止めにくくなります。自動で使用されるため設定は不要です。
- 現行ページのキャッシュ表示: 検索、ランキング、視聴、シリーズ、ユーザー、Nアニメなどの
動画サムネイルへ表示する保存済み品質を示すバッジが新しくなりました。
NicoCache_nl経由で各ページを開くと自動表示され、動画リンクへカーソルを合わせると
サムネイル情報ポップアップも表示されます。新しく保存するCMAF/Domandキャッシュの
ファイル名には
lowを付けませんが、既存のlow付きキャッシュも引き続き利用できます。 - コモンヘッダーのキャッシュ操作: CommonHeaderのあるページへ「NicoCache」メニューを 追加しました。ログイン時はアカウント項目の直前、非ログイン時は「ニコニコ会員登録」と アカウントプレースホルダーの間に表示されます。視聴ページでは「動画保存」「コメント保存」 「音声のみ保存」「キャッシュ削除」を利用でき、他のページでは「キャッシュへ」から キャッシュ管理画面を開けます。トップ、静画、生放送、チャンネル、大百科、実況、Nアニメ、 ブロマガ、コモンズ、ニコニコQ、ニコニ貢献、ニコニ立体、ニュース、ニコニコ広場など、 ホストが異なるCommonHeader導入ページでも同じ配置を使用します。コメント保存は対象動画を事前に開かなくても、 NicoCache_nlが視聴ページから最新の取得情報を確認してJSONを保存します。ログインが必要な 動画では、ニコニコ動画への直近HTTPS通信で確認した認証情報をプロセス内だけで再利用します。
- 専用管理サイトとREST API:
https://nicocachenl.test/で、キャッシュのID・タイトル検索、 状態・画質による絞り込み、並び替え、公開状態確認、ニコニコ視聴ページ表示・保存・個別削除・一時キャッシュの 一括削除に加え、local/配信ファイルのフォルダー一覧・作成日時・更新日時・サイズ・種類、 ヘルス、JVM・メモリー・スレッド診断を確認できます。/api/v1では認証なしでlocal/の 機械可読な一覧を取得できるほか、キャッシュの検索・再生・保存・DELETEによる削除を提供し、 動画ID単位の一時キャッシュ削除は取得中なら完了・中断後へ 安全に予約します。API契約はdocuments/api.mdを参照してください。 - Brotli/Zstandard対応: 上流の
brとzstd圧縮応答を展開して書き換えられるように なりました。通信時に自動判定されるため設定は不要です。 - Java LTS 17/21/25対応: 外部Javaで起動する場合に長期サポート版(LTS)である3世代を正式対応とし、Java 25を 推奨版にしました。通常のパッケージ利用では同梱ランタイムが自動で使われます。Java 25は少なくとも2031年9月までのサポートがあります。
- メーカー別JDKの互換性対応: CIで様々なJDKでコンパイルテストしているため、利用可能なすべてのJDKと互換性があり、それらのJDKで利用することが出来ます。
- 標準nlFilterとnlFilter Labの統合: 標準フィルターを本体と同時に更新でき、独自変更を
Labで事前検査できるようになりました。独自フィルターは利用者データの
nlFilters/へ置き、 検査するときはnlFilters/tools/nlfilter-lab/を使用します。