jellyfin

C#源码 2025-08-17

jellyfin

自由软件媒体系统






jellyfin是一种免费的软件媒体系统,可让您控制管理和流媒体。它是专有EMBY和PLEX的替代方法,可以通过多个应用程序向最终用户设备提供媒体。 jellyfin从Emby的3.5.2版本中降下,并移植到.NET核心框架以实现完整的跨平台支持。没有附带条件,没有高级许可证或功能,也没有隐藏的议程:只是一个想要更好的东西并共同努力实现它的团队。我们欢迎有兴趣加入我们的任何人的人!

有关更多详细信息,请参阅我们的文档页面。要获得最新的更新,请获得有关jellyfin的帮助,并加入社区,请访问我们的沟通渠道之一。有关该项目的更多信息,请参阅我们的有关页面。

想开始吗?
查看我们的下载页面或安装指南,然后查看我们的快速启动指南。您也可以从源头构建。

有效的事情不正确吗?
在Github上打开一个问题。

想贡献吗?
查看我们的贡献自己的选择冒险,以查看您可以在哪里提供帮助,然后查看我们的贡献指南和社区标准。

新想法还是改进?
查看我们的功能请求中心。

没有看到jellyfin的语言吗?
查看我们的魏布拉特实例,以帮助翻译jellyfin及其子项目。


jellyfin服务器

该存储库包含jellyfin的后端服务器的代码。请注意,这只是Github上jellyfin Github组织下的许多项目之一。如果您想做出贡献,则可以从检查我们的文档以查看该工作的工作。

服务器开发

这些说明将帮助您使用本地开发环境进行设置,以便为此存储库做出贡献。在开始之前,请确保完全阅读我们有关开发贡献的准则。请注意,除FreeBSD外,所有主要操作系统都支持该项目,这仍然是不兼容的。

先决条件

在构建项目之前,您必须在系统上首先安装.NET 9.0 SDK。

此处包括从命令行运行此项目的说明,但是如果要在服务器运行时调试服务器,则需要安装IDE。任何支持.NET 6开发的IDE都将起作用,但是两个选项是Visual Studio(至少2022年)和Visual Studio代码的最新版本。

还需要安装FFMPEG。

克隆存储库

安装依赖关系后,您需要克隆此存储库的本地副本。如果您只想从源运行服务器,则可以直接克隆此存储库,但是如果您打算为项目贡献代码更改,则应设置自己的存储库。以下示例显示了如何直接通过HTTPS克隆存储库。

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

安装Web客户端

该服务器已配置为托管Web客户端所需的静态文件,除了默认使用后端。在运行服务器之前,您将需要获取Web客户端的副本,因为它们未直接包含在此存储库中。

请注意,还可以通过一些其他配置与Web服务器分开托管Web客户端,在这种情况下,您可以跳过此步骤。

有三个选项可以获取Web客户端的文件。

  1. 从Azure Devops管道下载完成的构建之一。您可以通过查看管道页面的“分支”选项卡,下载特定版本的构建。
  2. 按照jellyfin -web存储库上的说明从源构建它们
  3. 从服务器的现有安装中获取预构建的文件。例如,使用Windows Server安装客户端文件位于C:\Program Files\ jellyfin \Server\ jellyfin -web

运行服务器

以下说明将帮助您通过命令行或首选IDE启动和运行项目。

与Visual Studio一起运行

要使用Visual Studio运行项目,您可以打开解决方案( .sln )文件,然后按F5运行服务器。

使用Visual Studio代码运行

要使用Visual Studio代码运行该项目,您首先需要使用Open Folder...选项使用Visual Studio代码打开存储库目录。

其次,您需要为工作区安装推荐的扩展名。请注意,扩展建议被归类为“工作区建议”或“其他建议”,但仅需要“工作空间建议”。

安装所需的扩展程序后,您可以通过按F5来运行服务器。

从命令行运行

要从命令行运行服务器,您可以使用dotnet run命令。下面的示例显示了如何将存储库克隆到名为jellyfin (默认目录名称)的目录中,并且应在所有操作系统上使用。

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

第二个选项是构建项目,然后直接运行结果可执行文件。直接运行可执行文件时,您可以轻松添加命令行选项。将--help标志添加到所有受支持的命令行选项上的详细信息中。

  1. 建立项目
dotnet build                       # Build the project
cd jellyfin .Server/bin/Debug/net9.0 # Change into the build output directory
  1. 执行构建输出。在Linux,Mac等上使用./ jellyfin和Windows上使用jellyfin .exe

访问托管的Web客户端

如果将服务器配置为托管Web客户端并且服务器正在运行,则可以在http://*loc*a*lhost:8096默认情况下访问Web客户端。

可以在http://*loc*a*lhost:8096/api-docs/swagger/index.html上查看API文档

从github代码空间运行

由于jellyfin将在GitHub托管服务器上的容器上运行,因此JF需要以不同的方式处理某些东西。

注意:根据所选的配置(如果只单击“创建codespace”,它将创建一个默认配置),可能需要20-30秒即可加载所有扩展名并在VS代码已经打开时准备环境。只要给它一些时间,然后等到您看到Downloading .NET version(s) 7.0.15~x64 ...... Done!在“输出”选项卡中。

注意:如果要从外部访问JF实例,例如在另一台PC上使用WebClient访问JF实例,请记住将“ ports”设置为“较低VS代码”窗口中的“端口”。

注意:首先使用任何WebUI打开服务器实例时,您将被发送到登录而不是设置页面。刷新登录页面一次,您应该将其重定向到设置。

您有两种配置供您选择。

默认 - 开发jellyfin服务器

这会创建一个容器,可以运行和调试jellyfin Media Server,但没有设置其他任何内容。每次创建一个新容器时,都必须再次通过整个设置运行。也没有预先加载的FFMPEG,WebClient或媒体。使用.NET Launch (nowebclient)启动配置来启动服务器。

请记住,由于没有Web客户端,因此必须通过外部客户端连接到它。这可能只是运行WebUI的另一个CodeSpace容器。 VUEJS不支持该设置步骤,因为它不起作用。

开发jellyfin服务器ffmpeg

this extends the default server with a default installation of ffmpeg6 though the means described here: https://jellyfin*.**org/docs/general/installation/linux#repository-manual If you want to install a specific ffmpeg version, follow the comments embedded in the .devcontainer/Dev - Server Ffmpeg/install.ffmpeg.sh file.

使用ghcs .NET Launch (nowebclient, ffmpeg)启动配置,以启用jellyfin -FFMPEG运行。

运行测试

该存储库还包括用于验证功能作为Azure的CI管道的一部分的单元测试。有几种运行这些测试的方法。

  1. 使用dotnet test从命令行运行测试
  2. 使用测试资源管理器在Visual Studio中运行测试
  3. 使用关联的Codelens注释在Visual Studio代码中运行单个测试

高级配置

以下各节描述了一些更高级的方案,用于从上面的标准指令构建的源运行服务器。

单独托管Web客户端

作为后端服务器的一部分,不必托管前端Web客户端。单独托管这两个组件可能对希望将客户端托管在单独的WebPack开发服务器中以进行更严格的开发环路的前端开发人员很有用。有关如何执行此操作的说明,请参见jellyfin -Web回购。

要指示服务器不要托管Web内容,必须设置一个nowebclient配置标志。可以使用命令行开关--nowebclient或环境变量jellyfin _NOWEBCONTENT=true来指定这一点。

由于这是一个常见的情况,因此还为Visual Studio定义了一个单独的启动配置文件,称为jellyfin .Server (nowebcontent) ,可以从主工具栏的“开始调试”下拉列表中选择。

注意:如果网络客户端分别托管,则无法运行设置向导。


该项目得到了支持:

下载源码

通过命令行克隆项目:

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