🔥 BRAVE 質押池已上線 — 在錢包搜尋 BRAVE 即可委託

TypeType:用自托管打造隐私友好型跨平台视频聚合生态

    • #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 -d

      5.3 本地开发

      bun install
      cp apps/web/.env.example apps/web/.env
      # 设置 VITE_API_URL=http://localhost:8080
      bun run dev

      六、默认本地端点

      服务地址
      Web 应用http://localhost:8082
      API 后端http://localhost:8080
      Token 服务http://localhost:8081
      Garage S3http://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"

      八、与同类项目的对比

      特性TypeTypePipedInvidiousFreeTubeNewPipe
      自托管❌(桌面端)❌(移动端)
      多平台YouTube + BiliBili + NicoNicoYouTubeYouTubeYouTubeYouTube + 部分
      服务端提取✅ Kotlin❌ 客户端❌ 客户端
      下载功能✅ 独立下载服务
      弹幕支持✅ NicoNico
      数据导入YouTube Takeout + PipePipe
      技术栈React + KotlinVue + JavaCrystalElectron/VueKotlin/Java

      九、项目状态与注意事项

      TypeType 目前仍处于早期阶段,但核心功能已可正常使用。需要注意:

      • 视频平台(YouTube、Bilibili、NicoNico)的接口频繁变化,提取逻辑、签名 URL、请求头、范围请求和缓存 TTL 可能随时失效。
      • 项目采用清晰的 HTTP 边界:Web 客户端只与 API 通信,视频流提取完全在 TypeType-Server 后端完成。
      • 许可证:主仓库为 MIT,TypeType-Server 因使用 PipePipeExtractor 而采用 GPLv3。

      十、小结

      TypeType 是一个架构清晰、功能完整的自托管视频平台。它的核心价值在于:隐私保护(数据自管)、多平台聚合(一个界面覆盖 YouTube/Bilibili/NicoNico)、架构优雅(前后端分离、服务端提取、Docker Compose 一键部署)。对于注重隐私、希望摆脱平台算法控制、又不想牺牲观看体验的用户来说,TypeType 是一个值得投入的选择。

      项目地址:https://github.com/Priveetee/TypeType 

      官方文档:https://priveetee.github.io/Docs-TypeType/

  • 抱歉,回覆主題必需先登入。