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

如何通过Zapier将Base64格式MP3转为文件存储至Google Drive?

解决Zapier中Base64 MP3转文件存Google Drive并分享到Slack的方案

我帮你梳理了两个可行的方案,完美匹配你的需求,避开你之前踩过的那些坑:

方案一:直接生成MP3音频文件存Google Drive

这个方案绕开了修改文件MIME类型的限制,直接生成正确格式的音频文件上传:

  1. 触发:Slack 频道新消息
    • 设置Zap的触发源为Slack的「New Message Posted to Channel」,指定你要监听的频道。
  2. 调用Google TTS API获取Base64音频
    • 用Zapier的「Webhooks by Zapier」动作发送POST请求到Google TTS的API地址:https://texttospeech.googleapis.com/v1/text:synthesize
    • 请求体要包含你的API密钥、要转换的文本(从Slack消息里取)、语音配置(比如语言、音色),确保响应返回的audioContent字段是Base64编码的MP3数据。
  3. 用Code by Zapier处理Base64并输出文件参数
    • 选择Python环境,输入以下代码(不需要额外导入模块,Zapier默认支持base64):
      import base64
      
      # 从Google TTS响应中提取Base64音频数据,注意字段名要和你的Webhook输出对应
      base64_audio = input_data['response']['audioContent']
      # 解码成二进制音频数据
      audio_binary = base64.b64decode(base64_audio)
      
      # 输出供后续步骤使用的参数
      return {
          "audio_file": audio_binary,
          "file_name": f"tts_{input_data['timestamp']}.mp3",
          "mime_type": "audio/mpeg"
      }
      
    • 提示:如果你的Webhook返回结构不同,要调整input_data里的字段路径,比如直接是input_data['audioContent']。
  4. 上传到Google Drive
    • 选择Google Drive的「Upload File」动作:
      • 「File」选Code模块输出的audio_file
      • 「File Name」选file_name
      • 「MIME Type」选mime_type
      • 指定存储的目标文件夹,记得开启「Share File」选项,设置权限为「Anyone with link can view」,这样Slack里的人才能打开链接。
  5. Slack发送文件链接
    • 用Slack的「Send Channel Message」动作,把Google Drive返回的「Web Content Link」插入到消息里,发送回原频道。

方案二:生成带audio标签的HTML文件

如果更想要一个浏览器可直接播放的HTML页面,只需要修改Code模块的逻辑:

前两步和方案一完全一样,第三步替换成以下代码:

base64_audio = input_data['response']['audioContent']
# 把Base64音频直接嵌入HTML的data URI
html_content = f"""
<!DOCTYPE html>
<html>
<head>
    <title>Text-to-Speech Result</title>
</head>
<body>
    <h2>Your TTS Audio</h2>
    <audio controls style="width: 100%; max-width: 500px;">
        <source src="data:audio/mpeg;base64,{base64_audio}" type="audio/mpeg">
        Your browser doesn't support audio playback.
    </audio>
</body>
</html>
"""

return {
    "html_file": html_content,
    "file_name": f"tts_{input_data['timestamp']}.html",
    "mime_type": "text/html"
}

后续的Google Drive上传和Slack发消息步骤和方案一一致,只是对应选择html_file、file_name和text/html的MIME类型。

避坑提醒

  • Google TTS API要确保已经启用,并且API密钥有该服务的权限,不然会返回权限错误。
  • Zapier Code模块的输入字段一定要对应正确,比如Webhook返回的字段路径,不然会出现KeyError。
  • Google Drive的共享权限必须设置为可公开访问,不然Slack里的人打不开链接。

内容的提问来源于stack exchange,提问作者Joe Olsen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:41:44