在 Telegram 中,由于官方 API 的限制,上传大视频(超过 50MB)往往是个头疼的问题。大佬的Telegram-Bili-Feed-Helper 项目通过部署本地 Bot API 服务器,完美解决了大视频解析和发送的问题,同时支持 B 站动态、直播和音频的全方位解析。本文将记录如何利用 Docker Compose 快速部署这一工具。
一、 核心组件与原理
本项目由四个核心容器组成,共同协作完成任务:
- Main Bot: 机器人的“大脑”,负责解析 B 站链接。
- Redis: 负责处理解析结果和任务锁的快速缓存。
- PostgreSQL: 存储媒体文件的 File ID,避免重复下载。
- Telegram-Bot-API: 本地运行的 Telegram API 服务,用于绕过文件大小上传限制。
二、 部署前的准备工作
1. Telegram 凭证:
- Bot Token: 找 @BotFather 申请。
- API ID/Hash: 在 my.telegram.org 申请。
2. 服务器环境:已安装 Docker 和 Docker Compose。
三、 配置文件编写
在服务器上创建一个目录(如 bili-bot),并准备以下两个核心文件。
1. docker-compose.yml
该文件定义了服务之间的连接关系。注意主程序依赖于数据库和 API 中转站。
version: '3.8'
services:
redis:
image: redis:latest
env_file: [stack.env]
volumes: [redis-data:/data]
restart: always
networks: [internal_network]
postgres:
image: postgres:18
env_file: [stack.env]
volumes: [postgresql-data:/var/lib/postgresql]
restart: always
networks: [internal_network]
telegram-bot-api:
image: aiogram/telegram-bot-api:latest
env_file: [stack.env]
volumes: [telegram-bot-api-data:/var/lib/telegram-bot-api]
restart: always
networks: [internal_network]
telegram-bili-feed-helper:
image: ghcr.io/simonsmh/telegram-bili-feed-helper:master
depends_on: [redis, postgres, telegram-bot-api]
env_file: [stack.env]
volumes: [telegram-bot-api-data:/var/lib/telegram-bot-api]
restart: always
networks: [internal_network]
volumes:
redis-data:
postgresql-data:
telegram-bot-api-data:
networks:
internal_network:
driver: bridge
2. stack.env (环境变量)
这是配置的核心,所有的密钥和连接信息都在这里。
# Telegram 基础配置
TOKEN=你的机器人Token
TELEGRAM_API_ID=你的API_ID
TELEGRAM_API_HASH=你的API_HASH
# 本地模式配置 (用于处理大文件)
LOCAL_MODE=1
TELEGRAM_LOCAL=1
API_BASE_URL=http://telegram-bot-api:8081/bot
API_BASE_FILE_URL=http://telegram-bot-api:8081/file/bot
LOCAL_TEMP_FILE_PATH=/var/lib/telegram-bot-api
# 数据库连接
REDIS_URL=redis://redis:6379
DATABASE_URL=postgres://bilifeedbot:bilifeedbot@postgres:5432/bilifeedbot
POSTGRES_DB=bilifeedbot
POSTGRES_USER=bilifeedbot
POSTGRES_PASSWORD=bilifeedbot
#### BEGIN: Bilibili Cookie
# 注意:要把等号后面的内容换成你实际获取到的那一串字符
SESSDATA=你获取的SESSDATA值
BILI_JCT=你获取的bili_jct值
BUVID3=你获取的buvid3值
BUVID4=你获取的buvid4值
DEDEUSERID=你获取的DedeUserID值
# AC_TIME_VALUE 通常不需要,可以保持注释或留空
#### END: Bilibili Cookie
四、 启动与日常维护
- 启动服务:
在目录下运行docker compose up -d即可一键启动所有容器。 - 查看日志:
如果机器人没有响应,使用命令docker compose logs -f telegram-bili-feed-helper排查报错。 - 功能验证:
私聊机器人发送视频链接,它应能自动下载、合并 DASH 流并发送高清视频。
五、 进阶提示:权限控制
为了防止机器人被滥用,建议在代码中添加针对 message.from_user.id 的白名单判断,或通过 @BotFather 关闭机器人的隐私模式(Privacy Mode),使其仅在特定群组中工作。

Comments NOTHING