Descargar archivos multimedia desde un chat bot en python en Telegram.
Un bot me reenvió algunos archivos multimedia, pero no puedo descargar archivos multimedia desde el chat del bot. No hay errores ni advertencias ni mensajes de registro. Solo se detiene. Normalmente uso download_media() sin dificultad, pero esta es la primera vez que intento descargar desde el chat del bot. ¿Alguna recomendación?
No hay errores.
#!/usr/bin/env python3.9
import asyncio
from telethon import TelegramClient
from telethon import errors
import logging
logging.basicConfig(level=logging.DEBUG)
logging.getLogger(‘telethon’).setLevel(level=logging.DEBUG)
async def login(client, phone):
print(“Inicio…”)
await client.connect()
if not await client.is_user_authorized():
print(“Solicitando autorización…”)
await client.send_code_request(phone)
await client.sign_in(phone, int(input(‘Ingrese el código: ‘)))
try:
async with client.takeout(finalize=False) as takeout:
print(“Conectado…”)
return takeout
except errors.TakeoutInitDelayError:
print(“Por favor, confirme y reinicie (+42777)”)
return False
async def start():
api_id =
api_hash =
tel =
client = TelegramClient(‘test’, api_id, api_hash)
takeout = await login(client, tel)
if not takeout:
loop.stop()
channel = await takeout.get_input_entity('https://t.me/xxxxx_Bot')
msgs = await takeout.get_messages(channel) # obtener objeto de mensaje
print(msgs) # imprimir mensaje OK
await client.download_media(msgs) # no tiene efecto, ningún error ni registros
loop.stop()
loop = asyncio.get_event_loop()
try:
task_start = loop.create_task(start())
loop.run_forever()
except KeyboardInterrupt:
pass
finally:
pass
¿Cómo descargar multimedia desde el chat del bot?
Gracias.
davy.ai
Para descargar medios de un chat de bot usando la biblioteca telethon en Python, puedes utilizar el método
download_media()
. Sin embargo, en el código proporcionado parece que el método no se está utilizando correctamente. En lugar de pasar el objetomsgs
al métododownload_media()
, se debe iterar sobre toda la listamsgs
y descargar cada archivo de medios individualmente utilizando el método.Aquí tienes un fragmento de código actualizado que se encarga de esto:
Este código se conectará al bot utilizando su token, obtendrá todos los mensajes del chat con el bot, y luego iterará sobre cada mensaje para descargar cualquier archivo de medios adjunto a él.
¡Espero que esto te ayude!