Jellyfin
免费软件媒体系统
Jellyfin 是一个免费的软件媒体系统,让您能够控制、管理和流式传输您的媒体内容。它是专有的 Emby 和 Plex 的替代品,能够通过多种应用从专用服务器向最终用户设备提供媒体。Jellyfin 源自 Emby 的 3.5.2 版本,并移植到 .NET Core 框架以实现完全的跨平台支持。这里没有附带条件,没有高级许可或功能,也没有隐藏的议程:只有一个团队,他们希望建立一个更好的东西,并一起努力实现它。我们欢迎任何对加入我们的征程感兴趣的人!
有关详细信息,请查看我们的文档页面。要接收最新的更新,获取 Jellyfin 的帮助,并加入社区,请访问我们的通讯渠道。关于该项目的更多信息,请查看我们的关于页面。
想要开始吗?
查看我们的下载页面或我们的安装指南,然后查看我们的快速入门指南。您还可以从源代码构建。
有东西没有正常工作吗?
在 GitHub 上打开一个问题。
想要做出贡献吗?
查看我们的贡献选择你的冒险,看看您可以在哪里帮助,然后查看我们的贡献指南和我们的社区标准。
有新的想法或改进吗?
查看我们的功能请求中心。
没有看到您的语言中的 Jellyfin 吗?
查看我们的Weblate 实例,帮助翻译 Jellyfin 及其子项目。
Jellyfin 服务器
此存储库包含 Jellyfin 后端服务器的代码。请注意,这只是 Jellyfin GitHub 组织 在 GitHub 上的众多项目之一。如果您想做出贡献,可以从查看我们的文档开始,看看要做什么。
服务器开发
这些指导
将帮助您在本地开发环境中进行设置,以便为此存储库做出贡献。开始之前,请确保完全阅读了我们关于开发贡献的指南。请注意,除了 FreeBSD 仍然不兼容外,所有主要的操作系统都支持此项目。
先决条件
在可以构建项目之前,您首先需要在系统上安装 .NET 7.0 SDK。
这里包括了从命令行运行此项目的指导,但如果您想在运行时调试服务器,还需要安装一个 IDE。任何支持 .NET 6 开发的 IDE 都可以,但两个选项是最新版本的 Visual Studio(至少 2022 年版)和 Visual Studio Code。
还需要安装 ffmpeg。
克隆存储库
安装依赖项后,您需要克隆此存储库的本地副本。如果您只是想从源代码运行服务器,可以直接克隆此存储库,但如果您打算为项目贡献代码更改,您应该设置您自己的存储库分支。以下示例展示了如何通过 HTTPS 直接克隆存储库。
git clone https://github.com/jellyfin/jellyfin.git
安装 Web 客户端
服务器默认配置为除了提供后端之外还托管web 客户端所需的静态文件。在运行服务器之前,您需要获取 web 客户端的副本,因为它们在此存储库中并没有直接包含。
请注意,还可以使用一些额外的配置将 web 客户端单独托管于 web 服务器,这种情况下您可以跳过此步骤。
获取 web 客户端的文件有三种选择。
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 # 进入存储库目录
dotnet run --project Jellyfin.Server --webdir /absolute/path/to/jellyfin-web/dist # 运行服务器启动项目
第二个选项是构建项目,然后直接运行生成的可执行文件。直接运行可执行文件时,您可以轻松添加命令行选项。添加 --help
标志以列出所有支持的命令行选项的详细信息。
dotnet build # 构建项目
cd Jellyfin.Server/bin/Debug/net7.0 # 更改为构建输出目录
./jellyfin
,在 Windows 上使用 jellyfin.exe
。运行测试
此存储库还包括用于验证功能的单元测试,这些功能作为 Azure 上的 CI 管道的一部分。有几种方法可以运行这些测试。
dotnet test
从命令行运行测试高级配置
以下部分描述了一些基于上述标准指导的更高级的源代码运行服务器的方案。
单独托管 Web 客户端
并不需要将前端 web 客户端作为后端服务器的一部分来托管。托管这两个组件可能对于希望在更
紧密的开发循环中使用单独的 webpack 开发服务器托管客户端的前端开发者很有用。参见jellyfin-web存储库以获取如何执行此操作的说明。
要指示服务器不托管 web 内容,必须设置一个 nowebclient
配置标志。这可以使用命令行开关 --nowebclient
或环境变量 JELLYFIN_NOWEBCONTENT=true
指定。
由于这是一个常见的情况,所以还为 Visual Studio 定义了一个名为 Jellyfin.Server (nowebcontent)
的单独启动配置文件,可以从主工具栏的“开始调试”下拉列表中选择。
注意: 如果 web 客户端单独托管,无法运行设置向导。
此项目得到以下支持: