格兰诺拉麦片转录备份
罢免通知(2026年2月): Granola从本地缓存中删除了转录数据(cache-v3.json).缓存仍然包含会议元数据(标题、日期、参与者),但记录现在仅存储在服务器端。这意味着 此脚本无法再提取转录本。它将查找会议,但报告0份成绩单。 选择: - Granola的官方MCP --与Claude Desktop和Claude Code配合使用。支持通过以下方式阅读成绩单get_meeting_transcript。这是支持的前进道路。 - 如果您只需要标题、日期和参与者列表,此脚本中的会议元数据解析仍然有效。 以下脚本和说明仅供参考。
______________________________________________________________________
一个简单的Python脚本,用于自动备份您的 格拉诺拉.ai 在会议记录从2天缓存中过期之前。
为什么存在
格兰诺拉麦片在本地缓存中只保存约2天的转录本。如果你有很多会议,你可能会在审查之前丢失宝贵的成绩单。此脚本会自动将它们保存为markdown文件,这样您就永远不会丢失对话。
特性
- 🕐 日常自动化 -设置一次,每晚11点自动运行
- 📝 Markdown导出 -将成绩单保存为可读、可搜索的标记文件
- 🔒 100%本地 -所有数据都保留在您的计算机上,没有外部API调用
- 🚫 智能重复数据删除 -从不覆盖现有备份
- ⚙️ 易于配置 -简单的环境变量或单行编辑
- 🌍 时区智能 -自动检测您的时区或对其进行自定义
快速开始
先决条件
- macOS与 格拉诺拉.ai 安装
- Python 3.8+(随macOS提供)
- Granola缓存文件位于
~/Library/Application Support/Granola/cache-v3.json
安装
1.下载脚本:
curl -O https://raw.githubusercontent.com/bonus414/granola-transcript-backup/main/backup_transcripts.py
chmod +x backup_transcripts.py或者只是克隆这个仓库:
git clone https://github.com/bonus414/granola-transcript-backup.git
cd granola-transcript-backup2.自定义备份位置(可选):
编辑 backup_transcripts.py 第23行设置要保存备份的位置:
OUTPUT_DIR = os.path.expanduser("~/Documents/granola-transcripts") # Change this或者使用环境变量:
export GRANOLA_BACKUP_DIR="$HOME/Dropbox/Granola"3.测试:
python3 backup_transcripts.py您应该看到如下输出:
=== Granola Transcript Backup ===
Time: 2025-12-09 18:50:13
Output: /Users/you/Documents/granola-transcripts
Loading Granola cache...
Parsing meetings and transcripts...
Found 1132 meetings and 7 transcripts
✓ Saved: 2025-12-09_1430_Team_Standup.md
✓ Saved: 2025-12-09_1600_Product_Review.md
=== Backup Complete ===
Saved: 2 new transcripts4.设置日常自动化(可选):
./install_daily_backup.sh这将创建一个launchd作业,每天晚上11点运行脚本。
5.授予全磁盘访问权限(日常自动化所需):
由于macOS隐私保护,您必须授予对以下内容的全磁盘访问权限 /bin/bash:
- 打开 系统设置 → 隐私和安全 → 全磁盘访问
- 点击 “+”按钮
- 按 Command+Shift+G 并输入:
/bin/bash - 选择 bash 然后单击 打开
- 启用 切换 旁边
bash
没有此权限,自动备份将失败,并出现“不允许操作”错误。
配置
输出目录
选项1:编辑脚本(第23行)
OUTPUT_DIR = os.path.expanduser("~/Documents/my-backups")选项2:环境变量
export GRANOLA_BACKUP_DIR="$HOME/path/to/backups"
python3 backup_transcripts.py时区
默认情况下,脚本会自动检测您的时区。要覆盖,请执行以下操作:
选项1:编辑脚本(第28行)
TIMEZONE = "America/Chicago" # CST/CDT选项2:环境变量
export GRANOLA_TIMEZONE="America/New_York"美国通用时区:
America/New_York(EST/EDT)America/Chicago(CST/CDT)America/Denver(MST/MDT)America/Los_Angeles(PST/PDT)
备份时间表
默认安装在晚上11:00运行。要更改此设置,请编辑plist文件:
# After running install script, edit:
nano ~/Library/LaunchAgents/com.granola.backup.plist更改小时和分钟值,然后重新加载:
launchctl unload ~/Library/LaunchAgents/com.granola.backup.plist
launchctl load ~/Library/LaunchAgents/com.granola.backup.plist输出格式
成绩单保存为markdown文件,格式如下:
YYYY-MM-DD_HHMM_Meeting_Title.md示例文件内容:
# Team Standup
**Date:** 2025-12-09 14:30 PST
**Meeting ID:** abc123-def456
**Participants:** Alice, Bob, Charlie
**Speakers:** microphone, system
---
## Transcript
[Full conversation transcript here...]手动操作
手动运行备份
python3 backup_transcripts.py检查每日备份是否正在运行
launchctl list | grep com.granola.backup查看备份日志
cat backup.log
cat backup.error.log卸载每日备份
launchctl unload ~/Library/LaunchAgents/com.granola.backup.plist
rm ~/Library/LaunchAgents/com.granola.backup.plist故障排除
“不允许操作”错误(最常见)
如果你看到这个 backup.error.log,这意味着macOS由于隐私保护而阻止访问。
解决方案: 授予完全磁盘访问权限 /bin/bash:
- 打开 系统设置 → 隐私和安全 → 全磁盘访问
- 点击 “+”按钮
- 按 Command+Shift+G 并输入:
/bin/bash - 选择 bash 然后单击 打开
- 启用 切换 旁边
bash - 测试:
launchctl start com.granola.backup && cat backup.log
“找不到缓存文件”
确保Granola.ai已安装并处理了一些会议:
ls -la ~/Library/Application\ Support/Granola/cache-v3.json“权限被拒绝”
使脚本可执行:
chmod +x backup_transcripts.py每日备份未运行
检查作业是否已加载:
launchctl list | grep com.granola.backup如果没有,请重新加载:
launchctl load ~/Library/LaunchAgents/com.granola.backup.plist检查错误日志:
cat backup.error.log如果您看到“不允许操作”,请参阅上面的第一个故障排除步骤。
没有新的成绩单出现
- 格兰诺拉麦片缓存中可能没有新的转录本(仅保留约2天)
- 检查Granola是否正在运行和记录会议
- 手动运行脚本以查看它找到了什么
运作原理
- 读取Granola的本地缓存文件(
~/Library/Application Support/Granola/cache-v3.json) - 分析会议和记录数据
- 将成绩单转换为markdown格式
- 保存到指定目录
- 跳过已存在的文件
所有处理都在本地完成。数据不会发送到任何地方。
学分
许可证
MIT许可证-您可以自由使用、修改和分享!
支持
如果你觉得这有用,就给它一个⭐️ 在GitHub上!
