loop = asyncio.get_event_loop()
akks = ... #тут твой код
audio = ... #тут твой код
chat = ... #тут твой код
async def start(akk,audio,chat):
pass #тут твой код
async def run_all(akks):
# выполняем все копии start() параллельно в одном потоке и в одном loop
tasks = [start(akk, audio, chat) for akk in akks ]
await asyncio.gather(*tasks)
loop.run_untiL_complete(run_all(akks))
import datetime
#...................................
#либо так
filelName = 'путь/куда/сохранять/'+datetime.datetime.now().strftime('%d-%b-%Y') + '.jpg'
#либо можно так
filelName = 'путь/куда/сохранять/{0:%d-%b-%Y}.jpg'.format(datetime.datetime.now())
with open(filelName, 'wb') as info:
shutil.copyfileobj(answer.raw, info)
И потом, а нафиг она тебе? Она нужна только чтобы держать в ступоре главный поток. У тебя главный поток занят выполнением цикла asyncio из-за run_untile_complete(). Цикл будет крутиться, пока все копии start() не отработают. Просто задержи работу start() насколько тебе нужно, например, через ожидание asyncio.Event.
И еще потом, а причем тут вообще pyrogram если ты используешь telethon? Это ж две разные библиотеки?