NeaEnot
@NeaEnot

Как решить проблемы с отправкой больших видео через Pyrogram?

Добрый день. При попытке отправить большое видео (> 10мб) в телеграм через библиотеку Pyrogram возникают проблемы. До определённого момента загрузка идёт ровно, а потом останавливается и через некоторое время выдаёт следующие сообщения:
[5] Retrying "upload.SaveBigFilePart" due to TimeoutError()
и
[5] Retrying "upload.SaveBigFilePart" due to OSError().

60ccd7fdeca7a526691036.jpeg

После этого загрузка продолжается, но после полной загрузки возникает исключение "OSError: [WinError 10038] Сделана попытка выполнить операцию на объекте, не являющемся сокетом"

from pyrogram import Client, filters
from hachoir.metadata import extractMetadata
from hachoir.parser import createParser
from datetime import datetime

def progress(current, total):
    print(f"{current * 100 / total:.1f}% : {datetime.now().strftime('%d_%H:%M:%S')}")

api_id = 0
api_hash = ''

video = r'D:\Downloads\test video.mp4'

metadata = extractMetadata(createParser(video))
duration = (0, metadata.get('duration').seconds)[metadata.has('duration')]
width = (0, metadata.get('width'))[metadata.has('width')]
height = (0, metadata.get('height'))[metadata.has('height')]

app = Client('test_session', api_id, api_hash)

with app:
    dialogs = app.get_dialogs(0)
    channel = None

    for dialog in dialogs:
        if dialog.chat.title == 'test':
            channel = dialog.chat

    app.send_video(channel.id, video, caption='Pyrogram test', progress=progress, duration=duration, width=width, height=height)
  • Вопрос задан
  • 511 просмотров
Пригласить эксперта
Ответы на вопрос 2
@fnkr
Тоже интересно, не нашел ответ?
Ответ написан
@EnotShow
Хммм... Напиши handler, который отлавиливает, когда ему отправляют видео, а затем он будет отправлять видео по file id
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы