Пишу телеграм бота который должен скачать видео, которое ему отправил пользователь, склеить и вернуть новое. Так как у телеграмма очень урезаны лимиты для ботов, видео отправляю через клиентскую сторону в бота, записываю айди и отправляю уже конечному пользователю готовое видео. Проблема возникает, когда видео больше, чем существуют ограничения, примерно через 3-4 минуты склеивания бот выкидывает ошибку.
Task exception was never retrieved
future: <Task finished name='Task-28' coro=<Dispatcher._process_polling_updates() done, defined at C:\Users\vizzy\Desktop\program\testapi\venv\lib\site-packages\aiogram\dispatcher\dispatcher.py:407> exception=TimeoutError()>
Traceback (most recent call last):
File "C:\Users\vizzy\Desktop\program\testapi\venv\lib\site-packages\aiogram\dispatcher\dispatcher.py", line 415, in _process_polling_updates
for responses in itertools.chain.from_iterable(await self.process_updates(updates, fast)):
File "C:\Users\vizzy\Desktop\program\testapi\venv\lib\site-packages\aiogram\dispatcher\dispatcher.py", line 235, in process_updates
return await asyncio.gather(*tasks)
File "C:\Users\vizzy\Desktop\program\testapi\venv\lib\site-packages\aiogram\dispatcher\handler.py", line 116, in notify
response = await handler_obj.handler(*args, **partial_data)
File "C:\Users\vizzy\Desktop\program\testapi\venv\lib\site-packages\aiogram\dispatcher\dispatcher.py", line 256, in process_update
return await self.message_handlers.notify(update.message)
File "C:\Users\vizzy\Desktop\program\testapi\venv\lib\site-packages\aiogram\dispatcher\handler.py", line 116, in notify
response = await handler_obj.handler(*args, **partial_data)
File "C:\Users\vizzy\Desktop\program\testapi\bot\handlers\client.py", line 76, in input_links
asyncio.create_task(await get_videos(name, links))
File "C:\Users\vizzy\Desktop\program\testapi\bot\functions\func.py", line 7, in get_videos
await session.post(f"http://127.0.0.1:8080/video?names={names}", json={"link": videos})
File "C:\Users\vizzy\Desktop\program\testapi\venv\lib\site-packages\aiohttp\client.py", line 559, in _request
File "C:\Users\vizzy\Desktop\program\testapi\venv\lib\site-packages\aiohttp\client_reqrep.py", line 913, in start
self._continue = None
File "C:\Users\vizzy\Desktop\program\testapi\venv\lib\site-packages\aiohttp\helpers.py", line 721, in __exit__
raise asyncio.TimeoutError from None
Если видео меньше, все окей. Пробовал меня значение timeout в executor.start_polling от 0 до 20000, но ничего не изменилось
Код бота:
@dp.message_handler(state=StorageLink.links)
async def input_links(message: types.Message, state: FSMContext):
async with state.proxy() as data:
data['links'] = message.text.split('\n')
links = data["links"]
if len(links) < 2:
await bot.send_message(message.chat.id, "Склеить можно не менее двух видео.", reply_markup=start_kb())
await state.finish()
else:
await bot.send_message(message.chat.id, "Склейка началась, как будет готово - я скину видео.", reply_markup=start_kb())
name = randint(1, 5000)
path = f'{os.path.dirname(os.path.abspath(__name__))}/app_video/{name}.mp4'.replace("\\", "/")
await state.finish()
await sql_add_video(name, path, message.chat.id)
await get_videos(name, links) # функция скачивания + склеивания видео, которая с небольшими размерами видео работает адекватно
await main() # функция отправки с клиентской стороны боту