Для этого можно использовать pyrogram, а именно message.download()
Если есть нужда в сохранении всех картинок/видео:
from pyrogram import Client
app = Client("app", api_id='api_id', api_hash='api_hash')
async def main():
async with app:
mediamsgs = []
async for message in app.get_chat_history(''): # int chat id or str chat username
if message.photo or message.video or message.animation:
mediamsgs.append(message)
if len(mediamsgs) != 0:
for msg in mediamsgs:
await msg.download()
else:
print("Nothing here...")
app.run(main())
Если нужно конкретное сообщение:
from pyrogram import Client
app = Client("app", api_id='api_id', api_hash='api_hash')
async def main():
async with app:
msg = await app.get_messages(chat_id, message_id) # вместо chat_id юзернейм или id чата. вместо message_id - число в конце, при копировании ссылки на сообщение
await msg.download()
app.run(main())
Волшебные api_id и api_hash можно получить, создав приложение на сайте телеграма(создавать надо для того аккаунта, на котором есть доступ к этой группе)
Вот, кстати,
гайд