2020年夏 Linux地デジ視聴環境を簡単&安価に構築する方法
いつもながら、僕は前書きが長いと思います。
「アンパンマンの同じ話を延々繰り返し見るのはもう嫌だ!」
子供たちと不毛なチャンネル争いをせずに、金曜ロードショーの新海誠アニメとかを思う存分楽しみたいと思ったのでした。
調べるとLinuxにEPGStationってソフトがある模様。これを使えばPCやタブレットからTVが見られそう。
早速構築手順を調べてみると、PCでの地デジ界隈は15年前位に大きな盛り上がりがあったことが分かりました。 当時は地デジで放送されたデジタルデータをコピープロテクトがかかっていない生データ(ts)で取りだす方法が大人の事情で塞がれており、有志がドライバのセキュリティホールを突いたり?とかグレーっぽい感じでそれを実現していたようです。
その界隈のノウハウもWeb上には結構残っているんですが、「地デジの暗号化アルゴリズムの勉強のために作られたソースをコンパイルする」とか、「特定のバージョンのドライバに出所不明の謎パッチを充てる」とか、とにかく煩雑かつ正解がなんなのかよくわからない世界になっていました。
最近はLinuxのデジタルTV系のデバイスとB-CASカードがあれば普通にts保存ができるっぽいですね。海外の地デジはコピープロテクトが無いらしいので、それの普及によって状況が変わったんですかね。
今回は15年前のカオスから徹底的に目を背け、ソースコードのコンパイルとか謎パッチ適用とかを一切せずにLinuxでテレビを見る方法をご紹介します。
Webにある情報を集約してる感じですが、2020年6月時点の正解ルートを残しておく感じと言うことで
(※2021年10月に内容更新しました。)
用意するもの
以下のH/Wが現状一番苦労が無い&最安値だと思います。
PX-S1UD互換のTVチューナー
Amazonを見ると、PLEX純正の他にもまったく見た目が同じ奴が売ってます。 ここではAmazon最安(\3095)かつ箱付きのVAST DTVをチョイスしました。
dmesgを見るとPX-S1UD Digital TV Tunerと認識してるので、PLEXがOEM提供してるっぽいですね。
SCR3310互換のICカードリーダー
NTTCom製が有名ですが、こっちも安い互換品(\1889)があるのでそれを使います。
PCで地デジ界隈でよく名前が出てくる日立のHX-520UJはLinuxでは使えないので要注意です。 (良く調べずにメルカリで買ってめでたく爆死)
インストール手順
Ubuntu Server 20.04のインストール
GUI不要かつdeb系が好きなので。 特に注意事項はありません。
以降はsudo -sして、root権限で作業します。
PX-S1UDのファームウェアのインストール
PLEXが配っているドライバからファームウェア(isdbt_rio.inp)を抜き出して/lib/firmwareにコピーするのが定石ですが、 Debianのnonfreeにも使えるファームウェアがあったのでそっちを使います。
この方法だと、ドライバを展開するunzipのインストールとファームウェアをコピーする手順が不要になるので、多分これが一番早いと思います。
curl -O http://http.us.debian.org/debian/pool/non-free/f/firmware-nonfree/firmware-siano_20190114-2~bpo9+1_all.deb dpkg -i firmware-siano_20190114-2~bpo9+1_all.deb
docker-composeのインストール
特筆事項無し
apt-get install docker-compose
docker-mirakurun-epgstationのクローン
mirakurunとepgstationから成るコンテナを作ってくれるdocker-compose定義をGithubからさくっといただきます。
※2021年10月23日時点の最新コミットをcheckoutするようにしています。最新版がいい場合はgit checkoutせずに突き進んでください。
(その後のセットアップ手順がうまくいかなくなる可能性があります。)
apt-get install git git clone https://github.com/l3tnun/docker-mirakurun-epgstation git checkout f048b3c76 cd docker-mirakurun-epgstation cp -p docker-compose-sample.yml docker-compose.yml
mirakurunの設定
「みらくるん」ってなんなんですかね。 今春のプリキュア映画のゲストキャラがそんな名前らしいですけど。
tuners.ymlの設定
お好きなエディタ(まぁ皆さんvimだと思いますけど) mirakurun/conf/tuners.yml
以下の定義をして下さい。
- name: adapter0 types: - GR dvbDevicePath: /dev/dvb/adapter0/dvr0 decoder: arib-b25-stream-test command: >- dvbv5-zap -a 0 -c ./config/dvbconf-for-isdb/conf/dvbv5_channels_isdbt.conf -r -P <channel>
EPGStationの設定
cd epgstation/config/ cp -p config.yml.template config.yml cp -p enc.js.template enc.js cp -p epgUpdaterLogConfig.sample.yml epgUpdaterLogConfig.yml cp -p operatorLogConfig.sample.yml operatorLogConfig.yml cp -p serviceLogConfig.sample.yml serviceLogConfig.yml
コンテナ起動
cd ../../ docker-compose up -d
チェンネルスキャン
以下のURLを叩くと受信可能なチャンネルを勝手にmirakurun/config/channel.ymlに登録してくれます。
curl -X PUT "http://localhost:40772/api/config/channels/scan"
スキャンが終わったらmirakurunを再起動します。
http://サーバのIPアドレス:40772にアクセス。
右上のRestartをクリックします。
ステータスがstandbyになった後Eventsを見ると、番組表のダウンロードが始まっていることが分かると思います。
番組表がダウンロートし終わったぽくなったら、EPGStationを開いてみます。
http://サーバのIPアドレス:8888にアクセスして番組表(GR)を選択。
「ライブ」タブまたは番組表のTV局をクリックすると放送中の動画がブラウザで見れます。