Como fazer download de todas as mídias e anexos de um canal do Telegram

Entrei num canal de compartilhamento de arquivo, mas não consegui pegá-lo logo no início. Por isso senti a necessidade de fazer o download de todos os arquivos que estavam nesse canal. Achei um código parecido no stackoverflow e resolvi escrever esse post.

Para poder realizar essa operação, crie um ambiente virtual python e depois execute as configurações necessárias para a biblioteca do Telethon. Após isso instale uma biblioteca que mostre o percentual em uma barra "bonitinha":

pip install tqdm

O tqdm irá mostrar o nosso loop de baixar arquivos de uma maneira mais elegante.

Abaixo segue o código para baixar os arquivos do canal:

from telethon import TelegramClient, events, sync
from tqdm import  tqdm
import os

api_id = <sua api_id>
api_hash = '<sua api_hash>'

client = TelegramClient('umasessao', api_id, api_hash)
client.start()

messages = client.get_messages('<canal alvo>', limit=<numero de arquivos>)
for msg in tqdm(messages):
    msg.download_media(file=os.path.join('media', '<caminho>'))

Substitua <sua api_id>, <sua api_hash>, <canal alvo>, <numero de arquivos> e <caminho> pelos valores adequados e o script irá baixar os <numero de arquivos> arquivos do <canal alvo> no caminho <caminho>.

Sobre: Thiago Galbiatti Vespa

Thiago Galbiatti Vespa é mestre em Ciências da Computação e Matemática Computacional pela USP e bacharel em Ciências da Computação pela UNESP. Coordenador de projetos do JavaNoroeste, membro do JCP (Java Community Process), consultor Oracle, arquiteto de software de empresas de médio e grande porte, palestrante de vários eventos e colaborador de projetos open source. Possui as certificações: Oracle Certified Master, Java EE 5 Enterprise Architect – Step 1, 2 and 3; Oracle WebCenter Portal 11g Certified Implementation Specialist; Oracle Service Oriented Architecture Infrastructure Implementation Certified Expert; Oracle Certified Professional, Java EE 5 Web Services Developer; Oracle Certified Expert, NetBeans Integrated Development Environment 6.1 Programmer; Oracle Certified Professional, Java Programmer; Oracle Certified Associate, Java SE 5/SE 6