引言
期末考完啦~ 转眼又忙碌了两个多月。这个插件是上个月做的,期间自己一边用一边迭代,在自己的Emby上迭了五代左右才缝出了一个自己比较满意的一个版本。然后由于期末啊部门啊杂七杂八的事情,就拖到了现在才着手写这篇文章(嘿嘿)。
不过读书人的事,怎么能叫拖呢,我这是在灰度测试~(疯狂点头)
现在的版本算是一个我比较满意的版本,也希望你能够喜欢~ 如果觉得可以的话,请在Github上给我一个小⭐⭐~ 谢谢!!!
这是什么?
EmbyFlow 是一个 Emby 首页轮播图/横幅增强脚本,基于 Emby-Home-Swiper-UI 做了深度优化与重构:保留原作漂亮的视觉表现,同时砍掉冗余功能,引入骨架屏异步加载,并把“播放续播”和“内容刷新”这两块核心体验做了重写。
预览图:
它有哪些优点?
感知更快:骨架屏 + 异步加载
- 图片没加载出来之前先用骨架屏占位,减少闪烁,首页观感更“稳”。
- 轮播界面更轻,资源占用更低。
更省心:自适应不同屏幕
- 内置屏幕宽度检测,桌面/平板/手机都能适配。
- 屏幕旋转/尺寸变化时也能跟着调整。
更顺滑:播放与续播更可靠
- 修复了原插件中 “PLAY” 按钮播放进度同步不准的问题,续播更贴近 Emby 实际进度。
更准确:首页推荐刷新机制重写
- 重写内容刷新逻辑:日期变化时先检查是否有新数据,仅在确实有更新时才刷新。
更一致:保持原生观感
- 继续沿用现代化 UI 风格,整体更贴近 Emby 原生界面,不显突兀。
安装
下面提供两种方式:直接覆盖 Web UI 文件(适合裸机/群晖/常规安装),以及 Docker Compose 注入脚本(适合容器)。
方式一:直接安装(修改 Web UI)
思路很简单:把 home.js 放进 Emby 的 Web UI 目录,并在 index.html 里引入它。
1) 找到 Emby 的 Web UI 目录(以群晖标准安装为例):
/volume1/@appstore/EmbyServer/system/dashboard-ui/
2) 下载 home.js 并放到该目录(任选其一):
# Linux(curl)
curl -L -o home.js "https://raw.githubusercontent.com/seestars/EmbyFlow/main/home.js"
# Linux(wget)
wget -O home.js "https://raw.githubusercontent.com/seestars/EmbyFlow/main/home.js"
# 群晖(根据实际路径调整)
sudo su -c 'cd /volume1/@appstore/EmbyServer/system/dashboard-ui && curl -L -o home.js "https://raw.githubusercontent.com/seestars/EmbyFlow/main/home.js"'
3) 编辑 index.html,在 <body> 中加入:
<!-- EmbyFlow -->
<script src="home.js"></script>4) 重启 Emby 服务或强制刷新浏览器缓存,首页应该就能看到轮播横幅。
方式二:Docker Compose(容器)部署
容器环境推荐用脚本注入,这样无需自己修改主页文件,而且在 Emby 镜像更新后脚本能自动把home.js写入主页。
1) 下载文件到你的 Compose 项目目录(与 docker-compose.yml 同级):
home.jsscript.sh
curl -L -o home.js "https://raw.githubusercontent.com/seestars/EmbyFlow/main/home.js"
curl -L -o script.sh "https://raw.githubusercontent.com/seestars/EmbyFlow/main/script.sh"
chmod +x script.sh
2) 修改 docker-compose.yml,在 emby 服务的 volumes 里添加:
- ./script.sh:/etc/cont-init.d/99-custom-patch.sh
- ./home.js:/system/dashboard-ui/home.js修改后如:
embyserver:
image: emby/embyserver:latest
container_name: embyserver
restart: unless-stopped
devices:
- /dev/dri:/dev/dri
ports:
- "28096:8096"
volumes:
- ./emby/config:/config
- /mount/data:/mnt/Anime
- ./script.sh:/etc/cont-init.d/99-custom-patch.sh
- ./home.js:/system/dashboard-ui/home.js
networks:
- media
environment:
- UID=33
- GID=33
3) 重启容器:
docker compose restart
结尾
其实一开始只是想找个emby-crx的平替插件,但是一直找不到满意的,而且原Emby-Home-Swiper-UI的Bugs实在是太多了!!!想着那还不如自己来,于是自己便在AI的帮助下修修补补完成了这版插件。
我后面在调试时,有发现过几个Bugs,但是感觉再加整个脚本会太过于臃肿,而且在实际运行时影响不会很大。如果你有什么好的修改办法也可以提交request给我呀~😽




感谢老哥啊,搞了好久的大屏轮播都没搞好,还是你这个docker compose的方便,一下就好了,谢谢你做出的贡献!!!义父!!!
@WLL03799 : 哈哈哈哈很开心能帮到你!
@Starry : 我看你说支持屏幕检测,那意味着就应该支持移动端的,可是我这边移动端不显示,部署是用的docker一键部署,难道是emby版本的问题?我的emby版本为4.9.3.0
@WLL03799 : 诶
,你的浏览器型号是多少呀,我的emby版本也是4.9.3.0,安卓chrome显示正常
@Starry : 老哥,我浏览器显示是正常的,我的意思是安卓端的APP
@WLL03799 : 噢噢噢噢,抱歉我没有写清楚,通过注入js脚本的话只适用于浏览器,APP的页面是编译在程序里的,我也爱莫能助了
@Starry : 好的,麻烦你了,我不知道怎么修改
要是你把代码弄进去APP可以显示的话麻烦叫我下 我也想要,谢谢
@WLL03799 : 噢,那我晚点回去试试
@Starry : js脚本可以用插件加载在emby里,但是需要css配合,这个就是没有css 所以我才想问问你知道不,我看了下js文件,里面也有css代码
@Starry : 对了,请问下有办法可以支持移动端吗?移动端的大屏不出现哎
@WLL03799 : 我尝试过了,还是需要移动端支持才行,脚本本身是没有问题的