ChinachuからEPGStationに移行した
R.I.P. Chinachu
Chinachu の最後のコミットは 2022年1月18日 である。
さらにChinachuで使用している Node.js v14 は 2023年4月30日 でEOLを迎えていた。
また README にはもう開発をしないと明記されている。
LAN外にはパスワードで保護されているし、基本的に閉じた環境で使っているので無視しようと思えばできるのだが、やはり今後も機能追加や修正がないことを考えると現在主流である EPGStation に移行するのが賢い選択だと思った。
Chinachu も EPGStation もチューナーサーバーには Mirakurun を推奨しており、今までの知見を活かせてとても良い。
また、 EPGStation に書かれているコードは割と Chinachu を参考にしているらしい。(要出典だがどこかで見た)
環境構築
とはいえあまり書くことがない。
EPGStation の作者の方が Mirakurun + EPGStation の compose ファイルを用意してくれており、基本的にはこれに修正を加えればすぐ動く。
ただ私は Mirakurun での録画コマンドに recpt1
を使用しているのでそれ用の Dockerfile を作成した。
(もしかして最近はそれ使わない…?)
私のこれには Mirakurun のチャンネル一覧やチューナーのコンフィグファイルもサンプルとして置いているので PT3 を使っている人はそのままで使いやすいと思う。
録画データの移行
有志の方がお引っ越しツールを作っていてくださるのでありがたく使わせていただく。
ただ一点、これは Mirakurun を使用しないβ時代の古い形式をそのまま移行することができなかった。
どうしても番組IDの移行箇所で落ちてしまう。
番組IDの算出方法
Chinachu β
app-scheduler.js#L503-L506
var programId = ''; programId += ch.id.toLowerCase().replace('_', ''); programId += '-'; programId += parseInt(c.$.event_id, 10).toString(36);
Mirakurun 記事執筆時点最新版 v3.9.0-rc.4
src/Mirakurun/Program.ts#L24-L26
export function getProgramItemId(networkId: number, serviceId: number, eventId: number): number { return parseInt(`${networkId}${serviceId.toString(10).padStart(5, "0")}${eventId.toString(10).padStart(5, "0")}`, 10); }
このようにIDの付け方が違い、 -
が36進法では不正なためスクリプトを回しても落ちてしまっていた。
しかし落ちてくれたからこそ分かったので感謝。
β時のIDの具体的な移行方法
例1
{
"id": "gr1072-hb1",
"channel": {
"n": 5,
"type": "GR",
"channel": "23",
"name": "テレビ東京1",
"id": "GR_1072",
"sid": "1072"
},
"category": "anime",
"title": "ゆるゆり さん☆ハイ! 「それは、すなわち、娯楽の始まり」",
"subTitle": "それは、すなわち、娯楽の始まり",
"fullTitle": "【新】ゆるゆり さん☆ハイ! #1「それは、すなわち、娯楽の始まり」",
"detail": "赤座あかりだよ!「ゆるゆり」がテレビに帰ってきたよー!夏休みも終わって学校も始まって、またごらく部のみんなで楽しいことしたいな!じゃあさっそく部室いこう!",
"episode": 1,
"start": 1444064700000,
"end": 1444066500000,
"seconds": 1800,
"flags": ["新"],
"isConflict": false,
"recordedFormat": "",
"isSigTerm": true,
"tuner": {
"name": "PT3-T1",
"isScrambling": false,
"types": ["GR"],
"command": "recpt1 --device /dev/pt3video2 --b25 --strip --sid <sid> <channel> - -",
"n": 2
},
"recorded": "/Chinachu/recorded/[151006-0205][GR23][PT3-T1]ゆるゆり さん☆ハイ! 「それは、すなわち、娯楽の始まり」.ts",
"command": "recpt1 --device /dev/pt3video2 --b25 --strip --sid 1072 23 - -"
}
- チャンネル の
networkId
がわからないのでγ時代の他の録画から探す "id": "1i5dhps"
らしい- 10進数に直すと
3274201072
これにはserviceId
も含まれている(networkId: 32742
serviceId: 1072
とわかる) eventId
はそのままhb1
とわかる- それを10進数に直すと
22429
- Mirakurun の書式にならってID化すると
327420107222429
例2
{
"id": "bs211-182s",
"channel": {
"n": 17,
"type": "BS",
"channel": "211",
"name": "BS11",
"id": "BS_211",
"sid": "211"
},
"category": "anime",
"title": "この素晴らしい世界に祝福を!",
"subTitle": "",
"fullTitle": "この素晴らしい世界に祝福を! 第1話【新】",
"detail": "",
"episode": 1,
"start": 1452880800000,
"end": 1452882600000,
"seconds": 1800,
"flags": ["新"],
"isConflict": false,
"recordedFormat": "",
"isSigTerm": true,
"tuner": {
"name": "PT3-S1",
"isScrambling": false,
"types": ["BS", "CS"],
"command": "recpt1 --device /dev/pt3video0 --b25 --strip --sid <sid> <channel> - -",
"n": 0
},
"recorded": "/Chinachu/recorded/[160116-0300][BS211][PT3-S1]この素晴らしい世界に祝福を!.ts",
"command": "recpt1 --device /dev/pt3video0 --b25 --strip --sid 211 211 - -"
}
- チャンネルの
networkId
は今や見慣れた8ksz
だった - 10進数で
400211 (networkId: 4, serviceId: 211)
eventId: 182s
は57124
- Mirakurun 書式で
40021157124
困ったことはこれくらいで、他はすべて順調だった。
移行してみて
※ v2.10.0
移行してから2週間ほど経ったがだいぶ慣れてきた。
当初、録画済み一覧の画面あたりの表示件数がだいぶ少なくて見づらいと感じていたが、そもそも録画済み一覧を見返すことがあまりなかった。
だが時たま「昔のいつの番組だっけな~」の時には見づらく思う。
Chinachu 時代の録画終了コマンドに加え、録画前や録画失敗時のコマンド実行をできるようになったのはとても良い。
Slack へ諸々の通知を飛ばしているが、リアルタイムに状況を把握できて良い。
スクショ
最後に R.I.P. の気持ちも込めて両者のスクショでも貼っておこうと思う。
記憶を記録。
name | Chinachu | EPGStation |
---|---|---|
ダッシュボード | ||
放送中 | ||
Operatorログ | なし | |
Schedulerログ | なし | |
WUIログ | なし | |
ストレージ | ||
番組表 | ||
番組表表示ジャンル設定 | ||
番組表表示設定 | なし | |
番組検索 (EPGStationはルール作成兼用) | ||
ルール一覧 | ||
ルール作成 (EPGStationは検索兼用) | ||
予約済み一覧 | ||
予約詳細 | ||
録画済み一覧 | ||
録画済み詳細 | ||
コンフィグ | なし |
おわり
自分のツイートを遡ったらどうやら2015年8月から Chinachu を使い始めたらしい。
9年という長い間お世話になって作者様にはとても感謝。
そりゃ新しいUIに違和感を感じるわけだよね。
Docker のファイル構造をきれいにしたり録画データの移行で少し詰まったりしていたので9時間かかってやっと移行作業が完了した。
だけどこれからも開発され続けていくであろうことを願って移行してよかった。
昨今テレビという媒体が下火な印象しかないが、やはりリアルタイムな放送を「自分で録画する」という楽しみからは逃れられない。
これからも安定した録画をよろしく頼むよ…!