我和这部影片是什么关系?我喜欢它吗?——这是整理媒体库的第一个问题。历史上没有人问过。
媒体库里的电影越来越多,硬盘告急。你有仓鼠症,收藏的电影一部都不想删;但看过不喜欢的也躺在那里占空间;喜欢的又想要一个更高清的版本珍藏。这些都是你和每部影片之间的关系。ShelfDeck 做的事情很简单:先帮你理清这些关系,再替你执行对应的动作。
- 喜欢 → 要不要洗版到 4K、换一条优质音轨?
- 感觉一般 → 占着 20GB 有点浪费,压到 5GB 保留就好
- 不喜欢 → 帮你清理掉,腾空间给更值得的作品
- 还没看 → 标记,等看完再判断
你在豆瓣上打的星、在 Emby 里的观影记录——这些数据一直都有,只是没有人把它们串联起来。ShelfDeck 既是这个决策引擎,也是帮你执行动作的人。它理清你和每部影片的关系,然后替你删、压、换,不用你手动策划。
你的态度 ShelfDeck 的动作
─────────────────────────────────────────────
★★★★★ 挚爱,想永久收藏 → 洗版到 4K 高码率,搜最佳版本
★★★★ 不错,但体积太大 → 压缩到合理码率,节省空间
★★★ 看过就算了 → 保留,不折腾
★★ 不合口味 → 删除,不值得占空间
(未看) 等待你的判断 → 标记已看后再决定
核心工作流:
Emby 媒体库 ──→ 拉取所有影片(码率、分辨率、编码、已看状态)
│
豆瓣评分 + 你的打分 ──→ 规则引擎 ──→ 每部影片一条策略:保留 / 删除 / 转码 / 洗版
│
└──→ 一键入队 → FFmpeg 压缩 / Emby 删除 / MoviePilot 洗版
怎么知道自己和一部影片的关系? ShelfDeck 通过三个来源自动感知:
- 你亲自打的分数(在 ShelfDeck 里直接打分——最准确)
- 豆瓣的评分(同步你的豆瓣"看过"列表——你的历史偏好)
- Emby 的观看状态(已看/未看——你的实际行为)
三条数据合一,就是你和每部影片关系的全景图。规则引擎就是这张图上运行的"决策层"。
当前 v1.0.0 仅支持 Emby 电影媒体库。剧集类媒体库尚未测试及针对性开发,后续版本将完善支持。
Windows 部署:
- Windows 10/11
- Node.js ≥ 20(部署包已自带,用户无需安装)
Docker 部署(支持飞牛 NAS / Linux 服务器):
- Docker + Docker Compose
- 详见 Docker 部署指南
局域网内的 Emby 服务器(两种部署方式都需要)
- 下载
ShelfDeck-v1.0.0.zip,解压到任意目录 - 双击
shelfdeck_service启动器.vbs→ 托盘图标出现 + 浏览器打开http://127.0.0.1:18080/admin - 添加媒体库(登录 Emby → 选文件夹 → 完成)
媒体库数据加载完成后,根据你要用的功能做一次性的基础配置:转码设置(FFmpeg + 编码设备)、洗版设置(MoviePilot 地址)、豆瓣集成(用户 ID)。不用全部配——只用转码就只配转码。配置完策略推荐自动生效。
双击 ShelfDeck播放助手.exe 可打开桌面客户端。详细步骤见 Quick Start。
| 模块 | 做什么 |
|---|---|
| 媒体库盘点 | 同步 Emby 所有影片,分析码率/分辨率/编码/体积/已看状态 |
| 评分整合 | 豆瓣"看过"列表 + ShelfDeck 内打分 → 你和每部影片的关系画像 |
| 规则引擎 | 可配置的条件规则(P1-P10),根据评分 + 码率匹配动作 |
| 删除 | 从 Emby 直接删除低分影片,释放硬盘空间 |
| 转码 | FFmpeg 压缩高码率影片到目标码率(支持 nvenc/CPU 设备池) |
| 洗版 | 联动 MoviePilot 搜索优质版本替换(4K/高码率/指定音轨) |
| 桌面客户端 | 海报墙浏览未观看内容 + 媒体库管理 + 播放记录 |
不用你手动判断。ShelfDeck 拉取你的 Emby 媒体库数据(码率、分辨率、编码、体积),结合豆瓣评分和你的个人打分,通过规则引擎为每部影片自动匹配策略。默认规则大致是这样的:
| 评分 | 编码+码率条件 | ShelfDeck 策略 |
|---|---|---|
| ★★★★★ | — | 洗版 — 搜索更优质的版本替换 |
| ★★★★ | 旧编码或码率超标 | 转码 — 压缩到目标码率 H.265 |
| ★★★★ | 已是 H.265 且码率合理 | 保留 — 已达标,不折腾 |
| ★★★ | 旧编码或码率超标 | 转码 — 压缩到目标码率 H.265 |
| ★★★ | 已是 H.265 且码率合理 | 保留 — 已达标,不折腾 |
| ★★ / ★ | — | 删除 — 不值得占空间 |
| 无评分 | — | 保留 — 等你的判断 |
策略是完全可配置的。 每个媒体库可以绑定独立的策略模板——比如你可以在"动画"库绑一个激进模板,"纪录片"库绑一个保守模板只转不删。模板里可以精确调整:每个星级对应什么动作、目标码率多少、什么编码算"达标"、洗版搜什么分辨率和音轨偏好。你的规则,你做主。
豆瓣评分和你的打分是两个平行数据源,ShelfDeck 对两者一视同仁——有哪个就用哪个,两个都有就分别匹配,取最高优先级规则。
ShelfDeck 使用 FFmpeg 将不符合策略目标的影片转码为 H.265 格式。为什么是 H.265?
- 体积减半:同样画质下,H.265 文件体积大约是 H.264 的 50-60%
- 画质稳:现代编码器(nvenc、CPU x265)成熟,肉眼几乎看不出差别
- 全平台兼容:主流播放器、浏览器、电视盒子都支持
流程:读原文件 → FFmpeg 管道编码 → 临时目录输出 → 校验通过 → 替换原文件。全程沙盒操作,不直接碰原文件。
可以。只要给这个媒体库绑定一个策略模板,把 catch-all 规则(最低优先级,无评分时生效)的目标动作设为"转码"、目标编码设为 H.265,整个库所有影片就会被标记为"需转码",SmartTaskEngine 自动批量入队。不需要一个一个打分。
互补,不是替代。 Emby 负责播放和管理媒体文件;ShelfDeck 不碰播放,只负责决策层——分析你已经看过和打分的内容,告诉你该删、该压、还是该洗版,然后在你确认后替你执行。ShelfDeck 通过 Emby 的 HTTP API 同步数据,不需要在 Emby 服务器上安装任何插件。
洗版需要 MoviePilot。但删除和转码完全不依赖 MoviePilot,装了 ShelfDeck + 配好 Emby 就能用。
不会。转码全程在临时目录操作,原文件不动。转码完成后验证输出文件(时长、体积),通过后才替换。
每个媒体库有独立的任务执行模式:
| 模式 | 行为 |
|---|---|
| 全自动 | 任务自动入队 → 自动执行 → 转码/洗版完成后自动替换原文件,全程无需干预 |
| 全手动 | 任务创建后需手动点击执行 → 需手动确认替换 → 适合想每一步都看过再决定 |
| 自定义 | 单独开关:自动入队、自动执行、自动替换——自由组合 |
删除操作必须通过 Emby 的用户鉴权,只有具备删除权限的 Emby 账号才能执行。
是的。Windows 上双击 VBS 启动器后,ShelfDeck 服务在后台运行(系统托盘可见),几乎不占资源。现已支持 Docker 部署,可在飞牛 NAS、Linux 服务器上常驻运行,详见 Docker 部署指南。
许可协议:GPL-3.0
FFmpeg:本软件捆绑 FFmpeg(ffmpeg-static、@ffprobe-installer/ffprobe),FFmpeg 以 GPL-3.0 授权。源码:https://ffmpeg.org/download.html
合规风险提示:
- 豆瓣数据抓取:豆瓣评分通过 HTTP 获取,未获豆瓣官方授权。可禁用此功能(不配置豆瓣用户 ID)
- Emby 授权:ShelfDeck 不含 Emby 软件,用户需自备合法授权
- 本地文件夹支持:不依赖 Emby,直接扫描 Windows/NAS 上的文件夹作为媒体库
- 剧集类媒体库:完善对电视剧、动漫等剧集类型的策略推荐和任务执行
- Docker 部署:
提供 Docker 镜像,支持 NAS 和 Linux 服务器部署✅ 已完成 - English version:全英文界面与文档,服务国际用户
开发者邮箱:markmahoro@hotmail.com,欢迎交流。