哔哩哔哩去水印APIDocker部署教程
为什么要在自己的服务器上部署哔哩哔哩去水印 API
很多做视频二次创作、自媒体搬运或者素材整理的朋友,常常需要拿到哔哩哔哩(B 站)视频的原始链接,去掉画面角落的水印后再使用。市面上虽然有不少第三方在线工具,但稳定性参差不齐,有的还会限速、限次数,甚至夹带广告。借助开源项目自己用 Docker 部署一套轻量级的去水印 API,既能保证数据私密,又可以随时调用,是目前比较稳妥的方案。
本文会用尽量通俗的语言,从环境准备到容器启动,再到接口调用,一步步带你完成部署。即使你之前没有接触过 Docker,也能跟着走完整个流程。
一、部署前的准备工作
1. 一台可以联网的服务器或电脑
- 系统推荐:Linux(Ubuntu 20.04 / Debian 11 / CentOS 7 以上均可),Windows 或 macOS 也能跑 Docker,只是命令略有差异。
- 硬件建议:1 核 CPU、512MB 以上内存即可,主要瓶颈在网络带宽。
- 需要开放一个对外端口(默认 8080),如果部署在云服务器,记得在安全组里放行。
2. 安装 Docker 环境
以 Ubuntu 为例,依次执行下面几条命令即可:
- 更新软件源:
sudo apt update && sudo apt upgrade -y - 安装必要依赖:
sudo apt install -y curl wget git - 一键安装 Docker:
curl -fsSL https://get.docker.com | sudo bash - 把当前用户加入 docker 组免去每次 sudo:
sudo usermod -aG docker $USER,然后重新登录终端。 - 验证安装:
docker --version,能看到版本号就说明成功了。
国内服务器拉取镜像可能较慢,可以配置阿里云、腾讯云等提供的镜像加速地址,在/etc/docker/daemon.json中加入registry-mirrors字段后重启 Docker 服务即可。
二、选择并拉取开源镜像
目前 GitHub 上有多个 B 站解析相关的开源项目,例如 bilibili-API-collect、BilibiliVideoDownload、bv2av 等。本教程以一个常见的轻量级 Flask 服务为例(项目名以 bilibili-watermark-remover 为演示,实际部署时按你选定的仓库 README 说明操作)。
1. 搜索镜像
先去 Docker Hub 或 GitHub Container Registry 搜索关键词「bilibili watermark」,挑一个 Star 数较多、最近仍有更新的项目。重点看 README 是否说明:支持 BV 号 / AV 号 / 短链解析、是否返回无水印直链、是否提供 Docker 镜像。
2. 拉取镜像
找到目标镜像后,使用 docker pull 命令下载,例如:
docker pull username/bilibili-watermark-remover:latest- 等待下载完成,执行
docker images能看到对应镜像即表示拉取成功。
如果作者没有发布官方镜像,也可以自己 git clone 源码,在项目根目录执行 docker build -t bili-wm . 本地构建。
三、启动容器并配置参数
1. 最简单的启动命令
假设镜像名称为 username/bilibili-watermark-remover,可以使用如下命令一键启动:
docker run -d --name bili-wm -p 8080:8080 username/bilibili-watermark-remover:latest
-d:后台运行。--name bili-wm:给容器起个名字,方便后续管理。-p 8080:8080:把宿主机的 8080 端口映射到容器内部的 8080 端口。
2. 进阶:挂载配置与日志目录
为了长期使用,建议把配置和日志挂载到宿主机,避免容器重建后数据丢失:
docker run -d --name bili-wm \
-p 8080:8080 \
-v /opt/bili-wm/config:/app/config \
-v /opt/bili-wm/logs:/app/logs \
username/bilibili-watermark-remover:latest
3. 常用环境变量
PORT:服务监听端口,默认 8080。LOG_LEVEL:日志等级,可选DEBUG/INFO/WARNING。CACHE_TTL:解析结果缓存时间(秒),减少重复请求。ALLOW_ORIGIN:跨域白名单,若要给自己网站调用,填前端域名。
设置示例:-e PORT=9000 -e LOG_LEVEL=INFO -e CACHE_TTL=300
四、验证 API 是否正常工作
1. 查看容器状态
docker ps 看到 bili-wm 状态为 Up,再用 docker logs --tail 50 bili-wm 查看启动日志,没有报错就基本 OK。
2. 用 curl 测试接口
大多数此类项目会暴露 /api/parse 之类的接口,常见参数为 url 或 bvid。例如:
curl "http://127.0.0.1:8080/api/parse?url=https://www.bilibili.com/video/BVxxxxxxxxxx"
返回的 JSON 中一般会包含 title、cover、video_url(无水印直链)等字段。把 video_url 复制到浏览器或下载工具里,就能得到清晰无水印的视频源文件。
3. 浏览器可视化页面(可选)
部分项目自带简易前端,访问 http://服务器IP:8080 即可看到输入框,粘贴 B 站链接直接解析,对新手更友好。
五、常见问题与排查思路
1. 端口被占用
启动报错提示 bind: address already in use,说明 8080 已被别的程序占用。可以用 lsof -i:8080 查找进程,或者把映射端口改成别的,例如 -p 9000:8080。
2. 解析失败或返回空数据
- 检查 B 站链接是否完整、是否需要登录才能观看的番剧或会员视频。
- 确认服务器能否访问
api.bilibili.com,可以ping或curl测试。 - 部分项目需要配置
SESSDATACookie 才能解析高清或大会员画质,按 README 说明填入环境变量即可。
3. 接口调用频繁被风控
B 站对高频请求有频率限制。建议:
- 开启上文提到的
CACHE_TTL缓存。 - 在调用方加上 1~2 秒的间隔。
- 如需大量解析,配置自己的
SESSDATA并合理使用。
六、生产环境的小建议
- 用
docker-compose管理:写一个docker-compose.yml,把端口、卷、环境变量都集中配置,后续升级只需docker compose pull && docker compose up -d。 - 配合 Nginx 反向代理:套一层域名 + HTTPS,比直接暴露 IP 更安全也更专业。
- 设置容器自动重启:启动命令加上
--restart unless-stopped,服务器重启后服务会自动拉起。 - 定期备份
/opt/bili-wm/config目录,防止配置丢失。
温馨提示
本文仅作为技术学习与个人素材整理参考,请尊重原作者版权与平台规则。下载的视频请勿用于商业盈利、二次发布或侵犯他人合法权益的行为,遵守《中华人民共和国著作权法》以及哔哩哔哩平台的用户协议。合理使用开源工具,才能让技术更好地服务于创作。

常见问题(FAQ)
如何获取哔哩哔哩去水印APIDocker部署教程的无水印内容?
复制分享链接到玲珑去水印工具,在线解析即可获得无水印原画质文件。