RaspberryPi 4でテレビ(地上波)配信用サーバー構築(docker-mirakurun-epgstation + KonomiTV + TailScale)

# 用意したもの
(Amazonのアソシエイトリンクを利用しています。)
* Raspberry Pi 4 Model B
    * 最近高騰してるかも
    * https://amzn.to/4eE6WwQ - 0から始めるならセットがおすすめ(私もこれ買いました)
    * https://amzn.to/4f2DlwP - 本体だけなら正規代理店で買いましょう
* PX-S1UD - https://amzn.to/48aPcGX
    * お試しなので地上波1チューナーのみのタイプ
    * MyGicaのVT20など互換品でもOKです
* SCR3310 - https://amzn.to/4h2dy9Y
    * おそらく定番のカードリーダー
* B-CASカード 
    * 地上波専用の青カード(赤でも)
    * なんとか用意してください
    * https://amzn.to/3XZqx3w - 一応Amazonで販売されています
* ESD-EMA0500GBK - https://amzn.to/3NqnxbC
    * Elecom製500GBのSSD
    * お好きなストレージ用ドライブをご用意ください

> 以下追記(2024/12/06)　あったらうれしい系

* USB延長コード(AtoA)
    * チューナ直刺しはクリアランス的に厳しい
    * 延長することで管理もしやすく
    * 私の場合付属の延長ケーブルが不良
    * https://amzn.to/3BjBTrL 20cmとか短めがちょうどいい
    * 100均でも売ってる？
* VLCメディアプレーヤー(無料)
    * 定番のメディアプレイヤー
    * 詳しくは説明しないがネットワーク上のストリーミングを再生できる
    * mirakurun生のストリームを確認するのに便利
* 諦めない心

> 追記終了

:::note info
このページの前半の内容は殆どこちらの方のものの焼き増しです。ご了承ください。
https://qiita.com/yuriyuriyuriyuri/items/0d532fe0859779bb729c
:::

# ドライバのインストール
```shell
wget https://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/
```

# docker-composeのセットアップ
```shell
権限の追加
sudo usermod -a -G docker $USER

パッケージ導入
sudo apt install -y libffi-dev libssl-dev python3 python3-pip python3-dev
sudo pip3 install docker-compose
```

ここで再起動するといいそうです(受け売り)

```shell
# gitをインストール
sudo apt install -y git

# インストールスクリプト
curl -sf https://raw.githubusercontent.com/l3tnun/docker-mirakurun-epgstation/v2/setup.sh | sh -s

# 起動
cd docker-mirakurun-epgstation
sudo docker-compose up -d
```

# 録画ファイルの設定
`docker-mirakurun-epgstation/docker-compoese.yml`を開いてください。
録画ファイルの保存ディレクトリは`service > epgstation > volume`の最下行、`:/app/recorded`の前にフルパスで記入してください。保存用ストレージをマウントしたフォルダに設定しましょう。

```yaml:docker-compose.yml
 volumes:
            - ./epgstation/config:/app/config
            - ./epgstation/data:/app/data
            - ./epgstation/thumbnail:/app/thumbnail
            - ./epgstation/logs:/app/logs
            - /mnt/record:/app/recorded
```
ファイル名の指定は`docker-mirakurun-epgstation/epgstation/config/config.yml`から。見ればやり方はわかると思います。

```yaml:config.yml
recordedFormat: '%YEAR%-%MONTH%-%DAY%_%HOUR%-%MIN%-%SEC%_%CHNAME%-%TITLE%'
# 例)2024-10-13_19-15-00_ＮＨＫ総合１・東京-ＮＨＫニュース７[二][字]
```
使用可能な変数は以下からご覧ください。(公式リポジトリ)

https://github.com/l3tnun/EPGStation/blob/master/doc/conf-manual.md#recordedformat



# チャンネルスキャン
チャンネルをMirakurunのAPI経由でスキャンしていきます。ポートはデフォルトで40772です。少々時間がかるので放置しましょう。
```shell
curl -X PUT "http://localhost:40772/api/config/channels/scan"
```
終了次第、http://192.168.x.x:40772 (ラズパイのIPアドレス)に接続すると画像のようにMirakurunのダッシュボードが表示され、お住いの地域で受信できたチャンネルの一覧が並んでいると思います。(ロゴはこのあと視聴するにつれて取得されるので、表示されなくても正常です。)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/823378/df5c8059-26b6-d764-eba3-0ec1b3eb5ad2.png)


## 放送を見る(テスト)・予約する

http://192.168.x.x:8888/ に接続してください。EPGstationの画面が開いたら、左側のタブの放映中をクリックし、表示された各局放送中の番組名をクリック。ダイアログから配信方式をM2TS-LLに設定し、視聴ボタンを押して暫く待つと、放送中の映像が視聴できます。

![mosaic_20241014171932.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/823378/38e7009b-2d7b-b99f-71b1-6b68c798ece3.png)

:::note warn
いつまで待っても再生されない場合は、画質設定を480pに設定してみてください。
:::

予約も左側タブの番組表から簡単に作成できます。メーカー製のレコーダーとだいたい同じです。


# KonomiTV(+TailScale)導入
KonomiTVとは、[つくみ島だより](https://blog.tsukumijima.net)(お世話になっています)の運営者である、tsukumiさんによって開発されているTV配信ソフト？です。同一ネットワーク上の端末からWeb経由で接続でき、直感的な視聴が可能です。本当に便利ですのでぜひ導入しましょう。
殆どは公式のリポジトリで解説されているのでそちらをご覧になるのが最適です。

https://github.com/tsukumijima/KonomiTV?tab=readme-ov-file#linux-1

:::note info
導入しなくても問題はありませんが、TailScaleというメッシュVPNソフトを利用すると、外部からでもKonomiTVの視聴が可能になります。もしご興味があれば、KonomiTVの導入の前に設定を済ませてください。
(同一アカウントでログインされた端末のみが視聴できるため、外部公開という形にはならないはずです。)
こちらについても、tsukumiさんの解説をご覧ください。
https://blog.tsukumijima.net/article/tailscale-vpn/
:::

投げやりもアレなので、大まかな流れだけ書いておきます。

```shell
# githubからインストーラーをダウンロード
curl -LO https://github.com/tsukumijima/KonomiTV/releases/download/v0.11.0/KonomiTV-Installer-ARM.elf
chmod a+x KonomiTV-Installer.elf
./KonomiTV-Installer.elf
```
非常にわかりやすいインストーラーが起動するはずです。最高。
指示に従って進めていけば、最後にこのようなURLの一覧が表示されます。

![Screenshot 2024-10-13 13.02.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/823378/88a8abfa-fff3-05f6-3687-59ca02dde303.png)

右の説明の通り、ローカルホストでからあれば1つ目のURL、同じWifi内のPCからであれば最後のURLをクリックすることで、KonomiTVに接続できます。

:::note info
TailScaleを導入された方は、接続したい端末でVPNに接続してから2つ目のURLを開いてください。TailScaleのセットアップの前にKonomiTVを先にインストールした場合、URLが表示されません。KonomiTVのインストールをやり直してください。(再度このインストーラーを起動し、3を入力すると簡単にアンイストールできます。)
:::

PCから

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/823378/0fad3547-32a5-22ec-c609-9a6914d08d89.png)


スマホからの場合は、PWAとしてインストールするのがおすすめです。

内容は以上になります。お疲れ様でした。