jellyfin - フリーソフトウェアメディアシステム

(The Free Software Media System)

Created at: 2018-12-09 14:36:45
Language: C#
License: GPL-2.0

ゼリーフィン

フリーソフトウェアメディアシステム


ロゴバナー

GPL 2.0 ライセンス 現在のリリース 翻訳ステータス Azure ビルド Docker プル カウント 寄付 機能リクエストを提出する マトリックスでチャット サブレディットに参加する RSS フィードのリリース マスター コミット RSS フィード LGTM アラートの総数


Jellyfin は、メディアの管理とストリーミングを制御できるフリー ソフトウェア メディア システムです。複数のアプリを介して専用サーバーからエンドユーザー デバイスにメディアを提供することは、独自の Emby および Plex に代わるものです。Jellyfin は Emby の 3.5.2 リリースから派生したもので、.NET Core フレームワークに移植されて、完全なクロスプラットフォーム サポートを有効にします。縛り付けられた条件、プレミアム ライセンスや機能、および隠された議題はありません。より良いものを構築し、それを達成するために協力したいチームだけです。私たちの探求に興味のある方ならどなたでも大歓迎です!

詳細については、ドキュメンテーション ページ を参照してください。最新のアップデートを受け取り、Jellyfin のヘルプを入手し、コミュニティに参加するには、コミュニケーション チャネルのいずれかにアクセスしてください。プロジェクトの詳細については、概要ページをご覧ください

始めたいですか?ダウンロード ページまたはインストール ガイド
を 確認してから、クイック スタート ガイドを参照してください。ソースからビルドすることもできます。

何かが正しく機能していませんか?GitHubで問題
を 開きます。

貢献したいですか?私たちの寄稿者である choose-your-own-adventure
を チェックして、どこで支援できるかを確認してから、寄稿ガイドコミュニティ基準を参照してください。

新しいアイデアまたは改善?機能リクエスト ハブ
をチェックしてください。

あなたの言語で Jellyfin が表示されませんか? Jellyfin とそのサブプロジェクトの翻訳に役立つWeblate インスタンス
を チェックしてください。

詳細な翻訳状況

ジェリーフィンサーバー

このリポジトリには、Jellyfin のバックエンド サーバーのコードが含まれています。これは、GitHub の Jellyfin GitHub組織の下にある多くのプロジェクトの 1 つにすぎないことに注意してください。貢献したい場合は、ドキュメントをチェックして、何に取り組むべきかを確認することから始めることができます。

サーバー開発

これらの手順は、このリポジトリに貢献するためにローカル開発環境をセットアップするのに役立ちます。開始する前に、開発貢献に関するガイドラインをよくお読みください。このプロジェクトは、互換性のない FreeBSD を除くすべての主要なオペレーティング システムでサポートされていることに注意してください。

前提条件

プロジェクトをビルドする前に、まずシステムに.NET 6.0 SDKをインストールする必要があります。

コマンド ラインからこのプロジェクトを実行する手順はここに含まれていますが、実行中にサーバーをデバッグする場合は、IDE もインストールする必要があります。.NET 6 開発をサポートするすべての IDE が機能しますが、Visual Studioの最新バージョン(少なくとも 2022) とVisual Studio Codeの 2 つのオプションがあります。

ffmpegもインストールする必要があります。

リポジトリのクローン

依存関係をインストールしたら、このリポジトリのローカル コピーを複製する必要があります。サーバーをソースから実行するだけの場合は、このリポジトリを直接複製できますが、コードの変更をプロジェクトに提供する場合は、リポジトリの独自のフォークを設定する必要があります。次の例は、HTTPS 経由でリポジトリを直接複製する方法を示しています。

git clone https://github.com/jellyfin/jellyfin.git

Web クライアントのインストール

サーバーは、デフォルトでバックエンドにサービスを提供するだけでなく、 Web クライアントに必要な静的ファイルをホストするように構成されています。サーバーを実行する前に、Web クライアントのコピーを取得する必要があります。これは、Web クライアントがこのリポジトリに直接含まれていないためです。

いくつかの追加構成を使用して、Web サーバーとは別に Web クライアントをホストすることも可能であることに注意してください。その場合、この手順をスキップできます。

Web クライアント用のファイルを取得するには、3 つのオプションがあります。

  1. 完成したビルドの 1 つをAzure DevOps パイプラインからダウンロードします。パイプライン ページのブランチ タブを見ると、特定のリリースのビルドをダウンロードできます。
  2. jellyfin-web リポジトリの指示に従って、ソースからビルドします。
  3. サーバーの既存のインストールからビルド済みファイルを取得します。たとえば、Windows サーバーのインストールでは、クライアント ファイルは次の場所にあります。
    C:\Program Files\Jellyfin\Server\jellyfin-web

サーバーの実行

次の手順は、コマンド ラインまたは好みの IDE を介してプロジェクトを起動して実行するのに役立ちます。

Visual Studio での実行

Visual Studio でプロジェクトを実行するには、ソリューション (

.sln
) ファイルを開き、 を押し
F5
てサーバーを実行します。

Visual Studio Code での実行

Visual Studio Code でプロジェクトを実行するには、まず

Open Folder...
オプションを使用して Visual Studio Code でリポジトリ ディレクトリを開く必要があります。

次に、ワークスペースに推奨される拡張機能をインストールする必要があります。拡張機能の推奨事項は、「ワークスペースの推奨事項」または「その他の推奨事項」のいずれかに分類されますが、「ワークスペースの推奨事項」のみが必須であることに注意してください。

必要な拡張機能をインストールしたら、 を押してサーバーを実行できます

F5

コマンドラインからの実行

コマンドラインからサーバーを実行するには、コマンドを使用できます

dotnet run
jellyfin
以下の例は、(デフォルトのディレクトリ名) という名前のディレクトリにリポジトリを複製し、すべてのオペレーティング システムで動作する場合の方法を示しています。

cd jellyfin                          # Move into the repository directory
dotnet run --project Jellyfin.Server --webdir /absolute/path/to/jellyfin-web/dist # Run the server startup project

2 番目のオプションは、プロジェクトをビルドし、結果の実行可能ファイルを直接実行することです。実行可能ファイルを直接実行すると、コマンド ライン オプションを簡単に追加できます。

--help
サポートされているすべてのコマンド ライン オプションの詳細を一覧表示するには、フラグを追加します。

  1. プロジェクトをビルドする
dotnet build                       # Build the project
cd Jellyfin.Server/bin/Debug/net6.0 # Change into the build output directory
  1. ビルド出力を実行します。Linux、Mac などでは を使用
    ./jellyfin
    し、Windows では を使用します
    jellyfin.exe

テストの実行

このリポジトリには、Azure の CI パイプラインの一部として機能を検証するために使用される単体テストも含まれています。これらのテストを実行するには、いくつかの方法があります。

  1. を使用してコマンドラインからテストを実行します
    dotnet test
  2. テスト エクスプローラーを使用して Visual Studio でテストを実行する
  3. 関連するCodeLens 注釈を使用して、Visual Studio Code で個々のテストを実行する

詳細設定

次のセクションでは、上記の標準的な手順に基づいて構築された、ソースからサーバーを実行するためのより高度なシナリオについて説明します。

Web クライアントを個別にホストする

フロントエンド Web クライアントをバックエンド サーバーの一部としてホストする必要はありません。これら 2 つのコンポーネントを別々にホストすることは、よりタイトな開発ループのために別の webpack 開発サーバーでクライアントをホストすることを好むフロントエンド開発者にとって役立つ場合があります。これを行う方法については、 jellyfin-webリポジトリを参照してください。

Web コンテンツをホストしないようにサーバーに指示するには、

nowebclient
設定する必要がある構成フラグがあります。これは、コマンド ライン スイッチ
--nowebclient
または環境変数を使用して指定できます
JELLYFIN_NOWEBCONTENT=true

これは一般的なシナリオであるため、Visual Studio 用に定義された別の起動プロファイルもあり

Jellyfin.Server (nowebcontent)
、メイン ツールバーの [デバッグの開始] ドロップダウンから選択できます。

注: Web クライアントが個別にホストされている場合、セットアップ ウィザードは実行できません。


このプロジェクトは次の支援を受けています。

デジタルオーシャン   JetBrains のロゴ