You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Telethon/Pyrogram转发专辑消息异常:仅转最后媒体且无Caption

解决Telethon转发媒体专辑不完整的问题

问题描述

使用Telethon的client.iter_messages(channel_id, limit=1)配合message.forward_to(group_id),或Pyrogram对应方法转发指定频道最新消息时,遇到以下问题:

  • 若目标消息为媒体专辑,仅会转发专辑中的最后一个媒体文件
  • 原消息的Caption(标题/说明文字)未被一同转发

已知Telethon有events.Album机制,也了解grouped_id可能是解决关键,但不清楚具体实现方式。

附原Telethon代码:

from telethon import TelegramClient

client = TelegramClient('telethon-client', api_id, api_hash)


async def main():
    async for message in client.iter_messages(test_channel_id, limit=1):
        await message.forward_to(test_group_id)


with client:
    client.loop.run_until_complete(main())

解决方案

媒体专辑内的所有消息共享同一个grouped_id标识,通过该ID可以筛选出完整的专辑内容,再按顺序转发即可保留原结构和Caption。

修正后的Telethon代码

from telethon import TelegramClient

client = TelegramClient('telethon-client', api_id, api_hash)

async def main():
    # 获取频道最新的一条消息
    async for latest_msg in client.iter_messages(test_channel_id, limit=1):
        # 判断是否属于媒体专辑
        if latest_msg.grouped_id:
            # 筛选出同grouped_id的所有消息(完整专辑)
            album_messages = []
            async for msg in client.iter_messages(
                test_channel_id,
                filter=None,  # 不限制消息类型,确保获取全部专辑内容
                search=f"grouped_id:{latest_msg.grouped_id}"
            ):
                album_messages.append(msg)
            
            # 按消息ID排序,保证转发顺序与原专辑一致
            album_messages.sort(key=lambda x: x.id)
            
            # 批量转发整个专辑
            await client.forward_messages(test_group_id, album_messages)
        else:
            # 非专辑消息直接转发
            await latest_msg.forward_to(test_group_id)

with client:
    client.loop.run_until_complete(main())

关键细节说明

  • grouped_id的作用:媒体专辑内的每条消息都会携带相同的grouped_id,这是识别完整专辑的核心标识
  • 筛选专辑内容:使用search=f"grouped_id:{latest_msg.grouped_id}"精准定位同专辑的所有消息,必须设置filter=None避免过滤掉部分媒体类型
  • 排序保证顺序:iter_messages默认按消息ID倒序返回,通过sort(key=lambda x: x.id)将消息恢复为原发送顺序
  • 批量转发优势:使用client.forward_messages批量转发比逐个调用forward_to更高效,且能保留专辑的关联结构

内容的提问来源于stack exchange,提问作者user16082897

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 03:15:36