一个功能强大的 Telegram 云盘自动化转存工具,支持多平台云盘自动转存、离线下载、秒传和 302 播放
- 123云盘 - 完整支持分享链接转存、离线下载、秒传功能
- 115云盘 - 支持分享链接转存、Cookie 认证
- 天翼云盘 - 支持分享链接转存、账号密码认证
- 🤖 Telegram Bot 交互界面
- 📢 自动监控频道分享链接
- 💬 支持私聊和群组操作
- 🔔 实时转存状态通知
- 📊 转存统计和报告
- 302 播放 - 直接生成视频在线播放链接
- 弹幕支持 - 自动下载视频弹幕文件(支持 Misaka Danmaku API)
- 多线路播放 - 支持最多 5 个播放线路
- 实时转码 - 兼容各种播放器
- 秒传支持 - JSON 格式秒传到 123 和 115
- 磁力下载 - 123云盘离线下载磁力链接
- 批量转存 - 支持批量链接处理
- 智能过滤 - 支持关键词过滤和排除规则
- 定时任务 - 自动清理和整理功能
- AI 内容检测 - 集成 AI 辅助检测敏感内容
- 账号保护 - 避免违规内容导致账号封禁
- 访问控制 - Web 管理界面密码保护
- Session 管理 - 安全的会话管理机制
- 🌐 现代化的 Web 界面
- ⚙️ 在线配置管理
- 📈 实时状态监控
- 🎨 响应式设计,支持移动端
123bot/
├── 123bot.py # 主程序 - 123云盘监控转存
├── 115bot.py # 115云盘监控转存
├── 189bot.py # 天翼云盘监控转存
├── server.py # Web 服务器
├── share.py # 分享链接生成
├── ptto123.py # 本地文件秒传到123
├── ptto115.py # 本地文件秒传到115
├── quark.py # 夸克云盘转存
├── content_check.py # AI 内容检测
├── danmu.py # 弹幕下载
└── docker-compose.yml # Docker 编排配置
- Docker >= 20.10 (推荐)
- Docker Compose >= 2.0
- Python >= 3.8 (本地运行)
git clone --recursive https://github.com/dydydd/123bot.git
cd 123bot💡 注意:使用
--recursive参数克隆子模块
方式一:使用 Docker Hub 镜像(推荐)
创建或编辑 docker-compose.yml 文件:
version: '3'
services:
123bot-service:
image: dydydd/123bot:latest # 或使用指定版本: dydydd/123bot:v1.0.2
container_name: 123bot
network_mode: host
ports:
- '12366:12366'
environment:
# 必填:代理配置(v2填20172带分流规则的端口,clash填7890端口)
- HTTP_PROXY=http://127.0.0.1:7890
# 必填:代理配置(v2填20172带分流规则的端口,clash填7890端口)
- HTTPS_PROXY=http://127.0.0.1:7890
# 必填:时区配置
- TZ=Asia/Shanghai
# 必填:TG机器人Token(从@BotFather获取)
- ENV_TG_BOT_TOKEN=
# 必填:TG管理员用户ID(从@userinfobot获取)
- ENV_TG_ADMIN_USER_ID=
# 必填:WEB配置页面的登录账号
- ENV_WEB_PASSPORT=
# 必填:WEB配置页面的登录密码
- ENV_WEB_PASSWORD=
volumes:
# 持久化存储db目录
- ./db:/app/db
# 本地PT文件下载目录(左侧)映射到容器内监控目录(右侧)
- /vol3/1000/Video/MoviePilot/transfer:/app/upload
# 超过重试次数后将通过CD2上传文件
- /vol1/1000/CloudNAS/CloudDrive/115云盘/Video/待归档影视/MP待归档影视:/app/transfer
restart: always # 容器退出后自动重启方式二:本地构建镜像
如果需要修改代码或本地构建,使用以下配置:
version: '3'
services:
bot123:
build: .
container_name: bot123
restart: always
network_mode: host
ports:
- "12366:12366"
volumes:
- ./db:/app/db
- ./upload:/app/upload
- ./transfer:/app/transfer
environment:
# 时区设置
- TZ=Asia/Shanghai
# Web管理界面登录配置(必填)
- ENV_WEB_PASSPORT=admin
- ENV_WEB_PASSWORD=123456
# 123云盘配置(必填)- 从db/user.env文件读取,或在这里直接配置
- ENV_123_CLIENT_ID=${ENV_123_CLIENT_ID:-}
- ENV_123_CLIENT_SECRET=${ENV_123_CLIENT_SECRET:-}
# Telegram Bot配置(必填)
- ENV_TG_BOT_TOKEN=${ENV_TG_BOT_TOKEN:-}
- ENV_TG_ADMIN_USER_ID=${ENV_TG_ADMIN_USER_ID:-}💡 提示:
- 方式一直接使用预构建镜像,启动速度快,无需本地编译
- 方式二适合需要修改代码或调试的场景
- 代理配置可根据实际情况修改端口(v2ray 用 20172,clash 用 7890)
- 卷映射路径请根据实际情况修改
# 启动服务
docker-compose up -d
# 查看日志(根据容器名选择)
docker-compose logs -f 123bot # 方式一
# 或
docker-compose logs -f bot123 # 方式二
# 停止服务
docker-compose down
# 重启服务
docker-compose restart
# 拉取最新镜像并重启(方式一)
docker-compose pull && docker-compose up -d
# 重新构建并启动(方式二)
docker-compose build --no-cache && docker-compose up -d- 🌐 Web 管理界面: http://your-server-ip:12366
- 🎬 302 播放: http://your-server-ip:12366/d/文件路径
- 🤖 Telegram Bot: 向 Bot 发送
/start
直接从 Docker Hub 拉取预构建镜像(不使用 docker-compose):
# 拉取最新镜像
docker pull dydydd/123bot:latest
# 或拉取指定版本
docker pull dydydd/123bot:v1.0.2
# 运行容器(带代理配置)
docker run -d \
--name 123bot \
--network host \
-p 12366:12366 \
-e HTTP_PROXY=http://127.0.0.1:7890 \
-e HTTPS_PROXY=http://127.0.0.1:7890 \
-e TZ=Asia/Shanghai \
-e ENV_TG_BOT_TOKEN=your_bot_token \
-e ENV_TG_ADMIN_USER_ID=your_user_id \
-e ENV_WEB_PASSPORT=admin \
-e ENV_WEB_PASSWORD=your_password \
-v ./db:/app/db \
-v /path/to/upload:/app/upload \
-v /path/to/transfer:/app/transfer \
--restart always \
dydydd/123bot:latest
# 如果不需要代理,可以去掉 HTTP_PROXY 和 HTTPS_PROXY 环境变量💡 提示:
- 代理端口根据实际情况修改(v2ray 用 20172,clash 用 7890)
- 如果不需要代理,可删除
-e HTTP_PROXY和-e HTTPS_PROXY行- 123云盘配置可以在 Web 界面中填写,无需在启动时指定
Docker 常用命令
# 查看容器状态
docker ps
# 查看实时日志
docker logs -f 123bot
# 进入容器调试
docker exec -it 123bot /bin/bash
# 停止/启动/重启
docker stop/start/restart 123bot
# 删除容器
docker rm -f 123bot
# 更新镜像
docker pull dydydd/123bot:latest
docker stop 123bot
docker rm 123bot
# 然后重新运行 docker run 命令
# 查看镜像
docker images | grep 123bot# 安装 Python 依赖
pip install -r requirements.txt
# 安装子模块依赖
pip install ./p123client
pip install ./p115client# 复制配置模板
cp templete.env db/user.env
# 编辑配置文件
nano db/user.env# 启动主程序
python 123bot.py
# 或启动 Web 服务器
python server.py| 命令 | 说明 | 示例 |
|---|---|---|
/start |
启动机器人,查看使用说明 | /start |
/share |
创建分享链接 | /share 然后选择文件 |
/info |
查看账号信息 | /info |
/add |
添加转存任务 | 直接发送分享链接 |
/remove |
删除文件 | /remove 然后选择文件 |
访问 http://your-server-ip:12366 进入管理界面:
- 使用配置的用户名和密码登录
- 可以在线修改配置参数
- 保存后自动重启应用新配置
http://your-server-ip:12366/d/文件路径
支持最多 5 个播放线路,适配不同播放器:
http://your-server-ip:12366/xiaohao1/文件路径 # 线路1
http://your-server-ip:12366/xiaohao2/文件路径 # 线路2
http://your-server-ip:12366/xiaohao3/文件路径 # 线路3
http://your-server-ip:12366/xiaohao4/文件路径 # 线路4
http://your-server-ip:12366/xiaohao5/文件路径 # 线路5
| 配置项 | 说明 | 获取方式 |
|---|---|---|
ENV_TG_BOT_TOKEN |
Telegram Bot Token | @BotFather |
ENV_TG_ADMIN_USER_ID |
管理员 User ID | @userinfobot |
ENV_123_CLIENT_ID |
123云盘 Client ID | 123云盘开放平台 |
ENV_123_CLIENT_SECRET |
123云盘 Client Secret | 123云盘开放平台 |
ENV_WEB_PASSPORT |
Web 管理界面用户名 | 自定义 |
ENV_WEB_PASSWORD |
Web 管理界面密码 | 自定义(建议强密码) |
点击展开查看更多配置项
ENV_115_COOKIES- 115云盘 Cookie
ENV_189_CLIENT_ID- 天翼云盘 Client IDENV_189_CLIENT_SECRET- 天翼云盘 Client Secret
ENV_TG_CHANNEL- 监控的频道链接(多个用 | 分隔)ENV_FILTER- 关键词过滤(保留)ENV_EXCLUDE_FILTER- 关键词排除(过滤)ENV_CHECK_INTERVAL- 检查间隔(分钟)
ENV_123_LINK_UPLOAD_PID- 链接转存目标目录 IDENV_123_MAGNET_UPLOAD_PID- 磁力下载目标目录 IDENV_123_JSON_UPLOAD_PID- JSON 秒传目标目录 IDENV_123_UPLOAD_PID- 默认上传目录 ID
ENV_AI_API_URL- AI API 地址ENV_AI_API_KEY- AI API 密钥
DANMAKU_API_URL- 弹幕 API 地址DANMAKU_API_KEY- 弹幕 API 密钥
详细配置说明请参考 templete.env 文件。
| 接口 | 方法 | 说明 |
|---|---|---|
/api/login |
POST | 用户登录 |
/api/logout |
POST/GET | 退出登录 |
/api/env |
GET | 获取配置 |
/api/env |
POST | 保存配置 |
| 接口 | 说明 |
|---|---|
/d/<path> |
302 重定向到下载链接 |
/xiaohao1/<path> |
播放线路 1 |
/xiaohao2/<path> |
播放线路 2 |
/xiaohao3/<path> |
播放线路 3 |
/xiaohao4/<path> |
播放线路 4 |
/xiaohao5/<path> |
播放线路 5 |
如何获取 Telegram Bot Token?
- 在 Telegram 中搜索 @BotFather
- 发送
/newbot创建新机器人 - 按提示设置机器人名称和用户名
- 获取 Bot Token(格式:
1234567890:ABCdefGHIjklMNOpqrsTUVwxyz) - 发送
/setcommands设置机器人命令菜单
如何获取 Telegram User ID?
- 在 Telegram 中搜索 @userinfobot
- 向机器人发送任意消息
- 获取您的 User ID(纯数字)
如何获取 123云盘凭证?
- 访问 123云盘开放平台
- 使用 123云盘账号登录
- 创建应用并获取 Client ID 和 Client Secret
- 注意保管好凭证,不要泄露
为什么无法转存 115/天翼云盘?
确保已正确配置对应云盘的凭证:
- 115云盘: 需要配置
ENV_115_COOKIES - 天翼云盘: 需要配置
ENV_189_CLIENT_ID和ENV_189_CLIENT_SECRET
如果未配置,相关功能将不可用。
如何修改配置?
方式一:Web 界面
- 访问 http://your-server-ip:12366
- 登录后在线修改配置
- 点击保存,容器自动重启
方式二:手动修改
# 编辑配置文件(根据容器名选择)
docker exec -it 123bot /bin/bash # 方式一
# 或
docker exec -it bot123 /bin/bash # 方式二
nano /app/db/user.env
# 重启容器使配置生效
docker restart 123bot # 或 bot123如何查看日志?
# 查看实时日志(根据容器名选择)
docker logs -f 123bot # 方式一
# 或
docker logs -f bot123 # 方式二
# 查看最近 100 行日志
docker logs --tail 100 123bot
# 查看日志文件
docker exec -it 123bot cat /app/db/log/start-log.log容器无法启动怎么办?
- 检查配置是否正确
- 查看容器日志:
docker logs 123bot或docker logs bot123 - 确保端口 12366 未被占用
- 检查 Docker 和 Docker Compose 版本
- 尝试重新拉取镜像:
docker-compose pull或重新构建:docker-compose build --no-cache
123bot/
├── 123bot.py # 主程序
├── bot115.py # 115云盘模块
├── bot189.py # 天翼云盘模块
├── server.py # Web 服务器
├── share.py # 分享功能
├── content_check.py # 内容检测
├── danmu.py # 弹幕下载
├── templates/ # HTML 模板
│ ├── index.html # 配置页面
│ └── login.html # 登录页面
├── static/ # 静态资源
│ ├── styles.css # 样式表
│ └── script.js # 脚本
├── p123client/ # 123云盘客户端(子模块)
├── p115client/ # 115云盘客户端(子模块)
├── docker-compose.yml # Docker 编排
├── Dockerfile # Docker 镜像构建
├── requirements.txt # Python 依赖
└── templete.env # 配置模板
# 1. 克隆项目
git clone --recursive https://github.com/dydydd/123bot.git
cd 123bot
# 2. 创建虚拟环境
python -m venv venv
source venv/bin/activate # Linux/Mac
# venv\Scripts\activate # Windows
# 3. 安装依赖
pip install -r requirements.txt
pip install -e ./p123client
pip install -e ./p115client
# 4. 配置环境
cp templete.env db/user.env
# 编辑 db/user.env
# 5. 运行开发服务器
python server.py # Web 服务器
python 123bot.py # 主程序我们欢迎任何形式的贡献!
- Fork 本仓库
- 创建新分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 提交 Pull Request
项目使用 GitHub Actions 自动构建和发布 Docker 镜像:
- 更新
tgto123.py中的版本号 - 更新
README.md中的版本信息和更新日志 - 在 GitHub 创建新的 Release(例如:v1.0.3)
- GitHub Actions 会自动构建并推送以下镜像:
dydydd/123bot:v1.0.3(版本号标签)dydydd/123bot:latest(最新版本标签)
- 遵循 PEP 8 Python 编码规范
- 添加适当的注释和文档
- 编写测试用例
- 更新 README 文档
💡 使用指定版本:在 docker-compose.yml 或 docker run 命令中将
latest替换为具体版本号,如v1.0.2查看所有版本:GitHub Releases | Docker Hub Tags
新增功能
- ✨ 添加秒传文件兼容性支持
- 🔧 优化文件传输稳定性
改进
- 📦 提升秒传识别准确度
- 🐛 修复部分文件格式兼容性问题
新增功能
- 🎨 全新 Web 管理界面上线
- ⚙️ 支持在线配置管理
改进
- 💅 现代化 UI 设计,支持移动端适配
- 🔐 增强登录安全性
- 📝 优化配置项展示
初始版本
- 🎉 恢复机器人正常运行
- ✅ 支持 123 云盘自动转存
- 📡 Telegram Bot 集成
- 🔄 频道监控功能
- 🎬 302 直链播放
- 🚀 Docker 部署支持
本项目基于 MIT License 开源。
MIT License
Copyright (c) 2025 dydydd
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
重要声明:
-
仅供学习交流使用
- 本项目仅供学习和研究使用
- 请勿用于任何商业用途
- 使用者需自行承担使用本工具的所有风险
-
遵守法律法规
- 请遵守当地法律法规
- 请遵守云盘服务条款
- 请勿传播违法违规内容
- 请勿侵犯他人知识产权
-
风险提示
- 使用本工具可能违反云盘服务条款
- 可能导致账号被封禁或限制
- 开发者不对任何损失负责
- 使用前请充分了解风险
-
隐私保护
- 妥善保管配置文件和凭证
- 定期更改密码
- 不要在公共场合泄露敏感信息
使用本工具即表示您已阅读、理解并同意以上所有声明。
- GitHub: https://github.com/dydydd/123bot
- Issues: https://github.com/dydydd/123bot/issues
- Docker Hub: https://hub.docker.com/r/dydydd/123bot
Made with ❤️ by dydydd