[PyTelegramBotAPI]Ошибка при отправке медиагруппы с видео и миниатюрой: BufferedReader не поддерживает сериализацию JSONPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 [PyTelegramBotAPI]Ошибка при отправке медиагруппы с видео и миниатюрой: BufferedReader не поддерживает сериализацию JSON

Сообщение Anonymous »

Я столкнулся с проблемой при использовании PyTelegramBotApi, которая сводит меня с ума. Я хочу отправить сообщение медиа-группы от моего бота на канал. Медиа-группа содержит одно видео со специальной миниатюрой.
Вот соответствующая часть моего кода:

Код: Выделить всё

watermarked_video_path = f"/data/watermarked_{video.video.file_id}.mp4"
thumbnail_path = "/data/thumbnail.jpg"
test = telebot.types.InputMediaVideo(open(watermarked_video_path, 'rb'), thumbnail=open(thumbnail_path, 'rb'))
self.bot.send_media_group(chat_id, [test])
Последняя строка кода (

Код: Выделить всё

send_media_group
) завершается с ошибкой:

Код: Выделить всё

Traceback (most recent call last):
File "/app/TGbot.py", line 141, in process_and_forward_media
self.bot.send_media_group(chat_id, [test])
File "/usr/local/lib/python3.9/site-packages/telebot/__init__.py", line 3355, in send_media_group
result = apihelper.send_media_group(
File "/usr/local/lib/python3.9/site-packages/telebot/apihelper.py", line 579, in send_media_group
media_json, files = convert_input_media_array(media)
File "/usr/local/lib/python3.9/site-packages/telebot/apihelper.py", line 2225, in convert_input_media_array
return json.dumps(media), files
File "/usr/local/lib/python3.9/json/__init__.py", line 231, in dumps
return _default_encoder.encode(obj)
File "/usr/local/lib/python3.9/json/encoder.py", line 199, in encode
chunks = self.iterencode(o, _one_shot=True)
File "/usr/local/lib/python3.9/json/encoder.py", line 257, in iterencode
return _iterencode(o, 0)
File "/usr/local/lib/python3.9/json/encoder.py", line 179, in default
raise TypeError(f'Object of type {o.__class__.__name__} '
TypeError: Object of type BufferedReader is not JSON serializable
2024-12-05 14:48:22,254 - ERROR - Error processing and forwarding the media: Object of type BufferedReader is not JSON serializable
Без миниатюр код работает как положено. Миниатюра представляет собой действительный файл JPEG. Согласно официальной документации Telegram:
  • Самая длинная сторона не превышает 320 пикселей.
  • Размер файла не превышает 200 КБ. .
Код выполняется внутри официального образа Docker Python 3.9.
Я что-то упускаю в том, как я работаю создание объекта InputMediaVideo или send_media_group позвонить? Будем очень признательны за любые рекомендации!

Подробнее здесь: https://stackoverflow.com/questions/792 ... bufferedre
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»