Об этом проекте
OpenAver — это бесплатное десктоп-приложение с открытым исходным кодом,主打「用封面逛、用女優找」方式浏览收藏,并可选择输出 Jellyfin/Emby/Kodi 所需的 NFO 与封面图片。项目以 MIT 许可证发布,强调 100% 本地运行,无需注册账户,不上传文件信息,网络请求仅用于抓取公开元数据。
安装与平台
支持 Windows 10/11 和 macOS(Apple 芯片 M1 及以上)。提供一行命令安装脚本(macOS 用 curl,Windows 用 PowerShell),也可从 Releases 下载 ZIP 或 Windows 的 .bat 安装文件。安装后全程图形界面操作,无需 Docker,也不用输入命令。Linux 没有官方安装程序,但文档说明可自行搭建为局域网服务器,通过浏览器操作。
三个主要页面
1. Scanner(扫描):添加存放视频的文件夹,点击“生成网页”即可入库。若视频旁已有 NFO 和封面图片,将直接读取现有数据,扫描过程只读不写。扫描后会列出缺少 NFO 或封面的项目,可一键从网络补齐,补齐时只填空字段,不覆盖现有数据。
2. Showcase(浏览):以封面墙展示收藏,可叠加筛选条件;女优另有独立墙,提供身高、罩杯、三围、年龄、别名历史等资料卡,并可依罩杯、年龄、身高、片数排序。另有基于规则的相似片推荐(标签、系列、片商、女优),为本地比对,离线即时。
3. Search(搜索):处理新下载的视频,可拖入文件或文件夹,自动识别番号、批量查询数据、下载封面和剧照,确认后再点击“整理”进行重命名、创建文件夹、写入 NFO。另有书签功能和可选的定时整理(每 12 小时自动处理指定文件夹)。
刮削来源
内置 8 个来源:JavBus、Jav321、JavDB、DMM、D2Pass、HEYZO、FC2、AVSOX,可同时查询并比对片库、标记已收藏。另有 JavLibrary 和 FC2-javten 两个备份站,因位于 Cloudflare 人机验证后方,仅支持桌面版手动精确番号查询。高级用户可自行搭建 Metatube 并接入联邦,来源合计可达 30 多个社群维护的 provider。
与播放软件整合
整理时可选输出 Jellyfin/Emby/Kodi 识别的 poster、fanart 文件名和 NFO,视频保持原位。针对 NAS 或云端挂载等不想被动用的收藏,可设为“只读”来源:原文件完全不写入,抓取的数据和封面输出到本地指定文件夹,并可生成 .strm 文件让播放软件直接串流原文件;亦支持跨机器路径替换规则。
其他功能
- 女优与标签别名:可在界面中添加别名,搜索时中日英同义词自动展开,同一人的艺名和退休名合并为一张卡。
- AI 翻译:支持 Ollama(本地免费)、Gemini Flash 和 OpenAI 兼容端点,可将日文片名翻译成界面语言。
- 移动设备浏览:设置中可切换为“服务器”模式,同一 Wi-Fi 下的手机或平板以浏览器即可浏览,默认不对外,可设密码。
- 静态 HTML 导出:可生成独立 HTML 文件离线浏览。
- 四种界面语言即时切换:繁体中文、简体中文、日文、英文。
AI 操作 API
本地提供 REST API 和 capabilities manifest,AI 工具(如 Claude Code、Cursor 等)可用一行 curl 读取端点说明后自行串接多步骤操作,例如批量收藏女优、创建别名、批量加标签或生成含封面的 HTML 页面。端点定义集中于 web/routers/capabilities.py。
技术架构
后端为 FastAPI(Python 3.12),前端使用 Jinja2、DaisyUI、Tailwind CSS、Alpine.js,桌面封装为 PyWebView,数据库为 SQLite(WAL 模式),测试以 Pytest 编写。项目文档说明可从源代码运行开发模式和桌面模式,并提供 Windows 和 macOS 的打包脚本。
隐私与文件安全
项目声明不上传视频或片库列表,也无账户和遥测。搜索、浏览、扫描皆为纯读取;补资料仅在视频旁新增 NFO 和封面;只有用户主动点击“整理”时才会依规则移动或重命名视频,且不删除文件,目标位置已有同名文件会先提醒。
许可与社群
以 MIT 许可证发布,并提供 GitHub Issues 和 Telegram 群组作为反馈和交流渠道。项目另附免责声明,提醒用户尊重网站服务条款、合理控制请求频率,并仅供个人学习研究使用。
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.