本地影视库管理系统
由于jellyfin和Emby,以及主流NAS的播放应用对某些小众影片的支持不太友好,所以借助AI自己动手做了一个。
基于 Electron + Vue 3 构建的桌面应用,自动扫描和解析本地 NFO 元数据文件,提供多维度浏览、搜索和管理功能(需搭配其它元数据刮削工具使用)。
版本: v2.9.0
📺 观看视频介绍
首页(日间/夜间模式)
视图切换(文字/图文/缩图模式)
详情页
演员一览
收藏夹
简易搜索/多重搜索
应用设置
随机功能
# 安装根目录依赖
npm install
# 安装前端依赖
cd frontend
npm install
cd ..
# 同时启动 Electron 和前端开发服务器
npm run dev
# 或者分别启动
npm run dev:electron # 启动 Electron
npm run dev:frontend # 启动前端开发服务器(端口 5173)
npm run build 或先 npm run build:frontend 再 npm run build:electron。安装包输出到 dist/,应用名为 JavLibrary,用户数据在 %APPDATA%\JavLibrary\。npm run build:test(前端以 --mode test 构建后,再按测试配置打包)。安装包输出到 dist-test/,应用名为 JavLibrary_beta,appId 为 com.javlibrary.app.test,用户数据在 %APPDATA%\JavLibrary-test\,与正式版完全隔离;可与正式版同时安装。环境变量由根目录 .env、.env.test 管理(如 VITE_APP_ENV);本地覆盖可使用 .env.local(已加入 .gitignore)。
# 正式版
npm run build:frontend
npm run build:electron
# 测试版(一键)
npm run build:test
# 快速构建(跳过 sqlite3 重新编译)
npm run build:quick
JavLibrary/
├── electron/ # Electron 主进程
│ ├── main.js # 主进程入口文件
│ ├── preload.js # 预加载脚本(安全IPC通信)
│ └── src/
│ ├── config/ # 配置文件
│ ├── models/ # 数据模型
│ ├── services/ # 业务逻辑层
│ ├── ipc/ # IPC 处理器
│ └── utils/ # 工具函数
├── frontend/ # 前端应用(渲染进程)
│ ├── src/
│ │ ├── views/ # 页面组件
│ │ ├── components/ # 公共组件
│ │ ├── stores/ # 状态管理
│ │ ├── router/ # 路由配置
│ │ └── utils/ # 工具函数
│ └── vite.config.js
└── package.json
data 文件夹结构示例:
data/
├── 文件夹目录1/
│ ├── 作品文件夹1/
│ │ ├── poster.jpg # 封面(或 *ps.* / 文件名含 poster,如 ABC-001-poster.jpg)
│ │ ├── fanart.jpg # 海报(或 *pl.* / 文件名含 fanart,如 ABC-001-fanart.jpg)
│ │ ├── xxx.nfo # 元数据文件(任意 .nfo 后缀均可)
│ │ ├── video.mp4 # 视频文件(可选)
│ │ └── extrafanart/ # 预览图文件夹(可选,详情页多图轮播;文件夹名含 extrafanart 即可)
│ │ ├── 1.jpg
│ │ └── ...
│ └── ...
└── ...
.nfo 文件,不限于 movie.nfops/pl 结尾的图片;其次按关键词匹配,文件名含 poster 为封面、含 fanart 为海报(支持 poster.jpg、标题-poster.jpg 等)extrafanart 的子文件夹内图片会作为详情页预览图,与详情主图一起可点击轮播放大<uniqueid> 或 <num> 标签若需在应用中显示演员头像,可拉取 gfriends/gfriends 项目;在设置中选择的演员数据路径必须包含 Filetree.json 与 Content 目录。选好包含以上两者的文件夹路径后点击「扫描演员信息」即可。
若需自建或修改数据,请参阅 演员头像数据格式说明(Filetree.json + Content)。
注意: 考虑到演员数据一般较多,所以对该页面进行了缓存处理,不会频繁刷新,如果添加了演员数据发现头像并没有出现,可点击页面上的刷新按钮进行刷新
应用开箱即用,如需自定义配置:
Filetree.json 与 Content 目录的文件夹,用于演员头像展示;设置后需点击「扫描演员信息」构建映射(支持简繁体匹配)如果使用中遇到了 Bug 或问题,欢迎通过以下方式反馈:
此项目完全借助 AI 进行开发。如果你想要帮助改进这个项目,欢迎通过以下方式参与:
本项目采用 GPL-3.0 License 开源协议。
注意: 本软件仅供学习和技术交流使用,请遵守当地法律法规。
$ claude mcp add local-javlibrary \
-- python -m otcore.mcp_server <graph>