Скачивание вложений из телеграма пачкой

UPD: Починил пример, заменив импорт telethon на telethon.sync.

Однажды мне прислали кучу клёвых фоток в телеге и мне тут же захотелось их все скачать. Но в клиенте для мака я такой возможности не нашёл, а нашёл запрос на гитхабе, в котором эту возможность просят добавить. Ещё после непродолжительного гугления нашёл библиотеку, которая умеет скачивать вложения. Называется она Telethon, написана на пайтоне. Вообще, таких библиотек много — под разные языки, но мне сподручнее на пайтоне было писать в тот момент.

Делается всё элементарно, шаги такие:

  1. Идём на https://my.telegram.org и генерируем api id и api hash
  2. Устанавливаем Telethon командой pip3 install telethon
  3. Запускаем код по примеру ниже (надо заменить значения api_id и api_hash на те, которые сгенерировали на первом шаге, а также username — это имя чатика):
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
from telethon.sync import TelegramClient

api_id=123456
api_hash='secretHashYO'

client = TelegramClient('test_session', api_id, api_hash)
client.start()
# Далее потребуется ввести ваш номер телефона и код подтверждения

for message in client.get_messages('username', limit=25):
    message.download_media()

Код выше скачает все вложения их последних 25 сообщений чата.