鯖落ち中のニコニコ実況の避難所、NX-Jikkyo を開発しました

NX-Jikkyo : ニコニコ実況避難所
サイバー攻撃で期間未定の鯖落ち中のニコニコ実況に代わる避難所です。長期化してほしくないけど長期化に備え…
GitHub - tsukumijima/NX-Jikkyo: NX-Jikkyo: Nico Nico Jikkyo Alternatives
NX-Jikkyo: Nico Nico Jikkyo Alternatives. Contribute to tsukumijima/NX-Jikkyo development by creating an account on GitH...

NX-Jikkyo は、サイバー攻撃で最低7月末まで鯖落ち中 のニコニコ実況に代わる、ニコニコ実況民のための避難所であり、ニコニコ生放送互換の WebSocket API を備えるコメントサーバーです。
お気に入りのソフトを使い続けながら、今まで通りテレビを楽しく実況できます。

Twitter@TVRemotePlus やハッシュタグ #NXJikkyo では NX-Jikkyo の最新情報を発信しています!ぜひチェックしてみてください🙏

jkcommentviewer v2.3.7.3 以降で、ニコニコ実況の代わりに NX-Jikkyo のコメントをリアルタイム表示できるようになりました!!🎉🎊
jkcommentviewer + ニコニコ実況ユーザーの方は [基本設定] → [オプション] → [チャンネルリストの勢いを NX-Jikkyo から取得する] をオンにすると今まで通り実況コメントを表示できるようになるのでアプデ推奨です🙏

TVTest のニコニコ実況表示プラグイン NicoJK master-240613 以降で、ニコニコ実況の代わりに NX-Jikkyo のコメントをリアルタイム表示できるようになりました!!🎉🎊
TVTest + ニコニコ実況ユーザーの方は NicoJK.ini を編集して NX-Jikkyo を有効にすると今まで通り実況コメントを表示できるようになるのでアプデ推奨です🙏
NicoJK の更新方法の詳細は こちら の記事に載せていますのでぜひ一読を🙇

また TVTComment プラグインでも v3.0.1 以降で NX-Jikkyo 対応が追加されています!

KonomiTV 0.10.1 以降で、ニコニコ実況の代わりに NX-Jikkyo のコメントをリアルタイム表示できるようになりました!!🎉🎊
KonomiTV + ニコニコ実況ユーザーの方は [サーバー設定] → [ニコニコ実況の代わりに NX-Jikkyo からリアルタイムに実況コメントを取得する] をオンにすると今まで通り実況コメントを表示できるようになるのでアプデ推奨です🙏

Sponsored Link

開発経緯

個人的にもニコニコ実況がすぐに復活してくれればそれが一番良かったのですが、2024/06/14 時点での ニコニコインフォの報告 によれば、ニコニコ実況 (ニコニコ生放送公式チャンネル) の復旧は最短でも8月以降になりそうな極めて厳しい状況です。
2020年12月までのニコニコ実況は独立していたのですが、Adobe Flash 廃止に伴いニコ生のチャンネル生放送として統合されてしまいました。
よってニコ生本体が完全復旧しない限り、ニコニコ実況も当分復旧しそうにありません。

ニコニコ実況が使えない時間が続けば続くほど、リアルタイムに実況できないのはもちろんのこと、録画でニコニコ実況の過去ログを見て作品を楽しむライフワークもできなくなってしまいます。
1ヶ月以上もテレビを実況できない生活は相当に受け入れ難いものです。

そこで突貫工事ではありますが、ニコニコ生放送互換のサードパーティーソフトが比較的対応しやすい技術仕様で、ニコニコ実況が使えない間の繋ぎとしてテレビを実況できる、このサイトを開発しました。

ぜひこのサイトをまだ NX-Jikkyo を知らないニコニコ実況難民の方に広めていただけると嬉しいです!
コメントサーバーの負荷問題は……なんとかします…!現時点での最大瞬間ユーザー数の数倍程度なら今のサーバーでも捌けそうな状況です。

NX-Jikkyo を「ホーム画面に追加」することで、PC のデスクトップやスマホのホーム画面から普通のアプリのように起動できます!特にスマホで実況している方におすすめです。

ソースコードは GitHub で公開しています。API ドキュメント もあります。
WebSocket API のドキュメントは FastAPI が API ドキュメントを自動生成してくれないため現状ありませんが、ニコ生の WebSocket API のドロップイン代替として機能するはずです。

勘の良い方はおそらくお気づきの通り、このサイトは私が長年開発している KonomiTV の大半のソースコードを流用して開発しています。
一部 UI が不自然な箇所がありますが、元々 KonomiTV のプレイヤーロジックはそのまま動画再生処理だけを強引に無効化し、コメント再生だけを行わせているためです。

運用方針

投稿いただいたコメントは自動的にデータベースに記録されます。書き込んだ瞬間だけでなく、後からでも過去ログを見れるように考慮して設計しています。

またシステム簡素化のため、意図的にアカウント不要で書き込めるようにしています(データベースに個人情報が保存されることは絶対にありません)。
気軽にお使いいただけますが、マナーを守ってのご利用をお願いします。

ニコニコ実況の復活後のこのサイトの処遇は未定です。ニコニコ実況復活後も引き続き需要があれば、あるいはサーバー負荷的に大丈夫そうなら、継続する可能性も十分あります。


このサイトを公開した最大の理由は、十数年にも及ぶニコニコ実況の歴史上異常事態である、1ヶ月以上に渡りテレビの過去ログコメントが完全に断たれる事態をなんとしてでも避けたいからです。
もちろん元々15時間で突貫で作ったサイトなのでバグも多いでしょうし、大量のコメントの負荷には耐えきれないかもしれません。しかし、コメントが全く残らないよりはマシだと考えています。

NX-Jikkyo に書き込んでいただいたコメントの過去ログは、順次 ニコニコ実況 過去ログ API で取得できるよう反映されています!ご安心ください…!

…ちなみに、NX-Jikkyo というサイト名は突貫開発をやる中でたまたま適当にひらめいた名前で、特に深い意味はありません。
もう少しかっこいい名前が出てくれば良かったのですが、「Jikkyo」と入れないと何のサービスか分かりづらそうというのもあり…。

動作環境

PC: Google Chrome

  • Firefox でも動作するはずですが、コメント描画が重めなことが確認されています。
  • 動作確認も基本行っておらず、積極的なサポートはしていません。Chrome を使うことをおすすめします。
  • Mac Safari はサポートしていません。Mac でも Chrome を使ってください。

Android: Google Chrome

  • Android の Firefox はサポートしていません。

iPhone (iOS) / iPad (iPadOS): Safari

  • iOS / iPadOS 17.1 以降のみに対応しています。
  • 動作確認は iOS / iPadOS 17.1 以降で行っています。
  • iOS / iPadOS の Chrome (WKWebView) はサポートしていません。
  • Safari は全体的にバグが多く開発が大変なため、全体的にあまり動作確認を行えていません。修正できていない不具合があるかもしれません。

TVTest (NicoJK) の NX-Jikkyo への対応方法

いざ NicoJK を更新しよう!と思っても、この辺りの環境のアップデート方法を忘れてしまった方も多いのではないでしょうか。

ここでは、どの環境か (私が公開しているビルド済みアーカイブ版 TVTest か) を問わず適用できる、TVTest プラグイン NicoJK の、NX-Jikkyo 対応版へのアップデート方法を紹介します。
さすがに下記手順の TVTest は 0.10.0 系が前提ですが、0.7.23 でも使えるかもしれません。

NicoJK.tvtp・jkcnsl.exe の更新

Release master-240613 · xtne6f/NicoJK
✏NicoJK.tvtp、jkcnsl.exeの更新(避難所に対応)

まず、上記 URL から NicoJK-master-bin.zip をダウンロード&解凍します。

解凍後のフォルダはこのような構造になっています。

ここから TVTest のビット数 (32bit 版 or 64bit 版) かによって開くフォルダが異なります。
32bit 版の TVTest をお使いの場合は、BonDriver 同様に x86 フォルダを開いてください。
64bit 版の TVTest をお使いの場合は、これも BonDriver 同様に x64 フォルダを開いてください。

私は 64bit 版 TVTest を使っているので、x64 フォルダを開きました。
このブログで配布しているビルド済みアーカイブ版 TVTest をお使いの場合は、あなた自身で選択していない限り 64bit 版のはずです(この記事 では 64bit 版 TVTest を推奨しています)。

x86 x64 フォルダそれぞれに、32bit 用 / 64bit 用の NicoJK.tvtp と jkcnsl.exe が入っています。
これらを TVTest のインストール先フォルダにコピーしていく必要があります。

まず、NicoJK.tvtp を C:\(TVTestのインストール先フォルダ)\Plugins に上書きコピーします。
この記事 通りに進めていれば、配置パスは C:\DTV\TVTest\Plugins\NicoJK.tvtp になるはずです。

次に、jkcnsl.exe を C:\(TVTestのインストール先フォルダ) 直下、つまり TVTest.exe と同じフォルダに上書きコピーします。
この記事 通りに進めていれば、配置パスは C:\DTV\TVTest\jkcnsl.exe になるはずです。

現在の NicoJK は、jkcnsl.exe というニコニコ実況 / NX-Jikkyo の WebSocket に接続するコマンドラインツールに依存しています。
NicoJK を NX-Jikkyo に対応させるには、必ず jkcnsl.exe も更新する必要があります。

NicoJK.ini の編集

ここまでの手順で、NicoJK.tvtp / jkcnsl.exe を最新版にすることができました。

ただし、NicoJK で NX-Jikkyo のコメントを流すには、NicoJK.ini に追加の設定が必要になります。
ちょっと面倒ですが、すぐ終わりますので頑張りましょう…。

NicoJK.ini (NicoJK の設定ファイル) はユーザーによって手動で設定が編集されていることがよくあるため、単純に上書き更新することができません。今回のように NicoJK.ini に設定項目が追加されたときは、新旧両方の差分を見比べながら手動で設定を調整する必要があります。

このブログで配布しているビルド済みアーカイブ版 TVTest に同梱されている NicoJK.ini は、より初心者の方でも使いやすいように一部設定のカスタマイズが行われています。
単純に NicoJK-master-bin.zip 同梱の NicoJK.ini で上書きしてしまうと、それらのカスタマイズ設定が全て失われてしまいます。注意してください。

まず、メモ帳で NicoJK.ini を開いてください。
通常はダブルクリックでメモ帳が開くはずですが、うまく開けない方は右クリック → [編集] からメモ帳で開けるはずです。

メモ帳を開いた後、「勢いウィンドウの情報の取得先のアドレスを指定」と書かれた項目が出てくるまで下にスクロールします。
見つかったら、上のスクショのようにテキストを選択してください。

; 勢いウィンドウの情報の取得先のアドレスを指定
; # 旧ニコニコ実況の/api/v2_app/getchannelsのような中身を想定しています
; # クッキーは送信しません
; # 指定しない場合、受信中の実況の勢いのみ独自に計算して表示します
; # http://jk.from.tv から始まるアドレスがニコニコ実況用、https://nx-jikkyo.tsukumijima.net がから始まるアドレスが NX-Jikkyo 用です
; channelsUri="http://jk.from.tv/api/v2_app/getchannels"
channelsUri="https://nx-jikkyo.tsukumijima.net/api/v1/channels/xml"

; 避難所のWebSocketのアドレス(wss://~)を指定
; # このキーが指定されていれば.nicovideo.jpには接続しません。代わりに有志の避難所に接続します
; # クッキーは送信しません
; # アドレス中の{jkID}は実況の番号(jk?)、{chatStreamID}はチャットのID(ch???やlv???など)に置換されます
refugeUri=wss://nx-jikkyo.tsukumijima.net/api/v1/channels/{jkID}/ws/watch

一旦テキストを選択状態でこの項目を Backspace で削除します。
その後、上記の設定をコピペしてください。

正しくコピペできていれば、変更後のメモ帳が上のスクショのような画面になっているはずです。
スクショと変更内容が一致していることを確認した上で、Ctrl + S で保存してからメモ帳を終了します。

今後ニコニコ & ニコニコ実況が正常に復旧しニコニコ実況に人が戻ってきた際に、NicoJK で接続するコメントサーバーを NX-Jikkyo からニコニコ実況本家に戻すには、以前上記手順で変更した NicoJK.ini 内の記述を、下記の通りに書き換えてください。
2024/06/14 時点での ニコニコインフォの報告 によれば、ニコニコ実況 (ニコニコ生放送公式チャンネル) の復旧は最短でも8月以降になりそうな極めて厳しい状況です。現時点では復旧後のニコニコがどうなっているのか(そもそも未曾有のインターネット大災害とも言える状況でサ終ギリギリを彷徨っていたニコニコ実況は果たして存続しているのか?)全く見当もつきませんが…。

; 勢いウィンドウの情報の取得先のアドレスを指定
; # 旧ニコニコ実況の/api/v2_app/getchannelsのような中身を想定しています
; # クッキーは送信しません
; # 指定しない場合、受信中の実況の勢いのみ独自に計算して表示します
; # http://jk.from.tv から始まるアドレスがニコニコ実況用、https://nx-jikkyo.tsukumijima.net がから始まるアドレスが NX-Jikkyo 用です
channelsUri="http://jk.from.tv/api/v2_app/getchannels"
; channelsUri="https://nx-jikkyo.tsukumijima.net/api/v1/channels/xml"

; 避難所のWebSocketのアドレス(wss://~)を指定
; # このキーが指定されていれば.nicovideo.jpには接続しません。代わりに有志の避難所に接続します
; # クッキーは送信しません
; # アドレス中の{jkID}は実況の番号(jk?)、{chatStreamID}はチャットのID(ch???やlv???など)に置換されます
; refugeUri=wss://nx-jikkyo.tsukumijima.net/api/v1/channels/{jkID}/ws/watch

TVTest での動作確認

ここまできたら NicoJK の NX-Jikkyo 対応版への更新は完了です!お疲れさまでした!🎉🎉
早速 TVTest を開いてみましょう。

パネルの NicoJK タブを開いて、ちゃんとコメントと勢いカウントが表示できていたら成功です!

NicoJK の「ログ」タブを表示させた状態で、「コメントサーバー(避難所)に接続開始しました」というログが出ていれば、正しく NX-Jikkyo に接続できています!

KonomiTV の NX-Jikkyo への対応方法

GitHub - tsukumijima/KonomiTV: KonomiTV: Kept Organized, Notably Optimized, Modern Interface TV media server
KonomiTV: Kept Organized, Notably Optimized, Modern Interface TV media server - tsukumijima/KonomiTV
Release KonomiTV (β) 0.10.1 · tsukumijima/KonomiTV
ニコニコ実況の長期鯖落ちに伴い NX-Jikkyo (ニコニコ実況避難所) のコメントサーバーに対応しました! KonomiTV + ニコニコ実況ユーザーの方はサーバー設定から NX-Jikkyo を有効にすると再び実況コメントを表示できる...

(実はこのブログではほとんど触れていないのですが)私がかれこれ3年開発している KonomiTV でも、version 0.10.1 以降で NX-Jikkyo に対応しています。

アップデート方法は以前と同一(0.9.0 以降のバージョンからの移行であればインストーラーが使えます)なので割愛して、NX-Jikkyo への対応方法を説明します。

KonomiTV 0.10.1 のリリース時点では NX-Jikkyo の利用者がどこまで増えるか未知数でしたので、KonomiTV でニコニコ実況の代わりに NX-Jikkyo からリアルタイムにコメントを取得するには、サーバー設定を変更する必要があります。
そして KonomiTV のサーバー設定を変更するには、管理者アカウントでログインしている必要があります。

KonomiTV の管理者アカウントとは?

KonomiTV にはアカウントシステムがあり、KonomiTV アカウントを作成することで、Twitter ログイン・設定のデバイス間の同期などの恩恵が受けられます。
このアカウント情報はローカルにインストールした KonomiTV サーバーにのみ保存され、ネット上の外部のサービスに保存されることはありません。

KonomiTV サーバーに一番最初に作成されたアカウント (ID: 1) には、自動的に管理者権限が付与されます。
家族で使っている場合などでほかのアカウントに管理者権限を付与する必要がある場合は、その管理者アカウントでログインした状態で、サーバー設定 →「アカウントの管理」から別のアカウントに管理者権限を付与できます。

アカウントを作成したことはあるもののすでに削除されていて現在は KonomiTV サーバー上にアカウントが全く登録されていない状況の場合、再度アカウントを作成すると、作成後のアカウントに自動的に管理者権限が付与されます。

もしまだ KonomiTV アカウントを作成していない方は、今のうちに作成しておいてください。
ユーザー名とパスワードだけで登録できます。

NX-Jikkyo の有効化

管理者アカウントでログインすると、設定 →「サーバー設定」のグレーアウトが解け、一通り設定を変更できるようになります!

サーバー設定画面で「テレビのライブストリーミング」までスクロールし、「ニコニコ実況の代わりに NX-Jikkyo からリアルタイムに実況コメントを取得する」をオンにしてください。

その後、忘れずに「サーバー設定を更新」ボタンを押します。

ただし、サーバー設定画面上部にも書いてあるとおり、サーバー設定の変更を反映するには KonomiTV サーバーの再起動が必要です。
「サーバー設定を更新」ボタンのさらに下にある「KonomiTV サーバーを再起動」ボタンを押して、KonomiTV サーバーを再起動してください。

20秒ほど待った後、「再起動が完了しました」というアラートが出たら、ニコニコ実況の代わりに NX-Jikkyo のコメントをリアルタイム表示できるようになっているはずです…!
実況勢いにも対応しており、「ニコニコ実況の代わりに NX-Jikkyo からリアルタイムに実況コメントを取得する」が有効なときはチャンネルリストに NX-Jikkyo の実況勢い (コメ/分) がに表示されます!

おわりに

ニコニコ実況と異なり、NX-Jikkyo ではシステム簡素化のため認証機能がありません。
アカウントを作成したりログイン情報を設定することなく、誰でも自由に書き込んでいただけます。ただし、節度を守ってのご利用をお願いします。(要約:荒らさないでね

相当な同時接続が見込まれるリアルタイムチャットシステムを開発運用したことがなく最初はヒヤヒヤしていましたが、様々なパフォーマンス改善の結果かなり安定して運用できるようになっていて感慨深いです。

もし何かわからないことや躓いた点があれば、遠慮なくコメント欄にてご連絡ください。確認次第返信させていただきます!

コメント

  1. NicoJK更新の際に忘れがちですが、NicoJK.tvtpとNicoJK.iniだけでなく、jkcnsl.exeの更新も必要となります。

    • そこ大事ですね…!!補足ありがとうございます!!

  2. こんにちは。
    NX-JikkyoをiPhoneSE(gn1)で使うとコメント再生停止中、動画の読み込みに失敗しましたと出ます。下のコメント欄はコメントが反映されていますが、背景画像ありの場所ではコメントが流れません。また、設定マークを押しても項目が少ないような気がします。iOSにより対応していなかったりということはありますか?よろしくお願いいたします。

    • iPhone SE (第一世代) ですよね? NX-Jikkyo はブラウザアプリですが、iOS は残念ながらブラウザエンジン (Safari) 側の更新と OS の更新が一体となっています。
      iPhone SE (第一世代は) iOS 15 を持って更新が打ち切られています。NX-Jikkyo のベースとなっている KonomiTV は iOS 17 / Safari 17 未満に対応していないため、正常に動作しないと思われます。
      また手元に iOS 16 未満のデバイスがないため、動作確認を行うこともできません。お手数ですが、最新のデバイスでのご利用をお願いいたします。

      • そうなのですね、了解です。ちょっとした要望なのですが…古いiPhone向けの救済として例えば下部コメント欄(スレッド式というのでしょうか)のみの全面対応というのも選択できると助かるのですが…ご面倒な場合には不可で大丈夫です。少数かと思うのですが未だ古い端末を使う方もいて需要が多少なりあるのではないかと。
        ニコ実が使えずこのサイトを知りましたがこちらを作って下さり大変ありがたく思います。