TypeType:用自托管打造隐私友好型跨平台视频聚合生态
-
-
2026 年 7 月 12 日 下午 12:14 #34118
TypeType 是一个自托管(self-hostable)视频生态系统,让你在自己的服务器上聚合观看 YouTube、Bilibili 和 NicoNico 三大视频平台的内容。它不是 SaaS 服务,不是某个前端换皮,也不是 Invidious、Piped、FreeTube 或 NewPipe 的分支——它是一个从零构建的完整视频栈,包含 Web 客户端、API 后端、下载服务、Token 服务和媒体代理。
一、设计理念
TypeType 的核心设计原则是隐私优先 + 自托管。所有用户数据——观看历史、订阅、播放列表、收藏、观看进度、设置——都存储在你自己的实例上,不依赖任何第三方服务。视频流提取在服务端完成,Web 客户端只负责 UI 呈现,不参与任何提取逻辑。这意味着:
- 你的观看行为不会被平台算法捕获
- 没有广告追踪
- 数据完全由你掌控
- 前端与提取逻辑解耦,更新只需更新后端
二、支持的平台
平台 支持内容 YouTube 搜索、趋势、频道、评论、播放列表、订阅、DASH 流、下载 Bilibili 搜索、趋势、频道、评论、弹幕、播放列表 NicoNico 搜索、趋势、频道、评论、弹幕、播放列表 三、功能全景
3.1 视频播放
- 多平台视频播放,支持 DASH 流媒体(分离音视频流)
- 媒体代理:当浏览器直接播放不可靠或需要特定请求头时,通过代理中转
- 下载功能:通过独立下载服务将视频保存到 Garage S3 存储
3.2 库管理
- 播放列表(Playlists)
- 观看历史(History)
- 订阅管理(Subscriptions)
- 收藏(Favorites)
- 稍后观看(Watch Later)
- 观看进度同步
3.3 搜索与发现
- 多服务同时搜索(YouTube + Bilibili + NicoNico)
- 各平台趋势/热门
- 频道页面浏览
- 评论查看
3.4 数据导入
- YouTube Takeout 数据导入
- PipePipe 备份数据导入
3.5 下载
- 通过独立下载服务将视频保存到本地存储
- 支持多种格式选择
四、架构设计
TypeType 采用微服务架构,各组件职责清晰:
┌─────────────┐ ┌──────────────┐ ┌─────────────────┐ │ Web Client │────▶│ API Backend │────▶│ PipePipeExtract │ │ (React/TS) │ │ (Kotlin) │ │ (视频流提取) │ └─────────────┘ └──────┬───────┘ └─────────────────┘ │ ┌────────────┼────────────┐ ▼ ▼ ▼ ┌──────────┐ ┌──────────┐ ┌──────────┐ │PostgreSQL│ │Dragonfly │ │ Media │ │(用户数据) │ │(缓存) │ │ Proxy │ └──────────┘ └──────────┘ └──────────┘ │ ┌────────────┼────────────┐ ▼ ▼ ▼ ┌──────────┐ ┌──────────┐ ┌──────────┐ │Downloader│ │ Token │ │ Garage S3│ │(下载服务) │ │(Token服务)│ │(存储) │ └──────────┘ └──────────┘ └──────────┘五、部署方式
5.1 一键安装(推荐)
curl -fsSL https://raw.githubusercontent.com/Priveetee/TypeType/main/scripts/install-stack.sh | bash安装脚本会自动创建
~/typetype-stack目录,生成必要的密钥,选择可用端口,启动所有服务,并初始化 Garage S3 存储。5.2 手动 Docker Compose 部署
git clone https://github.com/Priveetee/TypeType.git cd TypeType cp .env.example .env ./scripts/bootstrap-env.sh docker compose pull ./scripts/bootstrap-garage.sh docker compose up -d5.3 本地开发
bun install cp apps/web/.env.example apps/web/.env # 设置 VITE_API_URL=http://localhost:8080 bun run dev六、默认本地端点
服务 地址 Web 应用 http://localhost:8082API 后端 http://localhost:8080Token 服务 http://localhost:8081Garage S3 http://localhost:3900七、API 快速验证
部署完成后,可通过以下命令验证服务是否正常运行:
# 健康检查 curl -fsS http://localhost:8080/health # YouTube 搜索 curl -fsS "http://localhost:8080/search?q=lofi&service=0" # Bilibili 趋势 curl -fsS "http://localhost:8080/trending?service=5" # NicoNico 视频流提取 curl -fsS "http://localhost:8080/streams?url=https%3A%2F%2Fwww.nicovideo.jp%2Fwatch%2Fsm9"八、与同类项目的对比
特性 TypeType Piped Invidious FreeTube NewPipe 自托管 ✅ ✅ ✅ ❌(桌面端) ❌(移动端) 多平台 YouTube + BiliBili + NicoNico YouTube YouTube YouTube YouTube + 部分 服务端提取 ✅ Kotlin ✅ ✅ ❌ 客户端 ❌ 客户端 下载功能 ✅ 独立下载服务 ❌ ❌ ✅ ✅ 弹幕支持 ✅ NicoNico ❌ ❌ ❌ ❌ 数据导入 YouTube Takeout + PipePipe ❌ ❌ ❌ ✅ 技术栈 React + Kotlin Vue + Java Crystal Electron/Vue Kotlin/Java 九、项目状态与注意事项
TypeType 目前仍处于早期阶段,但核心功能已可正常使用。需要注意:
- 视频平台(YouTube、Bilibili、NicoNico)的接口频繁变化,提取逻辑、签名 URL、请求头、范围请求和缓存 TTL 可能随时失效。
- 项目采用清晰的 HTTP 边界:Web 客户端只与 API 通信,视频流提取完全在 TypeType-Server 后端完成。
- 许可证:主仓库为 MIT,TypeType-Server 因使用 PipePipeExtractor 而采用 GPLv3。
十、小结
TypeType 是一个架构清晰、功能完整的自托管视频平台。它的核心价值在于:隐私保护(数据自管)、多平台聚合(一个界面覆盖 YouTube/Bilibili/NicoNico)、架构优雅(前后端分离、服务端提取、Docker Compose 一键部署)。对于注重隐私、希望摆脱平台算法控制、又不想牺牲观看体验的用户来说,TypeType 是一个值得投入的选择。
-
- 抱歉,回覆主題必需先登入。