Pocket Transcripts
通过反向工程的 API 从 Pocket AI 设备读取记录和摘要。
快速参考
函数描述
get_recordings(days, limit) 列出最近的记录
get_recording_full(id) 获取记录 + 摘要 + 操作项
get_transcript(id) 获取原始记录文本
get_summarization(id) 获取 markdown 摘要
search_recordings(query) 通过文本搜索
设置(一次性)
- 启动 Chrome 并使用用户配置文件 ~/.factory/skills/browser/start.js --profile # 或 ~/.claude/skills/browser/start.js --profile
- 登录 Pocket
导航到并登录:~/.factory/skills/browser/nav.js https://app.heypocket.com
python3 scripts/reader.py 提取
Token 保存到 ~/.pocket_token.json 并在 1 小时后过期。
用法
列出记录
from pathlib import Path
import sys
sys.path.insert(0, str(Path.home() / '.claude/skills/pocket-transcripts/scripts'))
from reader import get_recordings, get_recording_full
recordings = get_recordings(days=30, limit=20)
for r in recordings:
print(f"{r.recorded_at:%Y-%m-%d} | {r.duration_str} | {r.title}")
获取完整记录和摘要
full = get_recording_full(recording_id)
print(f"记录 ({len(full['transcript'])} 个字符):")
print(full['transcript'][:500])
print(f"\n摘要 (markdown):")
print(full['summary'])
print(f"\n操作项: {len(full['action_items'])}")
for item in full['action_items']:
print(f" - {item}")
搜索记录
results = search_recordings("meeting", days=90)
for r in results:
print(f"{r.title} - {r.description[:100]}")
API 详情
基础 URL:https://production.heypocketai.com/api/v1
身份验证:从浏览器 IndexedDB 中获取的 Firebase Bearer 令牌
关键端点:
GET /recordings - 列出带有分页和过滤
GET /recordings/{id}?include=all - 包含记录、摘要和操作项的完整数据
数据结构:
记录:data.transcription.transcription.text
摘要:data.summarizations[id].v2.summary.markdown
操作项:data.summarizations[id].v2.actionItems.items
令牌刷新
Firebase 令牌在 1 小时后过期。过期后:
确保 Chrome 正在运行 --profile
确认已登录 app.heypocket.com
重新运行:python3 scripts/reader.py 提取
数据模型
PocketRecording
id、title、description、duration(秒)、duration_str(人类可读)
recorded_at、created_at、has_transcription、has_summarization、num_speakers、latitude、longitude(如果启用位置)
tags(字符串列表)
PocketSummarization
summary(markdown 格式)
action_items(列表)
transcript(原始文本)