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

基于python-telegram-bot库的机器人如何获取用户上传的视频文件?

实现视频上传功能的解决方案

步骤1:编写视频处理函数

和你处理照片的逻辑一致,只需将处理对象从photo替换为video即可:

async def video_data(update: Update, context: ContextTypes.DEFAULT_TYPE) -> int:
    user = update.message.from_user
    # 获取视频文件(视频为单个文件,无需像照片那样取数组最后一项)
    video_file = await update.message.video.get_file()
    # 下载到本地,建议加入用户ID避免文件覆盖
    await video_file.download_to_drive(f"user_{user.id}_video.mp4")
    await update.message.reply_text("视频已成功上传")

步骤2:更新消息处理器

在你的FILE处理器列表中,新增针对视频的MessageHandler:

FILE: [
    MessageHandler(filters.PHOTO & ~filters.COMMAND, file_data),
    # 新增视频处理逻辑的处理器
    MessageHandler(filters.VIDEO & ~filters.COMMAND, video_data),
    CommandHandler("skip", skip_file),
    CommandHandler("cancel", cancel)
],

补充说明

  • 视频文件直接通过update.message.video获取,不同于照片的多尺寸数组结构
  • 文件名加入用户ID可以避免多个用户上传的视频互相覆盖
  • 如果需要处理动图类视频(如Telegram的animation类型),可以添加filters.ANIMATION对应的处理器,逻辑与上述视频处理一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 02:00:10