テレビ録画メディアサーバー構築入門(第26回)
EPGSmod: TV番組 録画 予約 支援アプリ
スマホだけで簡単に、番組改編期の新番組予約 & 予約競合の解消!
番組改編期に欠かせない新番組の録画予約や、頭を悩ませる予約の競合解消を、スマホひとつで簡単に完結させたい。 EPGStationでは少々手間取るこれらの作業を、シンプルかつスムーズに行えるようにする簡易拡張補助ツール EPGSmodをつくりました。
対象:EPGStationユーザー
目的:スマホでサクッと録画予約の登録削除(EPGStationの機能拡張)
要件:EPGStation v2、docker環境
【テレビ録画・視聴環境】
バックエンド: Mirakurun + EPGStation
フロントエンド: Jellyfin + EPGSmod
インストール
dockerイメージをダウンロード起動
sudo docker run -d --network host --name epgsmod --restart unless-stopped ghcr.io/takyao/epgsmod:latest起動したら、ブラウザで3001ポートにアクセス。http://localhost:3001 もしくは、http://インストールしたPCのIPアドレス:3001
ダッシュボード(第14回、第25回)から利用するなら、homepage設定~/homepage/config/services.yamlに、以下の下3行を追記
- fearow22:
- jellyfin:
icon: jellyfin.png
href: http://100.x.y.z:8096
- EPGSmod:
icon: https://raw.githubusercontent.com/takyaO/epgsmod/refs/heads/main/public/epgsmod.png
href: http://100.x.y.z:3001使い方
0. EPGStation の URL:port を入力・確認・保存。ゴミ箱は入力履歴の削除用。複数の録画サーバーを一括管理可能な仕様にしています
注:SSRF対策として、TailscaleのIPアドレス(100.x.y.z)を含むプライベートネットワーク環境を想定
ジャンルを選択し、検索ボタンをクリック。取得件数 は選択可能。
検索結果は、番組選択欄に表示される。リストの中から、ひとつの番組(エピソード)を選ぶ。
「[新]」をチェックすると、新番組 [新] のみ抽出します。
「時刻順」をチェックすると、放送開始時刻順に並び替えます。チェックなしは名前順(五十音順)。
「抽出略」をチェックすると、抽出処理を省略して、下のキーワード出力欄にそのままコピーします。キーワード欄には、番組(エピソード)から抽出した「番組名」(シリーズ)が自動で入る。
自動抽出された「番組名」(シリーズ)をキーワードとして、EPGStationの録画ルールに追加できる。
また、抽出した「番組名」を検索ワードとしてネット検索できる。
キーワードは、自由に編集可能。たとえば、タレント名・グループ名・チーム名(手入力)をキーワードに一括録画予約可能。
「[再] 除外」をチェックすると、再放送[再]を除外キーワードにする。
「概要詳細 含」をチェックすると、番組名だけではなく、番組概要と詳細もキーワード検索対象になる。
「重複許可」をチェックすると、録画済み番組を排除しない。
4. 予約の競合を確認できる。競合して録画不可な番組にくわえて、優先される番組一覧が表示される。いずれかを削除(取消)することで、予約競合を解消できる。
5. ルール一覧には、有効なルールが表示される。各項目をクリックすると、EPGStationのルール編集ページに飛ぶ(細かな調整はEPGStationで!)。
6. 予約一覧。本家EPGStationのダッシュボード/予約タブの簡易版「再発明」ですが、削除機能がなかったので追加しました。
本ツール EPGSmod は、もともとは番組名抽出機能の動作確認用スクリプトを発展させたもので、キーワード抽出のところで 、番組名抽出の技術(第7回)を使用しています。番組名抽出関数はshellからjsに移植したのですが、空白区切り文字について、前者のフォルダ名用では強め(短め)に、後者のキーワード用では弱め(長め)に切り出してます。
EPGStation は録画サーバーとしての機能には満足なのですが、ツールとしての細やかな操作性に改善の余地を感じていました。録画視聴ツールとしては、既にJellyfinに完全移行しています(第6回)。残るは、録画予約ツールとしての操作性でした。本ツールEPGSmodにより、EPGStationは完全に裏方の存在になりました。
【テレビ録画・視聴環境】
バックエンド: Mirakurun + EPGStation
フロントエンド: Jellyfin + EPGSmod
ユーザーの多いEPGStationは汎用性を保つことが非常に重要ですが、最近はメンテナンスされていません。自分用に機能拡張しても、公開するとなると、EPGStationごと管理するのは手に負えないので、プラグイン的寄生ツールにまとめることにしました。はじめてのアプリ開発でしたが、意外に簡単なので驚いています。なるほど、専業プログラマーが失業するわけです。
ソース(github)。機能追加・バグ修正等あるかもしれないので、更新方法
sudo docker stop epgsmod
sudo docker rm epgsmod
sudo docker rmi $(sudo docker images -q ghcr.io/takyao/epgsmod)
sudo docker pull ghcr.io/takyao/epgsmod:latest
sudo docker run -d --network host --name epgsmod --restart unless-stopped ghcr.io/takyao/epgsmod:latest
EPGSmodの開発にはGoogle Geminiを利用しました。



コメント