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>.
Caramba, nao tem um jeito mais facil de fazer isso n ? ; (
Tem sim. É só alguém pegar o meu código e fazer um plugin para o browser ou aplicação que faça isso com apenas um clique. Enquanto ninguém faz isso, é necessário executar esses procedimentos.
dá hora!
vc tem algum exemplo de como recuperar a mensagens em um grupo do telegram?? o máximo q consegui foi ler os grupos q participo.
Queria recuperar as mensagens de determinados grupos e a partir de palavras-chave, o bot me manda as msg!
tentei executar o seu código, mas não estou criando o argumento '' de forma correta
no caso, é o argumento 'canal alvo' do metodo get_messages
Preciso fazer, mas é possível sim.
como eu faria pra ler as mensagens de um grupo no telagram??? o máximo q consegui foi pegar as informações dos grupos (username, id, ...)
tentei rodar o seu exemplo, mas nao consegui preencher o argumento "canal ativo" no método get_messages
Show. Era tudo que estava procurando. Obrigado, testei e funcionou.