LumeRecorder
自分のサーバーでライブ TV を録画
LumeRecorder は、自宅で動かす小さな無料のオープンソース DVR サーバーです。何を録画するかは Lume が伝え、録画はサーバーが単独で行います。Apple デバイスがすべてスリープ中でも大丈夫。録画はすべてのデバイスの Lume で再生でき、録画中の番組も再生できます。
録画は Lume Pro の機能です。サーバー自体は無料です。
必要なもの
常時稼働するマシン
NAS、ミニ PC、ホームサーバー、64 ビットの Raspberry Pi、またはスリープしない Mac。Docker イメージは Intel/AMD と ARM で動作します。
Docker
Docker または Docker Desktop、あるいは Apple シリコン搭載 Mac なら Apple の container ツール。ほとんどの NAS には Docker が搭載されています。
ディスク容量
ストリームは再エンコードせず、届いたまま保存されます。HD チャンネルなら通常 1 時間あたり数 GB です。
同じネットワーク
Lume がサーバーを見つけて録画を再生できるよう、サーバーと Apple デバイスは同じホームネットワークに置いてください。
ステップ 1
サーバーを起動
コンテナの実行方法を選んでください。どの方法でも録画と設定は隣のデータフォルダに保存されるので、アップデート後も残ります。
これを新しいフォルダに
docker-compose.ymlとして保存し、そのフォルダから起動します。ホストネットワークを使うと、Lume がサーバーを自動で見つけます。services: lume-recorder: image: ghcr.io/bilipp/lumerecorder:latest container_name: lume-recorder restart: unless-stopped network_mode: host volumes: - ./data:/datadocker compose up -dSynology、QNAP、Unraid、TrueNAS では、同じファイルをシステムの Docker または Container Manager に新しいプロジェクトとして貼り付けられます。
Docker Desktop を使う Mac や Windows PC では、ホストネットワークの代わりにポートを公開します。これを
docker-compose.ymlとして保存して起動してください。services: lume-recorder: image: ghcr.io/bilipp/lumerecorder:latest container_name: lume-recorder restart: unless-stopped ports: - "8090:8090" volumes: - ./data:/data environment: BONJOUR: "0"docker compose up -dDocker Desktop はネットワーク上にサーバーを告知できないため、Lume でアドレスを手動入力します。Docker Desktop がログイン時に起動するよう設定しておきましょう。
Apple シリコン搭載 Mac では、Docker の代わりに Apple の
containerツールを使えます。container system start mkdir -p ~/LumeRecorder-data container run -d --name lume-recorder \ -p 0.0.0.0:8090:8090 \ -v ~/LumeRecorder-data:/data \ -e BONJOUR=0 ghcr.io/bilipp/lumerecorder:latestコンテナは軽量な VM 内で動くため、Lume で Mac のアドレスを手動入力します。録画の予約がある間は Mac をスリープさせないでください。
コンテナを使わずに動かしたい場合は、Swift 6 と ffmpeg が必要です。ソースからのビルドをご覧ください。
ステップ 2
ペアリングコードを取得
サーバーは起動時に 6 桁のペアリングコードをログに出力し、以後 10 分ごとに新しいコードを出力します。現在のコードはいつでも次のコマンドで表示できます:
docker exec lume-recorder lume-recorder pairApple のツールでは
container exec lume-recorder lume-recorder pairを実行します。NAS ではコンテナのログ画面にもコードが表示されます。ステップ 3
Lume とペアリング
- Lume で 設定 › ライブTV › 録画サーバー を開きます。
- ペアリングの前に を読み、了解しました をタップします。
- このネットワーク上のサーバー からサーバーを選びます。表示されない場合は アドレスを手動で入力 をタップし、サーバーの IP アドレス(例:
192.168.1.20)を入力して 接続 をタップします。ポートを指定しなければ 8090 が使われます。 - サーバーの ペアリングコード を入力し、ペアリング をタップします。
ペアリングは一度だけ。iCloud を通じてほかの Apple デバイスにも同期されます。
ステップ 4
録画する
- 今すぐ録画: チャンネルのメニューまたはプレーヤーで 録画 を選びます。
- あとで録画: 番組表 で番組を開き、録画を予約 を選びます。
- 視聴: ライブ TV のツールバー、または 設定 › ライブTV から 録画 を開きます。Apple TV ではライブ TV のサイドバーにも表示できます。
設定
docker-compose.yml の environment に指定して変更します(Apple のツールでは -e NAME=value)。
| 変数 | デフォルト | 内容 |
|---|---|---|
SERVER_NAME | ホスト名 | Lume に表示されるサーバー名。 |
PORT | 8090 | サーバーが待ち受けるポート。 |
MAX_CONCURRENT | 4 | 同時に実行できる録画の数。録画ごとにプロバイダへの接続を 1 つ使います。 |
MIN_FREE_GB | 2 | 空き容量がこの GB 数を下回ると、録画は開始されません。 |
BONJOUR | 1 | 0 で自動検出をオフにします。自動検出が使えない環境向けです。 |
TZ | UTC | ログのタイムスタンプのタイムゾーン(例:Asia/Tokyo)。 |
変更後は docker compose up -d をもう一度実行してください。
トラブルシューティング
Lume がサーバーを見つけられない
Lume がローカルネットワークを使えるか確認してください(iPhone と iPad では 設定 › プライバシーとセキュリティ › ローカルネットワーク)。自動検出は Linux のホストネットワークでのみ機能します。Docker Desktop、Apple のツール、ブリッジネットワーク、別々の VLAN の場合は、アドレスを手動で入力 をタップしてマシンの IP アドレスを入力してください。
NAS で独自の Bonjour サービスがすでに動いている
1 台のマシンで 2 つの検出サービスが動くと干渉し合います。BONJOUR を 0 にして、アドレスでサーバーを追加してください。NAS 自身のサービスで告知する方法は LumeRecorder の README に記載されています。
ペアリングコードが受け付けられない
コードは 10 分ごとに変わるので、最新のコードを取得してください。5 回間違えると、ペアリングは 1 分間ロックされます。
視聴中に録画が失敗する
サーバーはプロバイダに独自の接続を開きます。契約で同時接続が 1 つに限られている場合、視聴と録画を同時に行うと失敗することがあります。プロバイダで接続数の上限を増やすか、重ならないようにしてください。
容量不足や録画数の上限で録画が失敗した
ディスクの空き容量を増やすか MIN_FREE_GB を下げてください。プロバイダが複数の接続を許可していれば、MAX_CONCURRENT を上げられます。
サーバーが再起動したらどうなる?
実行中だった録画は、サーバーが復帰すると短い途切れを挟んで再開します。停止中に時刻を過ぎた予約は失敗として記録されます。
アップデート
docker-compose.yml のあるフォルダで新しいイメージを取得し、再起動します。録画とペアリングはデータフォルダに残ります。
docker compose pull && docker compose up -dすべてのオプション、HTTP API、ソースコードは GitHub の LumeRecorder リポジトリ にあります。
← Lume に戻る