【令和最新版(笑)】mirakurun, epgstationを自分史上最速・最安で構築した手順 2021/07/07検証版

Raspberry Pi2にてMirakurun+chinachuを運用していたのですが、chinachuの動作が不安定になったため、意を決して別途パソコンを用意し、ubuntu20.04で新規にシステムを構築しました。

dockerを利用するので、mirakurunやmysql 各種ソフトそしてepgstationなどの小難しい初期設定が嘘のように要らなくなります。

以下の手順で着手から概ね1時間程度で、epgstationから録画できるようになりました。

【令和最新版(笑)】の【自分史上最速】でepgstationを起動させる手順です。

6月1日に構築したのですが、運悪くSSDが故障しかけて7月7日に再度構築しました。

構築時間は1時間程度。

構築ポリシー

・Miarkurun、epgstationともにdockerを利用し、自分史上最短の時間(手間)で構築する

必要機材は以下の通りです。

PC(intel系のノートパソコンや、raspberry piなど)

PLEX PX-S1UD 今回は地デジチューナーを用いていますが、同社のBSチューナーでも動作すると思います。

NTT-comカードリーダー

1.ubuntu導入(OSを新規に導入する場合)

1a.以下のページから「Ubuntu Desktop 20.04.2.0 LTS」のisoファイルをダウンロード。
Ubuntuは、スマートフォン、タブレット端末、PCからサーバー、クラウドまであらゆる環境で動作するオープンソースのソフトウェアプラットフォームです。
1b.ダウンロードしたisoファイルを以下のツールでUSBメモリにコピー、PCを起動してubuntuのインストール開始。
Rufus: Create bootable USB drives the easy way

参考)私のubuntu20.04 初期設定(editor=vim / sudo / NAS mount)
# よく使うツールのインストール
sudo apt install -y vim ssh net-utils gcc make cifs-utils 

# default editorの変更
sudo update-alternatives --config editor
There are 4 choices for the alternative editor (providing /usr/bin/editor).

  Selection    Path                Priority   Status
------------------------------------------------------------
* 0            /bin/nano            40        auto mode
  1            /bin/ed             -100       manual mode
  2            /bin/nano            40        manual mode
  3            /usr/bin/vim.basic   30        manual mode
  4            /usr/bin/vim.tiny    15        manual mode

Press <enter> to keep the current choice[*], or type selection number: 3

# sudoでパスワード入力を省略
sudo visudo
<username> ALL=NOPASSWD: ALL

# NASのフォルダをマウント(録画ファイルは直接NASに保存する)
sudo mount -t cifs //NAS-IP/Path/to -o username=USER-ID,password=PASSWORD,noexec,nodev,rw,vers=2.0 /home/USER-ID/docker-mirakurun-epgstation/recorded

2.Mirakurun + epgstation導入

2a.PX-S1UDのファームウェアのインストール
wget http://plex-net.co.jp/plex/px-s1ud/PX-S1UD_driver_Ver.1.0.1.zip
unzip PX-S1UD_driver_Ver.1.0.1.zip
sudo cp PX-S1UD_driver_Ver.1.0.1/x64/amd64/isdbt_rio.inp /lib/firmware/
2b.docker-composeインストール
sudo apt-get -y install docker-compose 
2c.docker-mirakurun-epgstationインストール
sudo apt -y install git
git clone https://github.com/l3tnun/docker-mirakurun-epgstation.git
cd docker-mirakurun-epgstation
cp docker-compose-sample.yml docker-compose.yml
cp epgstation/config/config.yml.template epgstation/config/config.yml
cp epgstation/config/operatorLogConfig.sample.yml epgstation/config/operatorLogConfig.yml
cp epgstation/config/epgUpdaterLogConfig.sample.yml epgstation/config/epgUpdaterLogConfig.yml
cp epgstation/config/serviceLogConfig.sample.yml epgstation/config/serviceLogConfig.yml
2d.tuners.yml設定(PX-S1UDの場合。利用するチューナーによって異なります)
vi 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>
2e.各種設定ファイル変更
# 必要に応じてコメントアウトされている restart や user の設定を適宜変更する
# 録画ファイルパスを修正しました。
vi ~/docker-mirakurun-epgstation/docker-compose.yml
 # - ./recorded:/app/recorded
 - /tmp/video:/app/recorded

# config.yml 以下の点を修正しました。
vi ~/docker-mirakurun-epgstation/epgstation/config/config.yml
recordedFormat: '%YEAR%%MONTH%%DAY%_%TITLE%'
recordedFileExtension: .ts

# 番組表の除外チャンネルを、以下の通り定義しました。
excludeSids:
 - 4113
 - 4114
 - 4496
 - 14345
 - 14346
 - 14728
 - 14337
 - 14720
 - 4121
 - 4504
 - 4129
 - 4130
 - 4512
 - 4145
 - 4146
 - 4528
 - 4137

# channels.yml すでにチャンネルを把握しているので、以下のファイルを直接編集しました。
vi ~/docker-mirakurun-epgstation/epgstation/config/channels.yml

--- OR ---

# 新規にチャンネルを登録する場合
curl -X PUT "http://localhost:40772/api/config/channels/scan"

2e.補足 自分メモ:予めバックアップしていたconfigをcpする場合(2d.と2eの手順に相当)
# 予め設定ファイルを保存したフォルダへ移動
cd ./tv-server-conf/
ls -l
total 16
-rwxrwxr-x 1 root user 1049 Jul  6 20:12 crontab.now
-rwxrwxr-x 1 root user 1801 Jul  6 20:12 docker-compose.yml
drwxrwxr-x 2 root user 4096 Jul  6 20:12 epgstation
drwxrwxr-x 2 root user 4096 Jul  6 20:12 mirakurun

# 設定ファイルを各フォルダcp
cp ./docker-compose.yml ~/docker-mirakurun-epgstation/
cp ./epgstation/*.* ~/docker-mirakurun-epgstation/epgstation/config/
cp ./mirakurun/*.yml ~/docker-mirakurun-epgstation/mirakurun/conf/
2f.コンテナ起動と起動後の確認
# 起動
sudo docker-compose up -d

# 起動確認(必ずしもする必要は無い)
sudo docker ps -a
CONTAINER ID   IMAGE                                    COMMAND                  CREATED          STATUS          PORTS                                              NAMES
1d64f68b676b   docker-mirakurun-epgstation_epgstation   "npm start"              29 minutes ago   Up 29 minutes   0.0.0.0:8888-8889->8888-8889/tcp                   docker-mirakurun-epgstation_epgstation_1
7780a6eb50bd   chinachu/mirakurun                       "docker-entrypoint.s…"   29 minutes ago   Up 29 minutes   0.0.0.0:9229->9229/tcp, 0.0.0.0:40772->40772/tcp   docker-mirakurun-epgstation_mirakurun_1
67d94fd79412   mariadb:10.4                             "docker-entrypoint.s…"   29 minutes ago   Up 29 minutes   3306/tcp                                           docker-mirakurun-epgstation_mysql_1

以上の手順でubuntuにMirakurunとepgstationが導入されました。

3.Mirakurun+epgstation起動の確認と再起動

ブラウザーで以下のアドレスを確認(epgstationに番組表が反映されるのは数十分後)

# Mirakurun
 http://server-ip:40772

# epgstation
 http://server-ip:8888

コンテナ停止と起動(再起動)

# docker-mirakurun-epgstationはとても安定してますが、たまに再起動が必要になります。
# 手元の環境では、構築後67日目にメニューが表示されなくなりました。
# 再起動の手順は以下のとおりです。
#
# docker再起動
cd ~/docker-mirakurun-epgstation
sudo docker-compose restart

--- OR ---
# 停止
sudo docker-compose down
# 起動
sudo docker-compose up -d
Mirakurunが番組表を収集している様子。

PC初期化からここまでで わずか1時間で完了しました。docker-compose様様です。

また参考にさせていただいた各サイト様、本当にありがとうございます。

以下参考にさせていただきました。

いつもながら、僕は前書きが長いと思います。 「アンパンマンの同じ話を延々繰り返し見るのはもう嫌だ!」 子供たちと不毛なチャンネル争いをせずに、金曜ロードショーの新海誠アニメとかを思う存分楽しみたいと思ったのでした。 調べるとLinuxにEPGStationってソフトがある模様。これを使えばPCやタブレットからTVが見ら...
(2022年1月5日追記) 本記事の改訂版を公開。2022年1月5日以降は、改訂版を利用してください。 doc…
Mirakurun を使用した録画管理ソフト. Contribute to l3tnun/EPGStation development by creating an account on GitHub.

録画したファイルは著作権を守り、必ず録画した個人様のみにてご利用ください。

コメント

  1. でぃーの より:

    環境構築について参考にさせていただきました。
    おかげさまで地上波は問題なく使えています。
    しかし、CSの有料放送が視聴および録画ができません。
    もちろん契約はしています。
    何かの設定ができてないのではと思っているのですが、見当がつかないため教えていただけませんでしょうか。

    • まみむ より:

      ご質問いただきありがとうございます。
      記事で紹介している「PX-S1UD」は地デジ受信専用のチューナーです。

      CSやBSを録画するためには、同じPLEX社の「PX-BCUD」が必要になると思います。
      http://www.plex-net.co.jp/product/px-bcud/
      手元にこのチューナーがなく、これ以上の技術情報を提供できないのが残念ですが、
      参考にしていただければ幸いです。

  2. でぃーの より:

    ご返信ありがとうございます。

    大変失礼しました。
    こちらの環境としてはPT3を利用しています。
    Ubuntu Server 20.04では標準でPT3のドライバが入っているということでしたので、そちらを利用しています。
    (Ubuntu Server 20.04+docker-mirakurun-epgstation+PT3×2枚刺し環境)
    この環境でどうか、という状況で何か情報をお持ちでしたら教えていただけますとありがたいです。

    • まみむ より:

      PT3をお持ちですか こちらこそ失礼しました!
      PT3は手に入らず羨ましい限りです(笑)

      PT3とCS受信環境が手元に無いので無責任情報なのですが、仰るとおりubuntu20.04ではドライバは不要です。
      またmirakurunが正常に動作しているのであれば、PT3の定義か channels.yml が適切でないのかもしれません。
      (念の為CSの受信レベルもご確認を)

      以下のアドレスに、PT3+mirakurunにて動作させた実例がありますので、
      お役に立てられたら嬉しいです。

      Pandora Pocket様:PT3+Mirakurun+EDCB+TVTestでTV録画環境を再構築した話
      https://blog.hitsujin.jp/entry/2017/11/16/211111
      システム構成が少し異なりますが、PT3にてCSを受信されているようです。

      確認ポイント
      ・tunners.yml にてPT3が正しく指定されている。
      ・channels.yml CS/BSのチャンネル定義が適切である。

      Good luck!

  3. でぃーの より:

    いえいえ!
    こちらこそ環境をお伝えしてなくてすみません…
    PT3は値上がりし始めた前後くらいに何とかギリギリ買えたのでありがたかったです笑

    色々お調べいただいてありがとうございます!

    CSは無料番組は視聴・録画できて、有料番組は視聴すらできない状態なので、おそらくtuners.ymlとchannels.ymlは大丈夫かなと思ってます

    やっぱりepgstationじゃなくTVTestとかじゃないとダメそうですね?
    TS抜きとかの関係なのかなとか思ってますが

    教えていただいた情報を基に試してみます!

    • まみむ より:

      CS無料放送が見れているとのことで、了解しました。

      外しているかもしれませんが「EMM処理」ができていない場合、有料放送が見られないようです。
      recdvbにEMMのオプションがありますので、試してみてはいかがでしょうか。

      熊の巣様
      https://kkuma.mydns.jp/Linux-tv/index1.shtml

      Coming tomorrow様
      http://u-bibouroku.blogspot.com/2018/01/recdvb-help.html

      以下のリンクではTVtestにEMM処理を行わせて、解決されたようです。

      コンピュータ研究所様
      https://comp-lab.net/pt2-tvtest-skyperfectv-emm

      更に、mirakurunをサーバにTVtestをクライアントにする方法があるようですので、この構成だとうまくいくかもしれません。

      物置部屋様
      https://mnao305.hatenablog.com/entry/2019/03/03/000312

      いずれかの方法でうまく行くと良いですね!

      • でぃーの より:

        わー!
        色々お調べいただいてありがとうございます!

        なるほど、そういう処理が必要なんですね
        私の優先度としては
        地デジ録画≧CS録画≧視聴
        なので、その環境を構築したいんですよね

        まだ全然理解できてない部分が多いんで、試行錯誤して上手くできるか自信はないですが…
        とりあえずUbuntu+PT3+Mirakurun+EDCB+TVTestという環境でできるか試してみますー

        • まみむ より:

          せっかくなので全チャンネル録画したいですよね。
          お気持ちよくわかります!

          この分野は先達の方が様々な努力をして、いろいろな手法を開発してくださっているので
          もう少し調整すると、ご自身の描いたゴールにたどり着けると思います!