@allresize

Как скачивать большие файлы в aiogram, используя telegram local api?

python version == 3.11.2
aiogram==3.1.1
OS: windows 10

Я собрал telegram-bot-api из исходников, чтобы иметь возможность скачивать файлы > 20mb. При загрузке файла все равно получаю ошибку:
aiogram.exceptions.TelegramBadRequest: Telegram server says - Bad Request: file is too big


Вот мой код запуска telegram api (функция запускается в отдельном потоке):
def start_server_task():
    serv_path = f'{Path.cwd()}\\telegram-bot-api\\bin\\telegram-bot-api.exe'
    os.system(f'{serv_path} --api-id={conf.api_id} --api-hash={conf.hash} --http-port=8080')


Код инициализации Bot объекта:
session = AiohttpSession(
    api=TelegramAPIServer.from_base('http://localhost:8080')
)
bot = Bot(token=conf.tg_api_key, session=session)


код запуска бота:
async def start_bot():
    bot_globals.dp = Dispatcher(storage=MemoryStorage())
    bot_globals.dp.include_router(router)

    await bot_globals.bot.delete_webhook(drop_pending_updates=True)
    await bot_globals.dp.start_polling(bot_globals.bot)


код загрузки файла:
file = await bot.get_file(data['video_id'])
shutil.move(f"-тут папка, в которой local api хранит файлы-/{file.file_path}", f'sorted_videos/{data["model"]}/{filesname}.mp4')


Подскажите, может быть я не указал какой то параметр при запуске? уже голову сомал.
  • Вопрос задан
  • 1167 просмотров
Решения вопроса 1
@allresize Автор вопроса
Необходимо было указать параметр '--local' при запуске telegram-bot-api.exe.
В итоге код запуска сервера стал таким:
def start_server_task():
    serv_path = f'{Path.cwd()}\\telegram-bot-api\\bin\\telegram-bot-api.exe'
    os.system(f'{serv_path} --local --api-id={conf.api_id} --api-hash={conf.hash} --http-port=8080')
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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