本篇内容提取自 zdocker 调研笔记的附属章节(2026-05-22),分析的是极空间两大核心媒体应用的技术来源。
极影视(zvideov2)→ 基于 Emby 开源代码
极影视的底层几乎可以确定来自 Emby。二进制里直接嵌入了 Emby 的完整数据模型和 API 路由:
Emby 内部类型(二进制符号):
*emby.Item, *emby.Show, *emby.Users, *emby.Stream
*emby.System, *emby.Library, *emby.CollectionRepository
*emby.ClassificationRepository, *emby.DisplayPreferences
*emby.AuthService, *emby.AuthenticatedUser, *emby.ImageService
Emby API 路由:
/Users/AuthenticateByName ← 用户认证
/System/Ext/ServerDomains ← 服务器域名
/Sessions/Playing/Stopped ← 播放状态
/emby/list ← 列表查询
/jellyfin/Packages/ ← Jellyfin 兼容路径
源文件引用:
Emby.Server.Implementations.Library.DefaultAuthenticationProvider
init emby controllers: %w
Emby vs Jellyfin 的关系:Emby 早期(3.5.3 之前)是 GPL 开源的,后来闭源商业化。Jellyfin 于 2018 年从最后一个开源的 Emby 版本 fork 出来,一直保持 GPL。极影视二进制里同时出现了 emby 和 jellyfin 引用,说明极空间很可能也是从 Emby 闭源前的最后一个开源版本 fork 的(和 Jellyfin 同源)。
极影视在 Emby 基础上做了大量修改:
| 改动 | 说明 |
|---|---|
| 数据库 | 用 MySQL 替代 SQLite(二进制里有大量 zvideo_* 表操作) |
| 刮削引擎 | 自研文件名正则匹配(中文和英文双套),深度集成 TMDB |
| 分类系统 | 自研 zvideo_classification 表,支持自定义分类/合集 |
| 硬件加速 | ARM64 平台定制(RK3568/RK3588) |
| 接口封装 | 统一走 go-baseset API 网关,不走 Emby 原生 HTTP API |
| 定时任务 | 内置 Cron(@every 45m)扫描和刮削 |
| 共享机制 | 自研分享链接、家庭组共享(非 Emby 原生用户体系) |
极相册(zalbumv2)→ 全自研 + 组件拼装
极相册不是基于某个单一开源相册项目(如 PhotoPrism、Immich、Lychee 等),而是极空间从头自研的,拼装了多个开源组件:
| 组件 | 用途 | 说明 |
|---|---|---|
| PostgreSQL + pgvector | 向量搜索 | CREATE EXTENSION IF NOT EXISTS vector,支持AI相似图片搜索 |
| Manticore Search | 全文检索 | C++ 搜索引擎,替代 Elasticsearch |
| exiftool | 照片元数据提取 | perl -w /zspace/shell/tool/exiftool/exiftool -stay_open True |
| zaitoolkit | AI 模型推理 | 极空间自研 AI 工具包(人脸识别、物体识别、场景分类) |
| sego | 中文分词 | Go 中文分词库,用于自然语言搜索 |
| Go 1.24.1 | 主语言 | 全 Go 编写,单体二进制 |
数据库设计(PostgreSQL):
features表:存储 AI 特征向量(face_r/face_x/face_y/face_w/face_h — 人脸坐标)ai_download表:AI 模型下载管理dirs表:文件目录索引afmaps表:相册-文件映射
另外还有一个 SQLite 数据库(zalbumv2.db, 368KB)作为本地缓存/配置。
两者的共同架构特点
| 极影视 | 极相册 | |
|---|---|---|
| 主语言 | Go | Go |
| 数据库 | MySQL | PostgreSQL + SQLite |
| 搜索引擎 | Manticore Search | Manticore Search |
| 开源基座 | Emby (fork) | 全自研 |
| AI 引擎 | TMDB 刮削 | zaitoolkit(自研) |
| 元数据提取 | 自研正则 + TMDB API | exiftool |
架构推断:极空间产品矩阵 vs 开源生态
极影视 (zvideov2) 极相册 (zalbumv2) 极音乐 (music)
│ │ │
▼ ▼ ▼
Emby fork 全自研 [待调研]
(GPL → 闭源定制) Go + pgvector Go binary
│ + Manticore
▼ + exiftool
Jellyfin 同源 + zaitoolkit
极空间的策略很清晰:
- 有成熟开源的直接 fork 改(如影视用 Emby)
- 没有合适的就自己写(如相册全自研)
- 底层基础设施统一(Go 语言、Manticore 搜索、go-baseset API 网关)