
最近折腾了一个非常有意思的自动化项目 —— 利用开源项目 StreamCap 做直播监控录像,再结合Rclone上传到网盘、通过 Bark 推送状态到手机,真正实现无人值守、自动完成、及时提醒的一套完整链路。
大致步骤如下:
- 🚀 StreamCap 的部署与运行
- ☁️ 使用 rclone 实现自动上传
- 📲 Bark 推送上传状态到手机
- 🛡️ 使用 Caddy 做身份验证保护访问权限
🧩 一、StreamCap 简介及部署※

StreamCap 是一个基于 FFmpeg 的开源工具,能够持续监控直播流并进行录像保存,支持自动分段、断流重连等,且内置了推送、转码及脚本运行,具备跨平台能力(Windows、Mac、Linux)。
由于要实现24h直播监控,这里使用 Linux 服务器(Ubuntu),部署容器版本,当然如果是Windows平台直接去项目release页面下载对应文件解压即用。
克隆项目,拉取镜像运行:
git clone https://github.com/xxx/StreamCap.git
cd StreamCap
docker compose up -d
开放端口、域名解析(可选),这里防火墙用的ufw:
ufw allow 6006
访问http://ip:6006
进入主界面,域名还需配置反代:

设置好需要录制平台的账号/Cookie,目标直播间及录制参数后,开启监控即可,此时项目会轮询监控直播状态并录制。录制文件保存在设置目录中默认为 项目路径/downloads
。
☁️ 二、自动上传到云端脚本(rclone)※
录像保存后,可以利用 rclone
把录像上传到网盘/存储服务,支持各大网盘,比如 Google Drive、OneDrive、阿里云盘等。
rclone 安装与配置:※
curl https://rclone.org/install.sh | sudo bash
rclone config
rclone连接各大网盘教程比较多,可自行查找。比如要将本地目录/home/test
下文件上传到远程remote
下的dest
目录,可以使用以下rclone
命令:
rclone copy /home/test remote:/dest
编写Shell脚本:※
StreamCap项目里有录制结束后执行命令设置,于是可以编写一个 Shell 脚本,当录制结束后调用脚本完成文件上传+状态推送到手机:
#!/bin/bash
# ====== 配置项 ======
LOCAL_DIR="/home/StreamCap/downloads/" # 本地目录路径(修改为你的路径)
REMOTE_NAME="remote:Download" # rclone远程路径(修改为你的远程名称和目标路径)
BARK_TOKEN="qBdxZGdh===========" # 替换为你的Bark Token
BARK_URL="https://api.day.app/$BARK_TOKEN" # Bark API地址
# ====== 上传操作 ======
echo "开始上传文件到 $REMOTE_NAME ..."
rclone copy "$LOCAL_DIR" "$REMOTE_NAME" --progress
STATUS=$?
# ====== 通知推送 ======
if [ $STATUS -eq 0 ]; then
echo "上传成功,发送成功通知..."
curl -s -G "$BARK_URL" \
--data-urlencode "title=直播录像上传成功" \
--data-urlencode "body=目录 $LOCAL_DIR 已成功上传至 $REMOTE_NAME" \
--data-urlencode "group=直播监控" \
--data-urlencode "icon=自定义图标地址"
else
echo "上传失败,发送失败通知..."
ERROR_MSG=$(rclone copy "$LOCAL_DIR" "$REMOTE_NAME" 2>&1)
curl -s -G "$BARK_URL" \
--data-urlencode "title=文件上传失败" \
--data-urlencode "body=上传失败:$ERROR_MSG" \
--data-urlencode "group=直播监控" \
--data-urlencode "自定义图标地址"
fi
🛡️ 三、使用 Caddy 添加身份验证保护页面访问※
如果部署到服务器端,由于该项目并未做用户登录/身份验证功能,可以利用反代保护页面访问。
Caddy的身份验证可参考使用Caddy在反代层面实现身份验证