【问题标题】:Send large video file by file_id with telegram bot使用电报机器人通过 file_id 发送大型视频文件
【发布时间】:2020-03-10 21:07:29
【问题描述】:

我正在为我的机器人使用 python 和 telebotAPI,我注意到命令 bot.send_video(chat_id, open(file_name, 'rb')) 只发送小于 10mb 的视频,有没有办法发送非常大的视频文件?

更新: 在我在电报文档中阅读了一些 cmets 之后:如果文件已经存储在电报服务器上的某个位置,则不需要重新上传它:每个文件对象都有一个 file_id 字段,只需将此 file_id 作为参数传递而不是上传。以这种方式发送的文件没有限制。那么如何将视频发送到电报服务器,然后将 file_id 发送到聊天室?

【问题讨论】:

  • 这里有限制....core.telegram.org/bots/api#sending-files你可以作为文件发送吗?
  • 你能给我举个例子吗? @Offbeatmammal
  • Docs : "使用 multipart/form-data 以通过浏览器上传文件的通常方式发布文件。照片最大 10 MB,其他文件最大 50 MB。"跨度>
  • @0stone0 有没有办法发送大于 50 mb 的视频?因为,例如,在两个电报用户之间的正常聊天中,用户可能会向对方发送视频,甚至是大视频而不会出错
  • @james 我认为没有。您可能应该查看第三方方式。如果我使用sendDocument 发送一个 58MB 的 mp4 文件,Telegram 会给我一个 413 Request Entity Too Large

标签: python video telegram-bot


【解决方案1】:

send_video 函数中有一个属性为“超时”。默认超时为 20 秒。如果您需要更多时间来发送视频,请将其设置为您想要的时间(以秒为单位)。例如:

bot.send_video(chat_id='receiver chat id', video=open(file_name, 'rb')), timeout=10000)

祝你好运!

【讨论】:

  • 我不确定限制。我认为这取决于您是客户端、机器人还是 api 用户。
【解决方案2】:

使用 'file_id' 发送 - 例如,向机器人发送文件,机器人将触发回调,在那里找到 remoteFile,并获取 id - 它看起来像这样

AAMCAgADGQEAAqCnXv7lHCkd-2Br08TSugdUR45LVyIAAnoIABJctPlLDk4X8ug8tDcaMSmVLgADAQAHbQADoKoAAhgE

【讨论】:

    猜你喜欢
    • 2016-05-03
    • 2021-10-25
    • 2022-09-28
    • 2017-06-16
    • 2016-10-22
    • 1970-01-01
    • 2019-02-25
    • 2016-09-08
    • 1970-01-01
    相关资源
    最近更新 更多