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

如何使用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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 22:24:13