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

修改Telegram音频提取机器人代码实现无重编码原生音频提取

所需修改内容

  • 修改输出文件命名规则:原代码硬编码输出文件后缀为.mp3,需改为直接使用源音频流的原生格式作为后缀,避免格式不匹配问题
  • 统一使用无损提取参数:原代码仅在源音频为mp3格式时才添加-c copy参数实现流复制,其余格式默认触发重新编码。需移除分支判断,所有格式的提取命令都统一加上-c copy参数,全程不触发转码
  • 可选适配:如果upload_audio上传方法存在仅允许mp3格式的校验逻辑,需要同步修改该方法的格式校验规则,放开对应原生音频格式的上传限制

修改后完整代码

from helpers.tools import execute, clean_up
from helpers.upload import upload_audio, upload_subtitle

async def extract_audio(client, message, data):
    await message.edit_text("正在从文件中提取音轨...")

    dwld_loc = data['location']
    # 改用源音频的原生格式作为输出后缀
    out_loc = f"{data['location']}.{data['name']}"

    # 所有格式统一走流复制逻辑,不重新编码
    out, err, rcode, pid = await execute(f"ffmpeg -i '{dwld_loc}' -map 0:{data['map']} -c copy '{out_loc}' -y")
    if rcode != 0:
        await message.edit_text("**发生错误,请查看日志获取详细信息。**")
        print(err)
        await clean_up(dwld_loc, out_loc)
        return

    await clean_up(dwld_loc)
    await upload_audio(client, message, out_loc)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 17:15:00