现在的版本已经更新到我个人比较满意的程度了,基本上实现了当初我对项目所有的设想(甚至已经远远超过,毕竟当时只是想随手做个玩玩)。没想到陆陆续续完善了这么多内容。就当一个阶段性发个帖吧!当然可能也有很多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.html、admin.js与emby-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 部署
- 创建项目目录:
mkdir -p /opt/emby-in-one/{config,data}
cd /opt/emby-in-one
- 拷贝本仓库下的所有核心文件(包括
go.mod,cmd/,internal/,public/,Dockerfile,docker-compose.yml等)至该目录。 - 创建初始配置文件
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: []
- 构建并启动:
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,登录后记得清除

不赖
有些emby需要指定IP段才能登录观看的呢
独立用户账户 — 普通用户拥有独立的观看进度、已播放状态、收藏和"继续观看 / 接下来观看",与其他用户及上游共享账户完全隔离;管理员保持原有上游行为。
什么意思 也就是独立用户看片记录保存在本地跟上游不同步?