如何使用Pyrogram下载Telegram 2GB+视频的缩略图?
使用Pyrogram下载Telegram视频缩略图(支持2GB+文件)
先确保环境正确
先把Pyrogram更新到最新版,避免旧版本的兼容性问题:
pip install --upgrade pyrogram tgcrypto
方案1:从消息里直接下载缩略图
如果已经拿到包含视频的消息对象,直接从视频的缩略图列表里选合适的下载即可——大视频的缩略图和普通视频处理逻辑完全一致,因为缩略图是独立的小文件,不受原视频大小限制:
from pyrogram import Client # 初始化客户端,替换成你的API信息 app = Client("my_session", api_id=12345, api_hash="your_api_hash") async def grab_thumbnail(message): if message.video: # 取列表最后一个缩略图,通常是分辨率最高的 best_thumb = message.video.thumbs[-1] # 下载到本地,自定义文件名 await app.download_media(best_thumb, file_name="video_thumb.jpg") with app: # 示例:获取目标聊天的最新一条消息并下载缩略图 latest_msg = app.get_messages("your_chat_id", limit=1)[0] app.run(grab_thumbnail(latest_msg))
方案2:用文件ID单独下载缩略图
如果只有视频的file_id,先获取文件对象再处理:
from pyrogram import Client app = Client("my_session", api_id=12345, api_hash="your_api_hash") async def download_thumb_by_file_id(file_id): video_file = await app.get_file(file_id) if video_file.thumbs: best_thumb = video_file.thumbs[-1] await app.download_media(best_thumb, file_name="large_video_thumb.jpg") with app: app.run(download_thumb_by_file_id("target_video_file_id"))
特殊情况处理
如果发现video.thumbs是空的(部分视频可能未生成缩略图),可以直接通过视频对象下载缩略图,Pyrogram会自动处理:
# 直接从视频对象下载最高分辨率缩略图 await app.download_media(message.video, file_name="fallback_thumb.jpg", thumb=-1)
这里thumb=-1指定下载最大尺寸的缩略图,也可以填具体宽度(比如thumb=640)来获取对应尺寸的缩略图。
内容的提问来源于stack exchange,提问作者sahil
相关产品推荐
相关产品推荐

