Telethon无法获取相册(Album)类型消息的文本内容
解决Telethon获取相册类型消息文本的问题
当消息为相册(Album)类型时,说明文本不会存储在主消息的message或text属性中,而是保存在相册内对应媒体项的caption字段里。以下是调整后的代码:
# python3.8 from telethon import TelegramClient from telethon.tl.types import MessageMediaAlbum session_name = 'XXXX' api_id = 999999 api_hash = 'XXXXXXXXXXX' async def main(): chat = 1473001998 message_id = 23420 msg = await client.get_messages(chat, ids=message_id) # 处理常规消息文本 if msg.message: print("消息文本:", msg.message) # 处理相册类型消息 elif isinstance(msg.media, MessageMediaAlbum): print("相册消息说明文本:") for index, media_item in enumerate(msg.media.items): if media_item.caption: print(f"第{index+1}个媒体项: {media_item.caption}") client = TelegramClient(session_name, api_id, api_hash) client.start() client.loop.run_until_complete(main())
关键说明:
- 先判断消息媒体类型是否为
MessageMediaAlbum,确认是相册消息 - 遍历
msg.media.items,每个media_item的caption属性就是对应媒体的说明文本 - 若不确定消息结构,可取消注释
print(msg.stringify()),查看消息的完整字段结构,快速定位文本存储位置
内容的提问来源于stack exchange,提问作者Nikitosiwe
相关产品推荐
相关产品推荐

