フロントエンドアプリケーションとの連携
mirakcの準備が整ったので,フロントエンドアプリケーションから利用できるように設定を変更してみましょう.
EPGStation v1
EPGStationのセットアップ方法は,すでに色々なところに書かれているので省略します.以下,既にセットアップ済みの環境が存在すると仮定して説明を行います.
もし,実験目的で設定変更しようとしているのでしたら,以下を実行する前にデータベースのバックアップを作成しておいてください.設定を変更し,EPGStationを再起動すると,データベースに保存されているEPGデータは上書きされます.Mirakurunとmirakcでは利用している文字コード変換処理が異なるため,録画ルールで使用している正規表現などが機能しなくなります.
それでは設定を変更します.変更箇所は以下の1箇所のみです.
{
// 変更不要な設定は省略
"mirakurunPath": "http://raspberrypi.local:40772/"
}
EPGStationを動かしているサーバーからraspberrypi.local
をmDNSを使って名前解決できることを前提としています.mDNSが使えない場合は,IPアドレスもしくは名前解決可能なホスト名に置き換えてください.
EPGStationを再起動すると置き換えは完了します.チャンネル設定で指定したチャンネルの番組表が表示されていれば,置き換え成功です.
EPGStation v2
EPGStation v2では,設定ファイルの形式がJSONからYAMLに変わりました.しかし, Mirakurunからの移行時に書き換える箇所は変わりません.
# 変更不要な設定は省略
mirakurunPath: http://raspberrypi.local:40772/
miraview
miraviewはmirakc用のWeb UIです.コンテナー利用者であれば,README.mdに書かれている手順で簡単に導入できます.
curl
とjq
さえあれば何でもできるけど,さすがに番組表はGUIで見たいという人は利用を検討しましょう.
TVTest
原因はよく分かっていませんが,Mirakurun用のBonDriver_Mirakurun
ではうまく動かないようです.代わりに,epgdatacapbonさんが作成したBonDriver_mirakcを使ってください.
SERVICE_SPLIT=1
とすることでmirakcとBonDriver_mirakc
間の通信量を減らすことができます.
Kodi
PVR IPTV Simple Clientアドオンをインストールすれば,Kodiからライブ視聴が可能となります.
アドオンの設定画面から,以下を設定してください.
- General | M3U Play List URL
- http://
HOST
:PORT
/api/iptv/playlist
- http://
- EPG Settings | XMLTV URL
- http://
HOST
:PORT
/api/iptv/epg
- http://
HOST
およびPORT
は,自分の環境に合わせて書き換えてください.
スキン設定からフォントをArial based
に変更しても日本語が正しく表示されない場合があります.そのような場合は,Kodi内のarial.ttf
を日本語グリフを含んだUnicode対応フォントに置き換えることで改善します.以下にmacOSでの設定例があります.
タイムシフト・ファイルシステムをSambaで公開している場合,smb://<host>/<folder>
をビデオソースとして登録することで,録画ファイルをKodi
で再生できます.以下のオプションがお薦めです.
- Viewtype: WideList
- Sort by: Date
- Order: Descending
Sambaを使った場合,サムネイル画像の生成などのために集中的なファイルアクセスが発生し, mirakc-timeshift-fsおよびSambaを稼働させているマシンが一時的に高負荷状態になることがあります.この負荷状態は,サムネイル画像の生成をやめるなどKodiの設定を見直すことでを回避できます.しかし,他にも問題があるようで,タイムシフト録画ファイルが大量に存在すると,Kodiがハングすることがありました.そのため,Kodiでタイムシフト録画を視聴する場合,後述のMiniDLNA経由にすることを推奨します.
MiniDLNA (ReadyMedia)
mirakc/minidlnaは廃止予定なので,後述のmirakc/timeshift-gerberaを使ってください
タイムシフト録画をTVで視聴しようと思っても,TVがSambaをサポートしていない場合があります.このような場合でも,もしTVがDLNA/UPnPをサポートしているなら,MiniDLNAを使えばTVで視聴可能です.
MiniDLNAはinotifyを使って録画ファイルの更新を検出できますが,残念ながら以下のような状況では機能しません.
- タイムシフト・ファイルシステムの実装で利用しているFUSEでは,inotifyがサポートされていません
mount.cifs
でマウントしたファイルシステムはinotifyをサポートしていません- Dockerコンテナーにマウントしたホストファイルシステム上では,inotifyが動作しない場合があります
そこで,MiniDLNAにパッチを当てたDockerイメージmirakc/minidlnaを用意してあります.これを使えば DLNA/UPnPをサポートしているTVでタイムシフト録画を視聴可能です.
使用方法については,README.mdを参照してください.
mirakc/timeshift-gerbera
タイムシフト録画をTVで視聴しようと思っても,TVがSambaをサポートしていない場合があります.このような場合でも,もしTVがDLNA/UPnPをサポートしているなら,Gerberaを使えばTVで視聴可能です.
Gerberaの設定は多少面倒なので,専用のDockerイメージmirakc/timeshift-gerberaを用意してあります.
このDockerイメージでは,コンテナー内でmirakc-timeshift-fs
を実行するため,自動アンマウントやタイムシフト・ファイルシステムのファイル所有権の問題が発生しません.そのため,mirakc/timeshift-fs
を直接使用するのではなく,mirakc/timeshift-*
の使用を推奨します.
類似のDockerイメージを自分で作成したいという方は,GitHub にソースをアップロードしてあるので参考にしてください.
KodiはGerberaと相性が悪く,タイムシフト録画を再生できません.詳細は mirakc/docker-timeshift-x#2を見てください.
VLCはGerberaから供給されるタイムシフト録画を問題なく再生できることを確認済みです.
mirakc-searchとmirakc-rec
コマンド操作に慣れている人は,mirakc/contribにあるスクリプトの利用をお勧めします.
タイムシフト録画用の
timeshift/timeshift.sh
も追加しました
mirakc-search
#!/bin/sh
export MIRAKC_SEARCH_CUSTOM_PROGRAM_JQ_DIR=/path/to/program-jq
export MIRAKC_SEARCH_BASE_URL=http://mirakc:40772
sh /path/to/mirakc/contrib/search/search.sh "$@"
mirakc-rec
#!/bin/sh
export MIRAKC_REC_BASE_URL=http://mirakc:40772
sh /path/to/mirakc/contrib/recording/recording.sh "$@"
変数と/path/to/...
は,自分の環境に合わせて書き換えてください.
この2つのスクリプトを使って,BSPの映画を録画予約してみます.
# BSPの映画を検索
# ビルトインのフィルター以外にも,直接フィルターをインラインで指定することも可能
$ mirakc-search movie gt-1h msid 'map(select(.msid == 400103))'
ID START END MINS ...
40010309234 2023-06-23 13:00 2023-06-23 14:45 105 ...
...
# 録画予約
$ mirakc-rec add 40010309234
ID STATE START END MINS ...
40010309234 scheduled 2023-06-23 13:00 2023-06-23 14:45 105 ...
-h
オプションで各スクリプトのヘルプが表示されます.