mirror of
https://github.com/nianzhibai/91.git
synced 2026-06-15 00:44:30 +08:00
a8ccc19e9e7399c6c33abd44896f7a41952b796a
Handle already-migrated crawler assets by binding local script crawler rows to equivalent files that already exist on the configured target drive. This keeps thumbnail, preview, and fingerprint readiness stable while removing local crawler videos once an equivalent target object is available. Harden PikPak uploads by retrying failed upload sessions, requesting fresh resumable upload metadata between attempts, and using CNAME-style OSS requests for PikPak upload endpoints so the SDK does not generate invalid bucket-prefixed hosts such as vip-lixian-07.upload-a10b.mypikpak.com. Add focused tests for duplicate target binding, retrying failed PikPak OSS uploads with a fresh session, and preserving the expected PikPak upload endpoint URL shape.
91
😄 个人私有视频站 😄
快速开始 · 功能特性 · 预览图 · 数据目录 · 许可证
功能特性
- 多后端支持 — 兼容 115 云盘、PikPak 云盘、123云盘、OneDrive、Google Drive 和本地存储
- 低带宽播放 — 115 云盘、PikPak 云盘、123云盘、OneDrive 都支持302模式,在线播放视频时,不占用服务器带宽,播放体验不受服务器带宽影响;Google Drive 不支持302模式,走服务器中转,观看体验会受服务器带宽影响
- 封面 & 预览片段 — 自动为每个视频生成封面图和预览片段,首页快速选片
- 脚本爬虫 — 不内置任何爬虫,支持在后台导入自定义爬虫脚本(上传
.py文件 / 链接导入 / 服务器路径),按统一协议抓取视频 - 双主题 — 黑黄经典主题 / 粉白清新主题,随时切换
- 短视频模式 — 一键切换抖音风格,沉浸刷片
- 低资源占用 — 2C2G 服务器稳定运行,主要性能消耗就是封面图和预览视频的生成
预览图
电脑端
手机端
快速开始
方式一:一键安装脚本(推荐)
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
部署完成后访问:
| 地址 | 说明 |
|---|---|
http://服务器IP:9191/ |
前台 |
http://服务器IP:9191/admin |
后台管理 |
注意:如果首次访问,显示502,可以运行 91 restart 重启一下服务
安装后自动注册 91 管理命令:
91 # 打开管理菜单
91 status # 查看运行状态
91 logs # 查看日志
91 update # 更新到最新版本
91 restart # 重启服务
91 stop # 停止服务
video-site-91为等效别名,两者可互换使用。
自定义端口:
FRONTEND_PORT=8080 sudo -E bash install.sh
旧版本升级(v0.0.2 之前):
旧版脚本直接执行 91 update 可能失败,先执行以下修复命令:
curl -fsSL https://raw.githubusercontent.com/nianzhibai/91/main/install.sh -o /tmp/install-91.sh
sudo bash /tmp/install-91.sh update
方式二:Docker Compose 部署
1. 准备目录
mkdir -p video-site-91 && cd video-site-91
2. 创建 docker-compose.yml
services:
video-site-91:
image: ghcr.io/nianzhibai/91:stable
container_name: video-site-91
ports:
- "9191:9191"
volumes:
- ./data:/opt/video-site-91/data
restart: unless-stopped
创建yml文件后运行下面指令
docker compose pull
docker compose up -d
如果想固定某个 Release 版本,可以改成明确的 tag,例如:
image: ghcr.io/nianzhibai/91:v0.0.6
或直接拉取仓库内置配置:
curl -fsSL https://raw.githubusercontent.com/nianzhibai/91/main/docker-compose.yml -o docker-compose.yml
3. 启动
docker compose up -d
常用命令:
docker compose logs -f # 查看日志
docker compose pull # 拉取最新正式版 stable 镜像
docker compose up -d # 更新并重启
所有配置、数据库、封面、预览及上传文件均保存在
./data/目录下。
数据存放位置
一键脚本部署
| 路径 | 内容 |
|---|---|
/opt/video-site-91/config.yaml |
配置文件、管理员账号、网盘凭证 |
/opt/video-site-91/data/video-site.db |
SQLite 数据库 |
/opt/video-site-91/data/previews/ |
封面图和预览片段 |
Docker Compose 部署
| 路径 | 内容 |
|---|---|
./data/config.yaml |
配置文件、管理员账号、网盘凭证 |
./data/video-site.db |
SQLite 数据库 |
./data/previews/ |
封面图和预览片段 |
./data/uploads/ |
本地上传的视频文件 |
./data/spider91/ |
91 爬虫抓取的视频文件 |
更多文档
| 文档 | 内容 |
|---|---|
| backend/README.md | 后端实现、接口说明、网盘字段 |
使用须知
本项目面向个人私有部署,请仅接入你有权访问和管理的内容,并遵守对应网盘、站点的服务条款及所在地法律法规。
不对外传播,仅限个人使用。
许可证
本项目基于 MIT License 开源。
致谢
Languages
Go
64.3%
TypeScript
21%
CSS
10.6%
Python
2.1%
Shell
1.8%