Telethon下载聊天媒体前如何获取媒体大小以限制下载体积
代码修改实现
你使用的是Telethon库,可直接通过内置属性读取媒体大小无需提前下载,修改后代码如下:
# 定义最大允许下载的媒体大小,单位MB,可自行修改数值 MAX_SIZE_MB = 5 MAX_SIZE_BYTES = MAX_SIZE_MB * 1024 * 1024 getmessage = client.get_messages(dialog, limit=1000) for message in getmessage: try: if not message.media: print("无媒体消息,跳过") continue # 获取媒体文件字节大小 file_size = message.file.size if not file_size or file_size > MAX_SIZE_BYTES: print(f"媒体大小超出限制/无有效大小,跳过,当前大小:{file_size/1024/1024:.2f}MB" if file_size else "无有效媒体大小,跳过") continue print("符合大小要求,开始下载媒体**********") client.download_media(message) except Exception as e: print(f"处理消息出错:{e}")
逻辑说明
MAX_SIZE_MB为你要限制的大小阈值,直接修改数值即可调整限制规则- Telethon封装的
message.file.size可直接返回对应媒体的字节大小,支持照片、视频、文档、音频等所有通用媒体类型 - 额外增加了空值判断,避免部分无有效大小属性的特殊媒体引发代码报错
内容的提问来源于stack exchange,提问作者David Itizk
相关产品推荐
相关产品推荐

