Jellyfinは動画や画像、音楽、本などをストリーミングできるコンテンツ管理システムです。Jellyfinを使えば自宅のPCに保存してあるコンテンツを別PC、スマートフォン、タブレットなどからいつでもストリーミングで視聴可能とのことなので、実際にWindows搭載PCにサーバーをセットアップしてみました。

The Free Software Media System | Jellyfin

https://jellyfin.org/

Jellyfinのダウンロードページへアクセスし、「Server」の「Windows」を選択して「Downloads」をクリック。



今回はx86-64アーキテクチャのCPUを搭載したPCを使用するので「AMD64」をクリックします。



「Jellyfin_○○.○.○○_windows-x64.exe」をクリック。



インストーラーをダブルクリックして起動します。



「Next」をクリック。



利用規約が表示されます。「I Agree」をクリック。



インストール方法を選択できますが、記事作成時点では「Install as a Service」はバグがあって一部の機能が使用できないとのこと。「Basic Install」から変更せずに「Next」をクリックします。



続いてインストール先とデータ保存先のフォルダを選択します。「他のデータやメディアがあるフォルダを選択しないで」と書かれていました。「Next」をクリック。



「Next」をクリックします。



「Next」をクリック。



「Install」をクリックします。



しばらく待機し、インストールが完了したら「Close」をクリック。



スタートメニューを開き、「Jellyfin Tray App」を検索して起動します。



「許可」をクリック。



Chromeなどのブラウザからhttp://localhost:8096にアクセスするとJellyfinのサーバーが起動していました。言語表示を「日本語」に変更し、「次へ」をクリックします。



管理アカウントのユーザー名とパスワードを決め、入力して「次へ」をクリック。



「メディアライブラリーを追加」をクリックします。



それぞれのライブラリでは「映画」「音楽」「番組」「ブック」「ホームビデオと写真」「ミュージックビデオ」「TV番組と映画を混ぜる」からコンテンツタイプを選択する模様。



今回は「ブック」「映画」「音楽」のライブラリを作成してみます。まず、適当なフォルダにそれぞれのライブラリ用のフォルダを作成。今回はわかりやすく「book」「movie」「music」という名前にしました。



次にJellyfinの画面に戻り、コンテンツタイプとして「映画」を選択。表示名はわかりやすく「映画」と入力し、「フォルダー」をクリックします。



先ほど用意した「movie」フォルダのパスを入力し、「OK」をクリック。



もう一度「OK」をクリックします。



「ブック」「音楽」についても同様の操作でメディアライブラリを作成しました。「次へ」をクリック。



優先するメタデータ言語として「Japanese」を選択し、国を「Japan」に設定して「次へ」をクリックします。



「次へ」をクリック。



「完了」をクリックします。



サインイン画面が表示されるので、先ほど作成したアカウントのユーザー名・パスワードを入力して「サインイン」をクリック。



メディアライブラリが表示されました。



続いて、外部からインターネット経由でアクセスするための設定を行っていきます。最初にルーターの管理画面を開き、各自のルーターのマニュアルに従ってローカルIPアドレスの手動割り当てを行い、Jellyfinのサーバーを動かしているPCのローカルIPアドレスを固定。



次にTCPの80番と443番ポートを先ほど固定したIPアドレスにマッピングする「ポート開放」を行います。外部からのアクセス時には必須の設定であるため、もしNURO光でMAP-E方式の割り当てが行われている場合などポート開放ができないプロバイダを使用している場合は外部からのアクセスは諦めるしかありません。



ポート開放ができたら、HTTPS通信に対応するためPCに「Caddy」をインストールします。ダウンロードページへアクセスし、Platformで「Windows amd64」を選択して「Download」をクリック。



ダウンロードした「caddy_windows_amd64.exe」ファイルをコピー。



「C:\Program Files」に「caddy」というフォルダを作成。



先ほどコピーした実行ファイルを「caddy」フォルダの中に貼り付け、ファイル名を「caddy.exe」に変更します。



スタートメニューから「環境変数を編集」を検索してクリック。



ユーザー環境変数の「Path」を選択し、「編集」をクリック。



「新規」をクリックし、「C:\Program Files\caddy」と入力して「OK」をクリックします。



スタートメニューで「Windows PowerShell」を検索してクリック。



コマンド「caddy respond --body test --listen:80」を選択し、コピーしてからCtrl+Vで貼り付けてEnterキーを押すとCaddyのサーバーが起動します。



スマートフォンなどのブラウザを使用して、外部の回線からグローバルIPアドレスを入力すると「test」と表示されました。これで外部からのアクセスチェックは完了です。自分のグローバルIPアドレスが不明な場合は「https://ipv4.icanhazip.com/」にアクセスすると表示されます。



HTTPSを使用するためにはDNSの設定が必要です。今回はすでに所有しているドメインを使用するため、「jelly」というサブドメインのAレコードに先ほど確認したグローバルIPアドレスを設定しました。もしドメインを所有していない場合は、DDNS NowやDuck DNSなどの無料DDNSサービスを使用すればOK。



CaddyサーバーへのアクセスをJellyfinにリダイレクトする設定を行います。デスクトップにテキストファイルを作成し、「Caddyfile」と名前を変更します。確認のダイアログが表示されるので「はい」をクリック。



Caddyfileをメモ帳などのテキストエディタで開き、1行目に先ほど設定したドメイン名、3行目に「reverse_proxy 127.0.0.1:8096」と記述して保存します。



「C:\Program Files\caddy」内にCaddyfileを移動します。Program Filesフォルダ以下ではファイルを作成できないため、一度デスクトップでファイルを作成する必要があったというわけ。



PowerShellに戻り、「Ctrl + C」で起動中のCaddyを一度終了します。「cd "C:\Program Files\caddy"」などのコマンドでCaddyのフォルダへ移動後、「caddy run」とコマンドを入力すると「Caddyfileを使用して起動」というメッセージが出現します。



外部の回線に接続したPCのブラウザにドメインを入力するとJellyfinのログイン画面にリダイレクトされました。ローカルでアクセスした時と同様にユーザー名とパスワードを入力して「サインイン」をクリック。



メディアフォルダが表示され、無事接続できていることが確認できました。



サーバーのインストールの仕上げとして、PCを再起動した際にも自動でCaddyを起動する設定を行います。スタートメニューで「Windows PowerShell」を検索して表示し、右クリックして「管理者として実行」をクリック。



「sc.exe create caddy start= auto binPath= "C:\Program Files\caddy\caddy.exe run"」をコピーし、PowerShellにペーストしてEnterキーを押します。次に「sc.exe start caddy」をコピーして同様にペースト&Enterキーを押します。これで再起動時に自動でCaddyが起動するようになりました。



Caddyを終了したい場合は「sc.exe stop caddy」コマンドを使用すればOK。再起動時の自動起動をやめたい場合は「sc.exe delete caddy」コマンドを使用するとサービスからCaddyを削除することができます。

Jellyfinは今回使用したウェブ版クライアントのほか、デスクトップ版・Android版・iOS版・Android TVおよびFire TV版・Roku版・Kodi版のクライアントが存在しています。

次回の記事で実際にJellyfinを使用してコンテンツをストリーミングしてみる予定です。