云端个人视频托管,无服务器负载压力 —— 探秘 Project 91
有时候你想为家庭存档或个人录像搭建自己的媒体服务器,但马上就会遇到资源限制的问题。低预算的虚拟机通常只有可怜的 20GB 磁盘空间和有限的带宽。播放几个大体积视频文件就能轻易让网络饱和,而存储 GB 级别的内容则需要不断购买更多空间。
最近我发现了一个名字简洁的项目 91。这是一个使用 Go 构建的私有视频托管解决方案,通过一个简单的技巧解决了磁盘空间和流量问题。它利用你现有的云存储,并通过直接重定向来提供视频服务。
主要功能是什么
像 Plex 或 Jellyfin 这样的常规媒体服务器会将所有大流量视频流通过自己的处理器和网络接口传输。如果你的服务器托管在便宜的 VPS 上,转码和分发很快就会达到瓶颈。
Project 91 的工作方式不同。它处理目录、管理面板和 Web 界面生成器的任务。当你播放视频时,服务器向浏览器发送一个带有云存储 CDN 直接链接的 HTTP 302 响应。因此,VPS 流量仅用于服务网页本身和缩略图,而视频流则直接从云提供商传输到用户。
该项目可连接到 WebDAV、Google Drive、OneDrive,以及流行的亚洲云盘如 PikPak、115 和 123pan。

内部实现:从 TikTok 风格到过期链接
开发者添加了几个在标准自托管播放器中很少见的功能。
短视频
一键即可切换到类似 TikTok 或 Reels 的垂直信息流界面。视频可通过鼠标滚轮或滑动切换。不过作者在 README 中坦诚地说明,这个模式在 iOS 上目前还不是完美运行。
一次性分享
视频可以通过单向观看原则进行分享。生成一个特殊链接,文件只能无授权播放一次。当再次尝试打开页面时,视频访问将被拒绝。

竖屏视频的三屏模式
在宽屏显示器上观看竖屏视频时,播放器可以将画面扩展到三个区域,用模糊复制的画面填充两侧区域。需要注意的是:此模式会通过 VPS 代理视频流,因此无法享受免流量的 302 重定向方案。
| 单屏 | 三屏 |
|---|---|
|
|
|
自定义爬虫
系统内置了对外部脚本的支持,可以自动填充媒体库。SpiderFor91 仓库包含创建自定义解析器的规格说明。

如何部署
底层使用 Go 和 SQLite,保持了项目的轻量特性。提供两种标准的安装路径。
现成的安装脚本
如果你运行的是干净的 Ubuntu 或 Debian 系统,可以使用仓库中的 Bash 脚本:
sudo apt update && sudo apt install -y curl ca-certificates
curl -fsSL https://raw.githubusercontent.com/nianzhibai/91/main/install.sh -o install.sh
sudo bash install.sh
安装完成后,系统将提供 CLI 工具 91 用于管理服务。通过它可以检查状态、查看日志和更新二进制文件:
91 status # Проверить статус
91 logs # Посмотреть логи
91 update # Обновить сервис
通过 Docker Compose 部署
对于偏好容器化的用户,使用标准 Compose 文件启动服务更加便捷:
mkdir video-site-91 && cd video-site-91
curl -fsSL https://raw.githubusercontent.com/nianzhibai/91/main/docker-compose.yml -o docker-compose.yml
docker compose up -d
所有数据都存储在本地多个文件中:
./data/config.yaml包含管理员凭证和云盘令牌。./data/video-site.db存储 SQLite 数据库。./data/previews/用于封面和预览缓存。

值得一试吗
Project 91 对于需要简单 Web 界面访问云存储且不想在强大服务器上过度花费的人来说,是一个有趣的发现。得益于 302 重定向,即使在最便宜的每月几美元的 VPS 上也能轻松运行。
明显的缺点是语言障碍:文档和部分界面最初面向中文互联网用户。尽管如此,基本的 WebDAV 和国际云盘都能正常工作。如果你需要具备一次性链接功能和竖屏模式的私有播放器,这个项目绝对值得一看。
相关项目