>_ DevTrendszh

语言

首页

语言

板块

前端 后端 移动端 DevOps AI / ML 游戏开发 区块链 嵌入式 安全
Go

用 JavBoss 管理本地视频收藏

许多人的家庭服务器或外置硬盘上堆积着大量视频、电影或小众内容,容量往往达到数 GB。当你想快速找到某个视频片段或查询某个演员资料时,像 IPX-633.mp4SSIS-001.mkv 这样的文件名根本提供不了什么信息。Plex 或 Jellyfin 这类功能完善的媒体服务器在处理小众亚洲内容时往往力不从心:它们无法解析像 IPX-633 这样的编号,也无法获取正确的封面图片。

最近我在 GitHub 上发现了一个有趣的开源项目——JavBoss。这是一个基于 Go 和 React 构建的本地 Web 服务器,专门用于为 JAV 内容和任意视频录像建立索引、编目整理和流畅播放。

编目系统的工作原理

作者从实际可用性的角度出发解决了这个问题。该应用作为本地 Web 服务运行:扫描指定目录,从文件名中提取编号,从多个外部数据库获取元数据,并构建清晰的图库。

主要特点是完全独立于源文件。JavBoss 以只读模式运行。它不会重命名源视频文件,也不会在视频文件夹中生成 NFO 文件或图片。SQLite 数据库、封面缓存和故事板都严格存储在 data/ 目录中。

主要功能解析

让我们看看这个项目与传统命令行爬虫的不同之处。

  1. 自动编号和元数据解析。 应用以 IPX-633SSIS-001 格式或字幕后缀提取编号。同时从多个第三方来源获取元数据。卡片包含标题、上映日期、制作商、标签和演员身材数据(身高、年龄、三围)。如果自动检测出错,你可以轻松地手动关联卡片。

  2. mpv 播放器集成。 Web 媒体播放器通常受限于浏览器编解码器。JavBoss 开发者找到了一个简单的解决方案:桌面版本可以直接调用本地 mpv。你将获得一个功能完整的播放器,支持任何视频格式、可自定义的热键和 ModernZ 界面。在 mpv 中观看时,你可以一键截图,它们会立即出现在 Web 界面的视频时间轴上。

  3. 文件迁移跟踪。 索引器在后台监控已添加的目录。文件移动到其他驱动器或文件夹重命名了?数据库会更新路径。用户标签会被保留,因为它们与视频文件的数字指纹绑定。如果断开外置硬盘连接,卡片会保留在数据库中,重新连接后会再次激活。

  4. 导航和筛选。 你可以按标签、制作商、演员或上映日期查找视频。还有便捷的随机选择功能,可以在整个媒体库或特定筛选条件下运行。

界面看起来清晰明了,没有不必要的菜单:

JAV catalog

Actress profile

Search and filters

mpv integration

技术栈和部署

项目架构清晰。后端使用 Go 编写,采用 Gin 框架、GORM 和内置 SQLite 数据库。视频技术参数读取使用 ffprobe,预览和故事板通过 mpvffmpeg 生成。

前端使用 React、Vite、Tailwind CSS 和 Zustand 构建。默认情况下,服务运行在 8655 端口。你可以通过自动化脚本安装,也可以下载二进制文件或使用 Docker Compose:

services:
  javboss:
    image: ghcr.io/solr159/javboss:latest
    container_name: javboss
    ports:
      - "8655:17654"
    volumes:
      - ./data:/app/data
      - /:/host:ro
    restart: unless-stopped

在容器中,视频通过浏览器内置的 HTML5 播放器播放,主机系统的本地路径会自动转发。

优点和特殊注意事项

这个工具对于维护本地收藏、厌倦了文件系统混乱的人来说非常有用。

项目优势:

  • 不干扰原始文件夹结构。
  • 通过简单的 data/ 复制即可在系统间轻松迁移数据库。
  • 使用多个来源进行元数据聚合。
  • 便捷的 Web 界面,支持在不同浏览器标签页中打开页面。

有一些限制需要考虑。首次导入大型收藏时,后台预览生成和封面下载需要时间。如果外部元数据网站不可用,自动抓取会暂停,但本地存储的数据库仍可离线使用。

总结

JavBoss 最终成为一个实用的专业化解决方案。作者没有试图构建另一个臃肿的媒体系统,而是解决了编目小众内容的具体问题。如果你需要在驱动器上保持秩序,而不想做额外的手动工作,这个项目绝对值得一试。

相关项目