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

python-telegram-bot中InlineQueryResultAudio音频缩略图不显示问题

解决InlineQueryResultAudio音频缩略图不显示的问题

核心原因

Telegram的InlineQueryResultAudio组件不会自动解析谷歌云盘上MP3文件的内嵌封面元数据,且默认不会主动抓取音频文件里的封面图,必须通过显式参数指定,同时要确保资源能被Telegram服务器正常访问。

解决办法

1. 显式添加thumb_url参数

这是最直接有效的方案,把封面图单独上传到公开可访问的存储(比如将谷歌云盘文件设为公开共享),然后在构造InlineQueryResultAudio时传入缩略图地址:

修改后的代码示例:

from uuid import uuid4
from telegram import InlineQueryResultAudio

def build_inline_query_result_article_songs(result, url_song, artistt, thumb_url):
    iid = str(uuid4())
    r = InlineQueryResultAudio(
        id=iid,
        title=result.title(),
        audio_url=url_song,
        performer=artistt.title(),
        thumb_url=thumb_url,  # 新增缩略图地址参数
        thumb_width=300,      # 可选:指定缩略图宽度,适配Telegram显示
        thumb_height=300      # 可选:指定缩略图高度
    )
    return r

2. 确认谷歌云盘链接的公开权限

不管是音频文件还是缩略图,必须确保它们的谷歌云盘链接是公开可访问的。如果链接需要登录验证或仅限特定用户访问,Telegram服务器无法抓取到资源,缩略图自然显示不出来。

3. 验证MP3内嵌封面的有效性(可选)

如果想尝试靠内嵌封面解决,先确认MP3的元数据是否正确:
用ffmpeg检查音频文件的封面信息:

ffmpeg -i your_song.mp3 -hide_banner

如果输出里能看到类似Stream #0:1: Video: mjpeg, yuvj420p(pc, bt470bg/unknown/unknown), 300x300 [SAR 1:1 DAR 1:1], 90k tbr, 90k tbn的图像流,说明封面嵌入成功。但即使如此,Telegram的InlineQuery组件也大概率不会自动读取这个封面,所以还是优先用thumb_url方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 11:05:40