如何通过Zapier将Base64格式MP3转为文件存储至Google Drive?
解决Zapier中Base64 MP3转文件存Google Drive并分享到Slack的方案
我帮你梳理了两个可行的方案,完美匹配你的需求,避开你之前踩过的那些坑:
方案一:直接生成MP3音频文件存Google Drive
这个方案绕开了修改文件MIME类型的限制,直接生成正确格式的音频文件上传:
- 触发:Slack 频道新消息
- 设置Zap的触发源为Slack的「New Message Posted to Channel」,指定你要监听的频道。
- 调用Google TTS API获取Base64音频
- 用Zapier的「Webhooks by Zapier」动作发送POST请求到Google TTS的API地址:
https://texttospeech.googleapis.com/v1/text:synthesize - 请求体要包含你的API密钥、要转换的文本(从Slack消息里取)、语音配置(比如语言、音色),确保响应返回的
audioContent字段是Base64编码的MP3数据。
- 用Zapier的「Webhooks by Zapier」动作发送POST请求到Google TTS的API地址:
- 用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']。
- 选择Python环境,输入以下代码(不需要额外导入模块,Zapier默认支持
- 上传到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里的人才能打开链接。
- 「File」选Code模块输出的
- 选择Google Drive的「Upload File」动作:
- 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
相关产品推荐
相关产品推荐

