nianzhibai bb83277d62 feat: add crawler preview generation toggle
Expose per-crawler teaser settings on crawler cards and persist them through the admin API.\n\nWhen preview generation is disabled, crawler imports still create thumbnails and fingerprints while marking previews disabled and allowing migration without waiting for teaser files.\n\nPreserve the latest teaser setting after crawler runs so stale crawl state cannot overwrite a user toggle.
2026-06-14 17:52:29 +08:00
2026-05-10 23:55:04 +08:00
2026-06-02 15:16:35 +08:00
2026-06-13 16:32:20 +08:00
2026-06-13 16:32:20 +08:00
2026-06-14 15:44:50 +08:00
2026-05-10 23:55:04 +08:00

91

91

😄 个人私有视频站 😄

快速开始 · 功能特性 · 预览图 · 数据目录 · 许可证


功能特性

  • 多后端支持 — 兼容 115 云盘、PikPak 云盘、123网盘、联通网盘、光鸭网盘、OneDrive、Google Drive 和本地存储
  • 低带宽播放 — 115 云盘、PikPak 云盘、123网盘、联通网盘、光鸭网盘、OneDrive 支持302模式,在线播放视频时,不占用服务器带宽,播放体验不受服务器带宽影响;Google Drive 不支持302模式,走服务器中转,观看体验会受服务器带宽影响
  • 封面 & 预览片段 — 自动为每个视频生成封面图和预览片段,首页快速选片
  • 爬虫脚本 — 项目支持导入自定义脚本,但是有一些规范,具体可以参考 SpiderFor91,项目不再内置任何爬虫脚本
  • 短视频模式 — 一键切换抖音风格,沉浸刷片

预览图

电脑端

首页 播放页

主题切换 管理页

手机端

手机端


快速开始

方式一:一键安装脚本(推荐)

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 为等效别名,两者可互换使用。

已部署用户升级:

91 update

升级会保留现有 config.yaml、数据库、封面、预览、上传文件和爬虫数据。脚本会自动安装或检查 ffmpeg / ffprobe 等运行依赖,并在新版本启动失败时回滚到升级前文件。

自定义端口:

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/ 目录下。 从旧版本升级 Docker 部署时,执行 docker compose pull && 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 爬虫抓取的视频文件

使用须知

本项目面向个人私有部署,请仅接入你有权访问和管理的内容,并遵守对应网盘、站点的服务条款及所在地法律法规。

不对外传播,仅限个人使用。


PR提交规范

欢迎大家提交PR,一起来完善这个项目,但是这里要说明一下PR提交的规范

  1. 一个PR的功能改动要单一,不建议一个PR修改了大量功能。单个PR单个功能修改,这样也更容易Merge
  2. 完善项目的PR比新增功能的PR更容易Merge(例如:例如你发现开发者没有实现爬取的视频上传到某个网盘,并且你有这个需求,此时你可以实现一下这个功能然后提交PR,也感谢你为开发者分担工作量)
  3. 新增功能的PR不容易Merge,因为某些功能的需求可能不是所有人都需要的,如果一味的不断增加功能,会让项目变得过于庞大。当然如果你肯定你的新功能和想法很好,并且相信将会对于项目有很大的改善,那么热烈欢迎你的PR

许可证

本项目基于 MIT License 开源。


致谢

S
Description
No description provided
Readme MIT 46 MiB
Languages
Go 64.3%
TypeScript 21%
CSS 10.6%
Python 2.1%
Shell 1.8%