TG-forward-videos

TG-forward-videos
TownMarshal
[up主专用,视频内嵌代码贴在这]
Telegram 视频转发脚本说明文档
1. 功能概述
本脚本用于 从指定源频道批量转发视频到目标频道,支持以下功能:
- 批量转发最新视频,顺序保持与源频道一致(从旧到新)。
- 实时监听新视频,自动追加到目标频道。
- 去重处理:
- 保留旧的视频,重复视频自动跳过。
- 转发方式优化:
- 不显示“转发自”信息。
- 视频说明文字保留,并可裁剪到最大长度。
- 视频筛选条件:
- 最小文件大小 (
MIN_FILE_SIZE) - 视频时长范围 (
MIN_DURATION/MAX_DURATION)
- 最小文件大小 (
- 发送稳定性处理:
- 随机延迟 1~5 秒,降低风控风险。
- 自动处理
FloodWaitError,等待后重试。
- JSON 持久化:
- 已发送视频记录到
video_keys.json,避免重复发送。
- 已发送视频记录到
- 自定义配置:
- 使用
.env文件统一管理配置。
- 使用
2. 环境要求
- Python 3.10+
- 安装依赖包:
1 | pip install telethon python-dotenv |
3. 配置文件 .env
在脚本同级目录下创建 .env 文件,示例:
1 | # Telegram API 配置 |
4. 使用说明
4.1 运行脚本
1 | python main.py |
脚本启动后流程:
- 登录 Telegram(首次运行会提示扫码或输入两步密码)。
- 扫描源频道最新消息(数量由
SCAN_LIMIT决定)。 - 按源频道顺序从旧到新批量发送视频到目标频道。
- 已发送视频记录到
video_keys.json,避免重复发送。 - 启动实时监听,自动转发新视频。
4.2 JSON 持久化
video_keys.json文件用于记录已发送视频的唯一标识(文件名_大小_id)和原消息 ID。- 保证脚本重启后仍然不会重复发送相同视频。
5. 核心功能说明
5.1 批量转发
- 扫描源频道最新
SCAN_LIMIT条消息。 - 仅发送符合条件的视频(文件大小 >=
MIN_FILE_SIZE,视频时长在[MIN_DURATION, MAX_DURATION]之间)。 - 保留文字说明,长度超出
MAX_CAPTION_LENGTH自动裁剪。
5.2 实时监听
- 监听源频道的新消息事件。
- 满足条件的视频立即发送到目标频道。
- 已存在的视频自动跳过。
5.3 去重逻辑
- 视频唯一标识
video_key = 文件名_大小_id。 - 已发送的视频不会被再次发送,保留旧视频。
5.4 避免 Telegram 风控
- 随机延迟 1~5 秒发送。
- 遇到
FloodWaitError自动等待后重试。
6. 注意事项
- 确保目标频道允许机器人/账号发送视频。
- 批量发送时,过大的视频数量可能导致 Telegram 限制,需要适当调整
SCAN_LIMIT。 MAX_CAPTION_LENGTH可根据 Telegram 最大限制调整(Telegram 视频文字说明最大 1024 字符)。video_keys.json不要手动修改,否则可能导致去重逻辑错误。- 建议使用虚拟环境运行脚本,避免依赖冲突。
7. 文件结构建议
1 | /telegram_video_forward/ |
8. 扩展建议
- 可以增加 时间区间筛选,只转发某段时间内的视频。
- 可增加 多源频道 支持,按顺序批量转发到目标频道。
- 增加 日志文件记录,方便统计每日转发量。
1 | import asyncio |
Telegram 视频批量转发脚本使用说明(plus升级版)
1. 脚本功能
本脚本基于 Telethon,可实现以下功能:
多源频道转发
- 支持同时从多个源频道抓取视频。
- 保持源频道视频顺序,批量转发到目标频道。
视频筛选条件
- 文件大小限制(最小
MIN_FILE_SIZE)。 - 视频时长限制(
MIN_DURATION、MAX_DURATION)。 - 时间区间筛选(可选,
START_DATE和END_DATE)。
- 文件大小限制(最小
去重策略
- 保留旧的视频,跳过重复的新视频。
- 通过 JSON 文件
video_keys.json持久化已转发视频。
文字说明处理
- 转发视频时保留原文说明。
- 可设置最大长度
MAX_CAPTION_LENGTH,超长自动裁剪。
转发控制
- 最大转发数量限制
MAX_FORWARD_COUNT(0 表示不限制)。 - 随机延迟 1~5 秒,降低 Telegram 风控风险。
- 自动处理 FloodWait 异常。
- 最大转发数量限制
实时监听
- 支持实时监听新消息。
- 自动检查重复,保留旧视频,跳过重复的新视频。
日志输出
- 控制台打印每条视频转发状态。
- 可扩展记录到日志文件统计每日转发量。
2. 环境要求
- Python 3.10+
- 依赖库:
1
pip install telethon python-dotenv
3. .env 配置示例
1 | # ================= API 配置 ================= |
字段说明:
| 字段 | 用途 |
|---|---|
| API_ID / API_HASH | Telegram API 密钥,必填 |
| PHONE_NUMBER | 登录 Telegram 的手机号 |
| TWO_STEP_PASSWORD | 二步验证密码,如果没有可留空 |
| SOURCE_CHANNELS | 源频道列表,多频道用逗号分隔 |
| TARGET_CHANNEL | 目标频道,只能一个 |
| MIN_FILE_SIZE | 视频最小文件大小(字节) |
| MAX_FORWARD_COUNT | 批量转发最大数量,0=不限制 |
| SCAN_LIMIT | 扫描最新消息条数 |
| MIN_DURATION / MAX_DURATION | 视频时长秒数限制,0=不限制 |
| MAX_CAPTION_LENGTH | 转发文字说明最大长度 |
| START_DATE / END_DATE | 时间区间筛选,格式 YYYY-MM-DD,可选 |
4. 使用方法
- 克隆或下载脚本文件。
- 安装依赖:
1
pip install telethon python-dotenv
- 创建
.env文件,按示例配置。 - 运行脚本:
1
python your_script.py
- 脚本会自动:
- 扫描源频道最新消息并批量转发。
- 保留源频道顺序。
- 保留文字说明,裁剪超长文字。
- 实时监听新视频。
5. 注意事项
- 首次登录:需要 Telegram 手机验证。
- JSON 文件:
video_keys.json用于记录已转发视频,勿删除,否则可能重复转发。 - 时间区间筛选:如果未配置
START_DATE/END_DATE,默认转发所有消息。 - 重复判断:通过视频文件名+大小+ID 来判断重复。
- 转发顺序:批量转发时保留源频道顺序,旧视频先发,新视频后发。
1 | import asyncio |



