Ошибка при отправке видео с использованием python-telegram-бота, включая миниатюру через python

#python #telegram #python-telegram-bot

#python #telegram #python-telegram-bot

Вопрос:

Это код, который я написал с использованием python-telegram-bot

 from flask import Flask, request
import telegram
bot_token ="12345678:ABCDEEFGHIjksdfsusk"
bot_user_name ="@thenameofmybot"
global TOKEN
TOKEN = bot_token
bot = telegram.Bot(token=TOKEN)
bot.send_video(chat_id='-1234567890',video=open('k 2.mkv','rb'),thumb=open('picture.jpg'), supports_streaming=False, timeout=1000000)
 

Как это файл размером 52 Мб, однако у меня тайм-аут = 1000000, но я получаю сообщение об ошибке

 telegram.error.NetworkError: urllib3 HTTPError ('Connection aborted.', BrokenPipeError(32, 'Broken pipe'))
 

Через пару секунд есть идеи, что это может быть?

РЕДАКТИРОВАТЬ: тот же код работал, когда я отправлял видео размером 40 МБ, но миниатюр не поступало. затем я изменил код на document, чтобы я мог отправлять более 50 Мб, это код

 from flask import Flask, request
import telegram
bot_token ="12345678:ABCDEEFGHIjksdfsusk"
bot_user_name ="@thenameofmybot"
global TOKEN
TOKEN = bot_token
bot = telegram.Bot(token=TOKEN)
files = {'file': ('k 2.mkv', open('k 2.mkv', 'rb'), 'multipart/form-data', {'Expires': '0'})}
bot.send_document(chat_id='-123456789',document=files, thumb=('picture.jpeg'),timeout=1000000)
 

Но он выдает ошибку
Ошибка типа: объект типа BufferedReader не является сериализуемым в формате JSON

Что я здесь делаю не так, и почему не отображается миниатюра? размер файла миниатюр меньше 200 КБ, а согласно документации размер составляет всего 320 пикселей

Комментарии:

1. Согласно этой строке документации , ограничение составляет 50 МБ. Можете ли вы попробовать с меньшим видеофайлом.

2. Это сработало, когда я отправил его в виде файла размером 40 МБ, но миниатюр не было, поэтому, чтобы получить файл большего размера, который нам нужно отправить, это как файл multipart / form, есть идеи, как отправить его как составную форму? также как перенести его с помощью миниатюры