Jellyfin
メディアサーバJellyfinを使ってみました。今まで散らばっていた大量のメディアファイルを整理することができました。
また、インターネットラジオやMirakurunと連携したテレビ番組の視聴ができました。
Jellyfin
The Free Software Media System
環境
WSLのUbuntuにJellyfinを導入します。
- Windows 11
- Mirakurun 3.9.0 rc4
- WSL (Ubuntu 24.04.2 LTS)
- Jellyfin 10.10.7
構築
サーバ(WSL/Ubuntu)
- Jellyfin インストール
curl https://repo.jellyfin.org/install-debuntu.sh | sudo bash
sudo systemctl enable --now jellyfin
- 別のマシンからアクセスできるようにWSLへのポートフォワード設定一覧に8096/tcpを追加します。PC起動時に実行するようにスケジュールします。
wsl-proxy.ps1 $WSL2_IPV4=bash -c "ip route | grep 'eth0 proto kernel scope' | cut -d ' ' -f9"
$HOST_IPV4="*"
$PORTS=@(22,443,2049,3030,4000,8000,8080,8081,8096,8443,9090)
foreach ($PORT in $PORTS)
{
netsh interface portproxy delete v4tov4 listenaddress=$HOST_IPV4 listenport=$PORT
netsh interface portproxy add v4tov4 listenaddress=$HOST_IPV4 listenport=$PORT connectaddress=$WSL2_IPV4 connectport=$PORT
}
# ポート プロキシ パラメーターをすべて表示するには以下を実行する。
# netsh interface portproxy show all
#
# ポート番号を削除するには該当ポート番号を対象に個別にdeleteコマンドを実行する。
# netsh interface portproxy delete v4tov4 listenaddress=$HOST_IPV4 listenport=$PORT
クライアント
- クライアントアプリの選択
https://github.com/awesome-jellyfin/awesome-jellyfin/blob/main/CLIENTS.md
「Jellyfin Media Player」を入れておけば問題なさそうです。 - Windows
winget install --id Jellyfin.JellyfinMediaPlayer
- Arch Linux
paru -S jellyfin-media-player
- Android
https://jellyfin.org/downloads/clients?platform=Android,Android%20TV
メディアファイルの配置
メディアの管理方法
- メディアフォルダ
/media/
このフォルダにメディア関連の情報を集約します。複数のディスク/フォルダに存在しているメディアファイルに対するシンボリックリンクを配置します。/media/
Movies/
「タイトル_(YYYY).xxx」動画ファイルのシンボリックリンク
Music/
アーティスト名/
アルバム名/
「タイトル.xxx」音楽ファイルのシンボリックリンク
Radios/
「ラジオステーション名.m3u」
Shows/
番組名/
Season_1/
「タイトル_S01E01.xxx」動画ファイルのシンボリックリンク - 動画ファイルの実体フォルダ(WindowsのFドライブ)
/mnt/f/home/chinachu/
/mnt/f/home/epgstation/
/mnt/f/home/epgstation.old/ - 動画ファイルの実体フォルダ(WindowsのLドライブ)
/mnt/l/home/chinachu/
/mnt/l/home/epgstation/ - 音楽フォルダの実体フォルダ(WindowsのEドライブ)
/mnt/e/home/Music/
メディアフォルダの作成
- メディアの種類毎にフォルダを作成
sudo mkdir /media/Movies /media/Music /media/Radios /media/Shows /media/links
sudo chmod -R 777 /media/media/links は整理前のシンボリックリンクを仮配置するフォルダ
ライブラリの追加
- Jellyfinのダッシュボードで各メディアに対するライブラリを追加
フォルダ ライブラリの種類 /media/Movies 映画 /media/Music 音楽 /media/Shows 番組
シンボリックリンクの作成
- 音楽
/media/Music/
配下にディレクトリとシンボリックリンクを配置するbashスクリプトをAIに作ってもらいます。
利用環境に合わせて「ファイルの ARTIST、ALBUM、TITLE タグを使って、ファイルをディレクトリ階層 “ARTIST/ALBUM/TITLE.拡張子” に移動する Bash スクリプトを作成」のような感じで指示すると素晴らしい精度でスクリプトを生成してくれます。 - 映画と番組
cd /mnt/f/home/epgstation.old
find * -type f -print | xargs -I{} ln -s $PWD/{} /media/links/{}
cd /media/links- 映画の場合
ファイル名を「タイトル_(YYYY).xxx」の形式に変更して以下を実行する。mv *ハリー・ポッター* /media/Movies/
- 番組の場合
ファイル名を「タイトル_S01E01.xxx」の形式に変更して以下を実行する。mkdir -p /media/Shows/世界の車窓から/Season_1
mv *世界の車窓から* /media/Shows/世界の車窓から/Season_1/
- 映画の場合
インターネットラジオの追加
m3uファイルの入手
https://directory.shoutcast.com/ にてダウンロードボタンから「Any Player (.m3u)」をダウンロードして/media/Radios/
に格納インターネットラジオの追加
ダッシュボード > ライブTV > チューナーデバイス+
チューナータイプ M3U Tuner ファイル又はURL /media/Radios/ラジオステーション名.m3u
インターネットラジオの再生
マイメディア > ライブTV > チャンネル からラジオステーションを選択
テレビ番組のリアルタイム視聴設定
MirakurunのIPTV設定確認
http://192.168.11.2:40772 を参照し、右上のConnection Guideを押下
M3U Playlist http://192.168.11.2:40772/api/iptv/playlist XMLTV http://192.168.11.2:40772/api/iptv/xmltv HDHomeRun Device Address http://192.168.11.2:40772/api/iptv
チューナーデバイスの追加(1)
ダッシュボード > ライブTV > チューナーデバイス+
チューナータイプ M3U Tuner URL http://192.168.11.2:40772/api/iptv/playlist
チューナーデバイスの追加(2)
- ダッシュボード > ライブTV > チューナーデバイス+
チューナータイプ HDHomeRun URL http://192.168.11.2:40772/api/iptv
- ダッシュボード > ライブTV > チューナーデバイス+
TV番組情報のプロバイダの追加
ダッシュボード > ライブTV > TV番組情報のプロバイダ+
「XMLTV」を選択ファイル又はURL http://192.168.11.2:40772/api/iptv/xmltv
「ガイドデータの更新」を押下
テレビ番組の再生
ホーム画面やライブTVからチャンネルを選択
その他
- プラグイン、テーマ等
https://github.com/awesome-jellyfin/awesome-jellyfin/ - Jellyfinのメディアライブラリの種類
「映画」、「音楽」、「番組」、「ブック」、「ホームビデオと写真」、「ミュージックビデオ」、「TV番組と映画を混ぜる」 - Jellyfinはシンボリックリンクを認識する
- 複数の機器のクライアントで同時にメディアを再生するには:
別のアカウントを利用すべきかもしれない - インターネットから自宅サーバへOpenVPNで接続してメディアにアクセス可能
- Android版Jellyfinアプリでは動画再生時に強制的にランドスケープモードになる。Androidを自動回転モードに設定している場合、画面を傾け直すことでポートレートモードでの再生が可能。
https://github.com/jellyfin/jellyfin-android/issues/1654 - プレイリストへの追加が失敗する場合はダッシュボードからサーバを再起動
- ホームのマイメディアカードの日本語ライブラリ名が文字化け:
カスタムCSSでフォントを指定できないか調査要だが以下の手順で暫定回避可能- ライブラリ本体を英語名に変更
- ライブラリのスキャンが完全に終了するまで待つ
- プライヤー側メタデータを日本語名に変更
再度日本語名が有効になって文字化けしたので根本対策が必要
- インターネットラジオが視聴できなくなったので対策が必要
再生時にエラーログが出力されている