极影视与极相册的开源溯源:Emby fork 与全自研

2026/05/22

本篇内容提取自 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
zaitoolkitAI 模型推理极空间自研 AI 工具包(人脸识别、物体识别、场景分类)
sego中文分词Go 中文分词库,用于自然语言搜索
Go 1.24.1主语言全 Go 编写,单体二进制

数据库设计(PostgreSQL):

另外还有一个 SQLite 数据库(zalbumv2.db, 368KB)作为本地缓存/配置。

两者的共同架构特点

极影视极相册
主语言GoGo
数据库MySQLPostgreSQL + SQLite
搜索引擎Manticore SearchManticore Search
开源基座Emby (fork)全自研
AI 引擎TMDB 刮削zaitoolkit(自研)
元数据提取自研正则 + TMDB APIexiftool

架构推断:极空间产品矩阵 vs 开源生态

极影视 (zvideov2)     极相册 (zalbumv2)     极音乐 (music)
     │                       │                    │
     ▼                       ▼                    ▼
  Emby fork              全自研                [待调研]
  (GPL → 闭源定制)      Go + pgvector         Go binary
     │                  + Manticore
     ▼                  + exiftool
  Jellyfin 同源         + zaitoolkit

极空间的策略很清晰: