You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python Telegram RSS机器人如何将附件上传改为带缩略图的视频上传

Telegram RSS 机器人视频带缩略图上传修改方案

核心问题原因

你当前使用的是send_document方法上传视频,该方法默认会将所有文件以附件形式发送,无法直接在聊天窗口内播放,也不支持专属视频缩略图展示。

修改步骤

  • 替换发送方法为TG官方提供的send_video接口,该接口原生支持流媒体视频播放展示,同时内置缩略图参数配置位
  • 提前准备符合平台要求的缩略图:尺寸最大320*320px、文件大小不超过200KB、格式为JPG/PNG,你可以直接使用RSS源返回的视频封面图,也可以从视频文件首帧自动生成
  • 配置视频播放相关参数,确保视频被识别为流媒体内容

代码示例

1. 缩略图生成工具函数(可选,无现成封面时使用)

import os
from PIL import Image

def generate_thumbnail(video_path, output_thumb="temp_thumb.jpg"):
    # 调用ffmpeg提取视频第1秒的帧作为缩略图
    os.system(f"ffmpeg -i {video_path} -ss 00:00:01 -vframes 1 -y {output_thumb}")
    # 压缩到平台要求的尺寸范围
    with Image.open(output_thumb) as img:
        img.thumbnail((320, 320))
        img.save(output_thumb, optimize=True, quality=80)
    return output_thumb

2. 视频上传逻辑修改

# 原send_document调用替换为以下逻辑
# 假设chat_id为目标聊天ID,video_path为本地视频路径,video_info存储RSS读取的视频元数据
thumb_path = generate_thumbnail(video_path) # 如果你有现成的封面图,直接填封面路径即可

with open(video_path, "rb") as vf, open(thumb_path, "rb") as tf:
    bot.send_video(
        chat_id=chat_id,
        video=vf,
        thumbnail=tf,
        caption=video_info["title"], # 可自定义为RSS读取的标题、简介等内容
        supports_streaming=True, # 关键参数,开启边下边播能力
        width=video_info["width"], # 可选,填视频实际宽度
        height=video_info["height"], # 可选,填视频实际高度
        duration=video_info["duration"] # 可选,填视频实际时长,单位为秒
    )

注意事项

  • 如果使用远程视频/封面链接,无需下载到本地,直接将video、thumbnail参数填入对应的URL即可
  • 若修改后仍显示为附件,优先检查视频编码格式,平台要求视频为H.264编码、音频为AAC编码的MP4格式,不符合要求的可以用ffmpeg提前转码后再上传

内容的提问来源于stack exchange,提问作者Maya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 01:54:02