【初心者向け】Ubuntu20.04とPT3環境にDocker-MirakurunでTVサーバーを構築する

横置きHTPC ファイルTV録画サーバー
録画・ファイルサーバー

ビデオデッキ全盛の時代から映画やアニメなどを録画してますが、キャプチャボードやテレビチューナー(とくにカノープスのMTV1000)が発売してからはもっぱらPCでの録画に移行。その後、いくつか機器を変えながら2009年からはアースソフトのTVチューナー「PT」シリーズとLinuxに対応した録画予約システム「epgrec」というソフトの組み合わせで10年以上ほぼ安定して録画してきました。

が、OSであるUbuntuを更新することになり、これを機に録画ソフトをepgrecから開発が活発なMirakurun+EPG Stationへ変えることを決意。以前は苦戦していたセットアップも、Dockerコンテナにより以前に比べて非常に簡単にインストールできるようになりました。

この記事では備忘録としてUbuntu20.04・PT3という組み合わせの環境に、MirakurunとEPGStation環境を構築する手順を初心者向けに紹介しております。なお、筆者自身がLinux素人のため、間違いもあるかもしれません。ご了承ください。

スポンサーリンク

epgrecからMirakurun+EPG Stationへ

アナログ録画からPC録画というデジタル環境に移行すると、編集や管理が非常にラクになりました。物理メディアを入れ替えなくても番組が楽しめるというのは、想像していた以上に快適です。録画に関してはアナログ放送の時はゴーストやノイズとの闘いでしたが、地デジ放送が2008年から本格化するとそれも相当軽減されました。

しかし、地デジへ移行すると今度はコピーガードとの闘いが始まり、PC録画ではいわゆるTS抜きが流行。TVチューナーもそれに対応した製品へ変更していきアースソフトのPT1が発売されてからはPT2、そしてPT3とPTシリーズをずっと愛用してきました。OSは当初からWindowsではなく興味本位からUbuntuを選択。そしてソフトはいくつかあったかと思いますが、2009年にepgrecが登場してからはずっとそれを使ってきました。

EPGrec公式HPより

epgrecは安定度と使いやすい番組表で瞬く間に人気となり、自分も足りない知識をネットで必死に補いながらなんとか録画環境を構築し、それ以来、いくつかの更新や亜種のepgrec UNAなどに変更はしてきましたが基本的にはずっとepgrecを使ってきました。

ただ、最近は開発が停滞していたこととスマホやタブレットを活用したPC視聴・録画も気になりだし、2019年ごろには様々なトレンドを取り入れた録画システムのChinachuやMirakurun、EPGStationも一度は触ってみました。しかし、UIが自分には合わなかったのと、慣れたepgrecとはまったく異なるインストール手順に苦戦し挫折。結局、その後もepgrecを使い続けたのでした。

しかし2022年1月、OSであるUbuntu18.04のログインパスワードを忘れてしまったのを機にOSのverを20.04へアップグレードしようと思いたち、ついでにMirakurunを調べてみるとDockerで簡単にインストールできるらしいことを知ったので、ならばと録画環境の移行を決意しました。

環境構築は公式の言う通りにしていればだいたいOKだと思うのですが、それでも自分の環境ではつまづいたところがあり、さらに再設定・再インストールするときに忘れて時間を無駄にするでしょうから、下記に手順を残しておきたいと思います。作業時間はだいたい1時間ほどです。

録画サーバーの環境など

PC周りの環境は以下の通りです。パーツ類はだいたい2017年ごろに揃えたものです。

  • PC自作 Pentium G4600、メモリ 16GB、SSD 500GB、HDD 8TB×2
  • OS:Ubuntu 20.04
  • TFチューナー:PT3を2枚差し
  • 録画システム:Docker-Mirakurun-epgstation

TVチューナーに関しては前述の通りアースソフトのPT3を使用。購入してから1度だけ不具合があり修理してもらいましたがそれ以外はトラブルもなく安定していて、さらにDropが少ないのでやはりTVチューナーの中では断トツにオススメです。価格さえ許容できれば無駄なトラブルも回避できるので、これを選んでおけば大丈夫でしょう。

PT3の2枚差し。横置きのPCケースのため、ライザーカードで使用

PT3の2枚差し。横置きのPCケースのため、ライザーカードで使用

現行品の中で探すならPLEX製でしょうか。使ったことはありませんが2022年2月に発売されたばかりの最新モデル「PX-Q3PE5」で、ついにUSB給電式ではなくなり完全PCI-E駆動になりました。歪な接続方式が解消されたので動作が安定するのではと期待しております。これから導入事例も増えると思いますので、もしPT3から交換するなら(ケーブル数も少なくなるので)これかなと思ってます。

その他のハード周りの環境は正直貧弱ですが、PCケースをデザイン優先で選んだせいで冷却能力が足りないので安全面を考慮して低発熱なCPUを選びました。

また、ソフトウェアのMirakurun導入の前提条件として公式で出されているのが以下です。

  • Docker, docker-compose の導入が必須
  • ホスト上の pcscd は停止する
  • チューナーのドライバが適切にインストールされていること

ハードが揃っていれば特に問題になるような条件は無いかなと思います。

下準備

現在のUbuntuではPT3のドライバがOSに組み込まれているハズなので、まずは確認してみます。

ls /dev/dvb/
/dev/dvb/adapter0/ ・・・衛星放送用
/dev/dvb/adapter1/ ・・・地上デジタル用
/dev/dvb/adapter2/ ・・・衛星放送用
/dev/dvb/adapter3/ ・・・地上デジタル用

ちゃんと認識されてます。続いて動作に必要そうなソフトをインストールしていきます。

sudo apt install -y dkms git
sudo apt install dvb-tools
sudo apt install curl

こちらはカードリーダのインストールとその確認。

sudo apt install -y libpcsclite-dev pcscd pcsc-tools libccid
pcsc_scan

Docker環境ではホストマシンのpcscdを停止しますので以下を実行(この辺りよくわからないので必要かわからずやってます)。

sudo systemctl stop pcscd.socket
sudo systemctl disable pcscd.socket
sudo systemctl status pcscd.socket

今度はMirakurunのインストールに必要なDocker類をインストールしていきます。

Dockerのインストール

sudo apt -y install docker.io

dockerのインストールとバージョンの確認。

docker --version

docker-composeのインストール。

sudo apt -y install docker-compose

docker-composeのインストールとバージョンの確認。

docker-compose -v

現在のユーザーをDockerグループに入れます。

sudo usermod -aG docker $USER

ここでいったんPCを再起動。やっておかないと上記の設定が反映されずDockerがちゃんと動いてくれません。

sudo reboot

ここで再起動しなかったせいで後の工程でエラーが出てしまい結構ハマりました。

Mirakurun-EPGStationのインストール

ここまでで下準備は完了。いよいよMirakurunをインストールしていきます。といっても行うのは下記のコマンド群だけでした。

curl -sf https://raw.githubusercontent.com/l3tnun/docker-mirakurun-epgstation/v2/setup.sh | sh -s
cd docker-mirakurun-epgstation
docker-compose pull
docker-compose run --rm -e SETUP=true mirakurun
docker-compose up -d

これでMirakurunとEPGStationのインストールと初期セットアップが完了・起動しているハズです。単独でインストールしていた数年前とは、導入のハードルが雲泥の差です。

ちなみに最初はよくわからないエラーがでてきて起動しませんでした。技術も知識もないためいったんOSの再インストールからやり直したところ、無事に起動。ホッとしました。あとはブラウザでUbuntuのIPアドレス:40772にいけば、Mirakurunが起動しております。

Mirakurunの起動を確認

チャンネルスキャンも始まっているはずですので、ある程度時間を置いたら今度はUbuntuのIPアドレス:8888を見ればEPGStationに番組表が入っているはずです。

EPGStation v2.6.20

ちなみにMirakurun および EPGStationの手動での起動方法は、dockerコンテナになっているので下記コマンドで両方いっぺんにできます。

cd docker-mirakurun-epgstation

起動

sudo docker-compose up -d

終了

sudo docker-compose down

運用するための調整

これで番組録画の準備はできましたが、いくつか調整が必要だったので下記のことをしました。

  • チャンネルの手動スキャン

チャンネルスキャンではいくつかのチャンネル(特にBS)と番組表の取得ができませんでした。なので、以下のコマンドをたたいて手動で取得します。

チャンネルスキャン 地デジ

curl -X PUT "http://localhost:40772/api/config/channels/scan?type=GR&setDisabledOnAdd=false&refresh=true"

チャンネルスキャン BS

curl -X PUT "http://localhost:40772/api/config/channels/scan?type=BS&setDisabledOnAdd=false&refresh=true"

通常は必要ないはずですが、自動スキャンでチャンネルが欠けている場合は手動スキャンを試してみてください。

  • 重複チャンネルの削除

チャンネルスキャンをすると例えばBS朝日1・2・3などと同じ番組表がダブッて表示されることがあります。その場合、ブラウザからMirakurunの設定→チャンネルの項目で複数表示されているチャンネルをOFFにできるのですが、チャンネル項目が一つしかないのに番組表がダブる場合もあります(地方のローカル局に多かった)。

その際はサービスIDを指定することでダブったチャンネルを非表示にできます。サービスIDがわからない場合はチャンネル名で適当にググれば出てきますのでそれを入力。その後、Mirakurunを再起動してください。

重複チャンネルの削除とIDの指定

  • 録画ファイル名の変更

番組名順にソートできるようにするため、録画ファイル名のルールを変更して番組タイトルを一番先頭にもってきます。docker-mirakurun-epgstation/epgstation/config/config.ymlを開いてrecordedFormatの部分を変更するだけです。

  • 録画ファイルの保存先変更

MirakurunはシステムSSDにインストールしましたが、録画ファイルは大容量のHDDに保存したかったので保存先を変更しておきます。docker-mirakurun-epgstation内のdocker-compose.ymlを開いて、54行目あたりにある/app/recordedの部分を以下に変更しました。

/data/8tb/recorded:/app/recorded

ちゃんとできていれば、EPGStationのストレージの容量が変わっているハズです。

保存先を変更してストレージ容量を増やす

ちなみに最初にやった時はぜんぜん設定が反映されず、仕方なくシンボリックリックでやっていたのですが、運用して一週間くらい経ってバックアップのつもりで録画フォルダごと別の場所へコピーしたあと、コピー元のフォルダを削除したらコピー先のフォルダ内にあった録画データのすべてが消えてしまいました。

その直前にも操作ミスで大量のデータを削除してまして、この時はめちゃくちゃショックでした。

3.6TBもの動画データが一瞬で消えてしまったので復元ソフトで復活させた
わずか1クリックで大容量のデータが一瞬で消滅。フリーソフトで復元しようとしても歯が立たず、有料の復元ソフトでその全てをリカバリーしたので備忘録と戒めとして記事にしておきます。

シンボリックリンクについては絶対パスで作っていたので当たり前の動作なのですが、フォルダごと操作していたのでコピーの感覚で削除してしまったのが失敗でした。シンボリックリンクの怖さを改めて認識しました(現在は正常にストレージを認識しております)。

とりあえず設定はこれですべて完了です。上記設定で1か月程度運用しておりますが、大きな不具合は発生しておりません。ただ、番組表は自動更新されたさいに不要なチャンネルが増えていることがあるので、動作確認は定期的にしております。

epgrecとの比較

長年epgrecを使っていたので今回のMirakurun+EPG Stationの環境は、使い勝手にだいぶ違いがありました。以下、気が付いたことを書いておきます。

良かった点

  • 全体的に機能アップ

スマホやタブレットでブラウザから気軽に録画を観れるのは、ちょっとした確認などには思っていたよりも便利でした。録画データはsambaなどの共有フォルダになっているのでVLCなどのアプリからでも見れるのですが、10秒スキップや30秒スキップ機能がないために再生を飛ばすのが難しく使い勝手が悪かったのです。EPGStationではこれらの機能が付いているので、動画配信サイトのような使い勝手になって助かります。

現在放送中の番組も一覧から選べますし、クリックすればそのまま再生できるのもいいです。ただレスポンスが少し悪いと思います。マシンスペックが低いからかもしれません。intelの第12世代がこなれてきたらPCを組みなおしてもいいかなと思ってます。

  • キーワード予約のオプションが豊富

EPGStationのキーワード予約は「ルール」で行いますが、オプションの数が初期段階からいろいろあり、この中ではまだ使ってはいませんがフォルダ分けの設定ができるのがもっとも便利そうです。epgrecでも可能でしたがかなり複雑で自分には手が出ませんでしたので、録画の管理をEPGStationにやらせる場合にはとても便利そうです。

  • クリーンアップが簡単

録画したデータはいったんローカルに保存して、CMカットをしたのちにAviutlでエンコードしております。このときファイラーなどで直接録画ファイルを移動するため予約システムには実体ファイルのない番組名だけがズラっと残ります。

これを定期的に削除してデータベースをきれいにするのですが、epgrecだと各ファイル名をチェックしてから削除だったので、数が多いとかなり手間でした。一括チェックもありますが実体のあるファイルまで削除する可能性があるため、操作ミスに常に気を使っておりました。

その点EPGStationでは左ペインの録画済みからクリーンアップを選ぶだけで、実体のない番組は消すことができるので非常に重宝しております。地味な機能ですが、個人的には管理がだいぶラクになったので助かりました。

不満点

2022年2月時点でのEPGStationでの不満点は、番組表が操作しづらいこと。日常的に操作する番組表ですが、まず日付の指定をするのに現在の日付をクリックしてプルダウンから、さらに日付を選ぶというのが面倒です。

日付指定がめんどくさい

epgrecでは最初から上部に一週間分の日付が並んでおり、対象日をワンクリックで指定できます。EPGStationは2回のクリックが必要なので手間がかかります。

また、地デジとBSの切り替えをすると、いちいち日付が現在時刻に戻るのも煩わしいです。例えば3日先の地デジとBSの番組を確認したいのに、GR/BSを切り替えると日付が現時点に戻ってしまいもう一度指定をしなくてはなりません。epgrecは日付を選んだあとに放送波を切り替えても日付はそのままでしたので、この点もEPGStationは不便です。設定画面では操作に関する項目はほぼないので、もうちょっと細かく設定できると嬉しいです。

あと、前述の設定調整でも触れていますが、1つのチャンネルで複数の番組表を取得した時(例えばtvk1とtvk2)これを除外するにはepgrecなら番組表からチャンネル名を右クリック・視聴しないを選ぶだけで消えましたがEPGStationではこれができません。一度設定しておいても定期的な番組表取得でたまに復活してしまうこともあるので、番組表を直接いじれたepgrecのほうがやりやすかったです。

まとめ

以上、MirakurunとEPGStationの導入でした。

新しい環境では今のところは番組表の操作くらいしか不満点はありませんので、移行して良かったと思います。UIも以前私が試した時よりもずっと使いやすいですし、何よりそれなりに安定しているので助かります。関係者の方々には本当に感謝しております。

この先、Mirakurun-EPGStationの環境で大きな不満が出ない限りはこの環境で数年は行けるかなと感じます。ホントはHDDレコーダーでやれれば一番ラクでしょうけど、自由な編集と視聴・移行・バックアップができない限りは戻ることはないでしょう。

当面はPT3がいつまで使えるのかが気になります。時間とお金があれば早いうちにPLEX製「PX-Q3PE5」あたりを買って一度試しておきたいですね。