Ubuntu Weekly Recipe

第797回JellyfinでUbuntuをメディアサーバーにする[音楽編]

今回はSnapパッケージのJellyfinをインストールし、メディアサーバーにします。

EmbyとJellyfin

メディアサーバーはさまざまなものが出てきては消え、何を選定すればいいのか難しいです。本連載だと例えば過去に第86回で取り上げていますが、現在も生き残っているものはありません。もっとも15年前の記事なので、当然ともいえますが。

比較的最近だと第533回で紹介したEmbyは現在でも開発が続いています。しかし、紹介当時のEmbyはバージョン3でFLOSS(GPL-2.0)でしたが、現在のバージョン4以降はクローズドソースとなりました。

今回紹介するのはJellyfinです。FLOSS時代のEmbyをフォークしたのがこのJellyfinであり、開発言語はC#です。Snapパッケージで提供されており、インストールも簡単です。

ちなみに現在はUbuntuにもメディアサーバー機能がありますが、今回は使用しません。今回はUbuntuにインストールしていますが、Ubuntu Serverにインストールすることも想定しています。

インストール

Jellyfinは前述のとおりSnapパッケージなのでインストールは簡単です。次のコマンドを実行してください。

$ sudo snap install itrue-jellyfin
$ snap connect itrue-jellyfin:home
$ snap connect itrue-jellyfin:removable-media
$ snap connect itrue-jellyfin:mount-observe
$ snap connect itrue-jellyfin:firewall-control

Snapパッケージであり、かつ特段のユーザーがいるわけではないので、メディアファイルは原則として/media/以下に置くこととなります。もちろん/media/以下にマウントしたストレージでも差し支えありません。今回は/media/Jellyfin/フォルダーを作成し、さらにMusicやVideoなどと分けることにしました。ただし今回は音楽メディアしか扱いません。

初期設定

インストール完了後、Jellyfinサーバーにアクセスします。使用するポートは8096です。今回は手元のUbuntu 22.04 LTSにインストールしたので、「⁠localhost:8096」でアクセスします(図1⁠)⁠。「⁠優先する表示言語」を「日本語」にして「次へ」をクリックします。

図1 言語を選択する
図1

続いてユーザー名とパスワードを入力します(図2⁠)⁠。パスワードは省略できます。今回はユーザーが1人と仮定するので、パスワードはつけません。

図2 ユーザー名(と必要な場合はパスワード)を決定する
図2

メディアライブラリを追加する画面になります(図3⁠)⁠。ここでメディアがあるフォルダー(/media/以下)を指定しますが、ない場合は何も設定せずに「次へ」をクリックしても構いません。

図3 メディアライブラリを追加する。あとからでも構わない
図3

優先するメタデータの元を選択する画面になります(図4⁠)⁠。通常は日本語でいいでしょう。

図4 メタデータ言語は日本語でいいだろう
図4

リモートアクセスの設定です(図5⁠)⁠。通常はデフォルトのままでいいでしょう。

図5 リモートアクセスは許可する
図5

以上で初期設定は完了です(図6⁠)⁠。

図6 初期設定はこれにて完了
図6

メディアの登録

/media/以下にメディアファイルを追加し、「⁠メディアライブラリ」でそのフォルダーを追加します。

まずはJellyfinにアクセスし、ログインします(図7⁠)⁠。

図7 ユーザー名(と設定した場合はパスワード)を入力してログインする
図7

「ライブラリ」を開き、「⁠メディアライブラリを追加」をクリックします。

「コンテンツタイプ」を「ミュージック」にし、「⁠表示名」を決定して「フォルダー」にメディアファイルがあるフォルダーを指定します(図8⁠)⁠。問題なければ「OK」をクリックしてください。

図8 メディアファイルがあるフォルダーを指定する
図8

これで登録完了です。

プレイリストの追加

筆者としてとても重要な機能であるプレイリストの追加方法を紹介します。

Jellyfin上で左上のホームアイコンをクリックすると、登録されているメディアの情報が表示されます(図9⁠)⁠。

図9 メディアファイルが表示されている
図9

プレイリストに追加したいアルバムをクリックしたままにすると、選択できるようになります。そしてプレイリストに追加したいアルバムを選択したら(今回の場合は2つ⁠)⁠、右上のハンバーガーメニューをクリックし、「⁠プレイリストに追加」をクリックします(図10⁠)⁠。

図10 この状態にできるとプレイリストに追加できるようになる。操作には少し慣れが必要だ
図10

既存のプレイリストに追加する場合は「プレイリスト」で選択し、新しく作成する場合は「新規」のままで「名前」にプレイリスト名を追加します(図11⁠)⁠。

図11 リストに名前をつける
図11

これの何が便利かというと、プレイヤー(今回だとDLNAクライアント)ごとにプレイリストを作成する必要がなくなることです。プレイヤーごとにプレイリストを分けたいというニーズは通常はないはずなので、この管理方法は便利です。

DLNAサーバーの有効化

Webブラウザーからも再生できますが、今回はあくまでメディアサーバーにするという主旨なので、他のアプリケーションからDLNAでアクセスできるようにします。

WebデフォルトではDLNAサーバーは有効になっていないので、設定を変更します。「⁠デバイス⁠」⁠-「⁠DLNA」を開き、「⁠DLNAサーバーの有効化」にチェックを入れ、「⁠保存」をクリックします(図12⁠)⁠。ここではデフォルトのユーザーを指定していますが、これは必須ではありません。

図12 DLNAサーバーの有効化」にチェックを入れる
図12

設定を有効にするため、Jellyfinサーバーを再起動します。次のコマンドを実行してください。

$ sudo systemctl restart snap.itrue-jellyfin.server.server

DLNAクライアント

DLNAサーバーを有効にしたら、クライアントアプリからアクセスしたくなるものです。今回はDLNAクライアントとして、VLCメディアプレイヤーとRhythmboxを取り上げます。

VLCメディアプレイヤー

まずはVLCですが、DLNAクライアント機能がデフォルトで有効になっています。左側のリストにある「ローカルネットワーク⁠」⁠-「⁠ユニバーサルプラグ&プレイ」でJellyfinサーバーが確認できます。

図13 Jellyfinサーバーが見え、プレイリストも表示されている
図13

Rhythmbox

Rhythmboxの場合はもう少し複雑で、DLNAクライアントとして使用する場合はまずパッケージをインストールする必要があります。端末から次のコマンドを実行してください。

$ sudo apt install grilo-plugins-0.3 dleyna-server

さらに「設定⁠」⁠-「⁠プラグイン」タブを開き、「⁠Griloメディアブラウザー」にチェックを入れると「共有」にDLNAサーバーが表示されるようになります(図14⁠)⁠。

図14 「⁠Griloメディアブラウザー」プラグインを有効にする
図14

ただし「参照」のリストが何やらおかしいこと、プレイリストも含めてディスク番号を考慮せず、曲順とアルファベット順でソートされていることなどから、何らかの不具合があるものと思われます(図15⁠)⁠。

図15 いろいろ表示がおかしいRhythmbox
図15

これは22.04 LTSでの話で、23.04以降はそもそもDLNAサーバーを発見できないそうで、Jellyfinを導入すると長く親しんだRhythmboxに別れを告げなければいけないということがわかりました。あちらを立てればこちらが立たず、どうするかよく検討する必要があります。

おすすめ記事

記事・ニュース一覧