LibreELEC (kodi) on Raspberry Pi

Raspberry Piに LibreELEC(kodi) をインストールしてメディアサーバとして利用します。ImagerにはOSの選択肢としてLibreELECが含まれているため、ImagerでSDカードにOSを書き込みます。

Media player OSを選択

LibreELECを選択

Kodi wiki LibreELEC
https://kodi.wiki/view/LibreELEC

スマートフォンやタブレットから操作
https://kodi.wiki/view/Smartphone/tablet_remotes

ブラウザから操作
https://kodi.wiki/view/Web_interface

起動条件:config.txtの編集

3.5mmオーディオジャック出力、HDMI出力、各種I/Oなどの機能を有効にするためには、ブートフォルダに格納されているconfig.txtファイルに各種パラメータを追加する必要があります。

config.txtファイルの編集は以下の手順で行います。

SSH接続からconfig.txtの編集、リブートまでの流れ

$ ssh root@192.168.xx.xx
root@192.168.xx.xx's password: 
##############################################
#                 LibreELEC                  #
#            https://libreelec.tv            #
##############################################

LibreELEC (official): 11.0.3 (RPi2.arm)

# cd /flash
# mount -o remount,rw /flash
# nano /flash/config.txt
# mount -o remount,ro /flash
# reboot

3.5mmオーディオジャック

dtparam=audio=on

HDMI
Re: No sound over HDMI [solved] - Raspberry Pi Forums

hdmi_force_edid_audio=1

config.txtの詳細については以下参照

LibreELEC YouTube add-on

以下GCP内での作業です。

LIbreELECでYouTubeを再生するためには、APIライブラリから提供されているYouTube DATA APIを利用します。

APIライブラリ
Google Cloud console

YouTube DATA API

既存のプロジェクトを選択するか、新たにこのAPI専用のプロジェクトを作成します。

new-project

Credentials から API key を作成

APIキーの制限条件を YouTube DATA API のみとします。

OAuth consent screen を作成します。APIを利用できるユーザタイプは外部とします。

APIを利用できるGoogleユーザを追加
ユーザはGmailアカウント:xxxx@gmail.com

再び Credentials に戻り OAuth Client ID を作成

アプリケーションタイプと名称を入力して作成

LibreELECのYouTubeアドオンで必要なのは API Key, Client ID, Client Secret です。

WireGuardの利用

海外コンテンツを視聴するためにWIreGuardによるVPNを利用します。WireGuardによるVPNサーバはAWS, GCP, Azureなどのクラウドサービスを利用することで安価(1年間無料サービスもあり)に構築できます。有料で他の多くのユーザと帯域をシェアする海外のVPNサービスを契約する必要はありません。

LIbreELECにはConnManというネットワークマネージャが予め導入されており、これを利用してLibreELECとWireGuardによるVPNサーバとの接続を確立します。

ローカルネットワーク内の任意のマシンからSSHでLibreELECに接続し、ConnManの記述型式に則ったWireGuardクライアント設定ファイル /storage/.config/wireguard/wg0.config を作成します。

$ ssh root@192.168.xx.xx
# nano /storage/.config/wireguard/wg0.config
[provider_wireguard]
Type = WireGuard
Name = WireGuard (Home)
Host = 185.210.30.121
WireGuard.Address = 10.2.0.2/24
WireGuard.ListenPort = 51820
WireGuard.PrivateKey = qKIj010hDdWSjQQyVCnEgthLXusBgm3I6HWrJUaJymc=
WireGuard.PublicKey = zzqUfWGIil6QxrAGz77HE5BGUEdD2PgHYnCg3CDKagE=
WireGuard.PresharedKey = DfEYeVs04HS9XhKGM4/ZXHG3Qc4MFK2AJd8XouYDbRQ=
WireGuard.DNS = 8.8.8.8, 1.1.1.1
WireGuard.AllowedIPs = 0.0.0.0/0
WireGuard.EndpointPort = 51820
WireGuard.PersistentKeepalive = 25

ConnManによるネットワークサービスの確認

# connmanctl services
* R home              vpn_185_210_30_121
*AO Wired             ethernet_dca622135939_cable

上記リストからvpn_185_210_30_121へ接続

# connmanctl connect vpn_185_210_30_121

pingコマンド

# ping 10.2.0.1
PING 10.2.0.1 (10.2.0.1): 56 data bytes
64 bytes from 10.2.0.1: seq=0 ttl=64 time=147.936 ms
64 bytes from 10.2.0.1: seq=1 ttl=64 time=147.955 ms

接続解除

# connmanctl disconnect vpn_185_210_30_121

接続が確立されない場合は、一度LibreELECマシンを再起動して下さい。