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

python-telegram-bot发送带缩略图视频报错:Can't parse inputmedia: media not found

解决python-telegram-bot v20.7发送带缩略图视频的"Can't parse inputmedia: media not found"错误

常见问题排查与修复方案

1. 缩略图不符合Telegram硬性要求

Telegram对视频缩略图有明确限制,不符合会触发解析错误:

  • 必须是JPG/JPEG格式(PNG等格式不支持)
  • 尺寸不能超过320x320像素
  • 文件大小尽量控制在200KB以内

如果你的缩略图不满足要求,用PIL库快速处理:

from PIL import Image
import os

def fix_thumb_format(input_path, output_path="fixed_thumb.jpg"):
    with Image.open(input_path) as img:
        # 按比例缩放到320x320以内
        img.thumbnail((320, 320))
        # 强制保存为JPG
        img.save(output_path, "JPEG")
    return output_path

# 替换原缩略图路径为处理后的路径
fixed_thumb = fix_thumb_format(thumbnail_path)
thumb_input = InputFile(fixed_thumb)

2. 直接传文件路径,不用手动封装InputFile

python-telegram-bot v20+底层会自动处理本地文件路径,不需要手动转成InputFile,简化代码试试:

# 去掉InputFile实例,直接传路径字符串
media_video = InputMediaVideo(
    media=local_video_path,
    thumbnail=thumbnail_path if thumbnail_path else None
)
await bot.send_media_group(chat_id=group_chat_id, media=[media_video])

3. 检查文件权限和存在性

别忽略最基础的问题:确保Python能读到你的文件,添加检查代码快速验证:

import os

# 检查视频文件
if not os.path.isfile(local_video_path) or not os.access(local_video_path, os.R_OK):
    print(f"视频文件有问题:{local_video_path}")

# 检查缩略图文件
if thumbnail_path:
    if not os.path.isfile(thumbnail_path) or not os.access(thumbnail_path, os.R_OK):
        print(f"缩略图文件有问题:{thumbnail_path}")

4. 别重复使用InputFile实例

如果同一个InputFile对象被多次调用,可能会因为文件指针已被读取而失效,每次发送都重新创建实例,或者直接传路径更稳妥。

5. 确认视频格式合法

Telegram只支持MP4等少数视频格式,先确认你的视频文件没损坏、格式兼容,比如用系统自带播放器打开试试。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 23:07:38