【开源】【✨Emby-In-One✨】把你集邮的所有Emby聚合成一个服务器吧!V1.4.1版本更新|支持多用户分发Emby|反向代理|HTTP代理绕过服务器地区/IP封锁|自定义UA伪装绕过客户端封锁

现在的版本已经更新到我个人比较满意的程度了,基本上实现了当初我对项目所有的设想(甚至已经远远超过,毕竟当时只是想随手做个玩玩)。没想到陆陆续续完善了这么多内容。就当一个阶段性发个帖吧!当然可能也有很多bug,毕竟我个人也不会高强度使用所有功能,不过单人使用我没遇到什么大问题,来吧来吧……使用的话直接在上游服务器里添加自己的Emby服务器,推荐播放模式选择代理模式,UA伪装使用透传客户端(有能力者可使用自定义,不过今天才发现自定义有bug,让AI跑了下也不知道修没修好...诶嘿),随后填入对应Emby上游的账密。之后使用管理员账户登录一次Emby(透传客户端模式需要),后续则可以随意使用普通用户或者管理员账户登录。元数据如果加载效果不佳,可以在上游阶段手动选择一个服务器为元数据优先

仓库地址在此:Emby-In-One 求Star

项目介绍:

在通常的Emby客户端与Emby上游之间构建一个中间代理的虚拟Emby服务端,从而在中间代理的虚拟Emby服务端中实现对所有上游Emby进行影视聚合,流量反代,模拟客户端进行Emby访问,虽非本意,但还是达成了在通常意义上的——反向代理、多用户分发、让日本等常见被封锁国家绕过地区限制、统一所有访问Emby上游的客户端UA

功能提升(V1.4大版本重点更新)

  • 多用户管理 — 支持创建多个普通用户,每个用户可独立配置可访问的上游服务器;管理员可通过管理面板、REST API 和 SSH 菜单管理用户。
  • 独立用户账户 — 普通用户拥有独立的观看进度、已播放状态、收藏和"继续观看 / 接下来观看",与其他用户及上游共享账户完全隔离;管理员保持原有上游行为。
  • 并发播放数限制 — 每台上游服务器可独立配置最大并发播放数(maxConcurrent),超出限制时返回 429;基于心跳超时自动释放占用。注意管理员账户不受并发限制
  • 透传客户端UA模式修正 — 透传客户端UA模式的上游不再在启动时使用 Infuse 身份尝试登录;而是等待真实客户端连接后再认证,避免在上游 Emby 产生虚假设备记录。同时将提供UA的能力只固化给admin
  • 宽恕期机制 — 搜索和媒体聚合不再阻塞等待所有上游服务器响应——引入宽恕期机制,快速服务器的结果即时返回,慢速服务器在宽恕期窗口内继续汇入。这使得原先搜索卡顿现象大大缓解,用户等待时间最长为——加载最快的Emby上游 宽恕时限

预览




图床服务由 NodeImage 提供,感谢支持。


快速安装

旧版 Node.js 部署说明:如果您希望部署基于 Node.js 的 V1.2.1 稳定版,请前往本仓库的 Releases 页面 下载 V1.2.1 的 Source code 源码压缩包,解压后同样运行 bash install.sh 即可。

本项目优先推荐在 Linux 服务器直接使用 Release 二进制部署 V1.4.1(无需本地编译);Docker 方式适合希望自行构建镜像的场景。

方式一:Release 二进制一键安装(首推)

curl -fsSL -o release-install.sh https://raw.githubusercontent.com/ArizeSky/Emby-In-One/main/release-install.sh
sudo bash release-install.sh

可选:指定版本安装(不确定稳定性)。

sudo bash release-install.sh V1.3.0

该脚本会自动完成:

  • 按 CPU 架构下载对应 Release 二进制(无需本地编译 Go)
  • 初始化 /opt/emby-in-one/{config,data,log} 并首次生成随机管理员密码
  • 拉取 admin.htmladmin.jsemby-in-one-cli.sh 配套资源(二进制已内嵌管理面板,外部文件为可选覆盖更新)
  • 安装并启动 systemd 服务(emby-in-one),支持开机自启
  • 若检测到旧版本,自动备份并执行可回滚升级

方式二:源码仓库一键安装脚本(推荐开发者/希望本地构建镜像)

git clone https://github.com/ArizeSky/Emby-In-One.git
cd Emby-In-One
bash install.sh

脚本将为您自动安装 Docker 环境、分配随机管理员密码、构建 Go 版镜像并启动服务。后续如需管理,通过 SSH 输入 emby-in-one 即可呼出管理菜单。

方式三:手动 Docker Compose 部署

  1. 创建项目目录:
mkdir -p /opt/emby-in-one/{config,data}
cd /opt/emby-in-one
  1. 拷贝本仓库下的所有核心文件(包括 go.mod, cmd/, internal/, public/, Dockerfile, docker-compose.yml 等)至该目录。
  2. 创建初始配置文件 config/config.yaml
server:
  port: 8096
  name: "Emby-In-One"
  # trustProxy: true        # 部署在反向代理(Nginx/Caddy 等)后面时设为 true

admin:
  username: "admin"
  password: "your-strong-password" # 首次启动后自动加密存储

playback:
  mode: "proxy"

timeouts:
  api: 30000
  global: 15000
  login: 10000
  healthCheck: 10000
  healthInterval: 60000

proxies: []
upstream: []
  1. 构建并启动:
docker compose build
docker compose up -d

方式四:Go 源码直接运行(适合开发者)

环境要求:Go 1.23 且具备 C 编译链(Debian/Ubuntu 运行 apt install build-essential)。

mkdir -p config data
# 按方式三的说明在 config 文件夹下创建 config.yaml
go test ./...
go run ./cmd/emby-in-one

默认访问地址

  • Emby 客户端连接地址:http://服务器IP:8096
  • 管理面板:http://服务器IP:8096/admin

系统要求

Release 二进制部署(推荐):

  • Linux(amd64 / arm64 / arm / mips / mipsle / riscv64)
  • 无需 Go 编译环境,直接运行预编译二进制

Docker 部署:

  • Docker 20.10 ,Docker Compose v2
  • Linux:Debian 11/12/13、Ubuntu 22/24(推荐),其他发行版需自行验证
  • Windows / macOS 也可运行(开发测试用)

Go 源码编译:

  • Go 1.23
  • C 编译链(CGO 用于 SQLite):Debian/Ubuntu 运行 apt install build-essential

免责声明

注意:本项目通过模拟 Emby 客户端行为与上游服务器通信,存在被上游或相关平台识别并封禁账号/API Key 的风险。使用本项目即表示您已自行承担上述风险,对于因使用不当或上游政策调整导致的封号及数据损失,作者不承担任何责任。


测试站点

演示站点
Emby连接地址:https://emby.cothx.eu.cc/
账号:admin
密码:5T5xF4oMxcnrcCPA
日志里可能会记录IP,登录后记得清除

点赞
  1. Herissmon说道:

    不赖

  2. chenlin9584说道:

    有些emby需要指定IP段才能登录观看的呢

  3. Anzzz说道:

    独立用户账户 — 普通用户拥有独立的观看进度、已播放状态、收藏和"继续观看 / 接下来观看",与其他用户及上游共享账户完全隔离;管理员保持原有上游行为。

    什么意思 也就是独立用户看片记录保存在本地跟上游不同步?

回复 Herissmon 取消回复

电子邮件地址不会被公开。必填项已用 * 标注

×
订阅图标按钮