fireflies-transcript

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Fireflies Transcript

Fireflies 转录文本

Fetch any meeting transcript from Fireflies.ai as raw text via GraphQL. Read-only.
通过GraphQL从Fireflies.ai获取任意会议的原始转录文本。仅支持读取操作。

Auth (state-check first)

认证(先检查状态)

The API key lives in a local env file (mode 600, never commit or print it):
bash
source /path/to/fireflies-env-file   # exports FIREFLIES_API_KEY
[ -n "$FIREFLIES_API_KEY" ] || echo "MISSING KEY - stop and tell the user"
Every call is a POST to
https://api.fireflies.ai/graphql
with
Authorization: Bearer $FIREFLIES_API_KEY
and a JSON body
{"query": "..."}
.
API密钥存储在本地环境文件中(权限模式600,切勿提交或打印):
bash
source /path/to/fireflies-env-file   # 导出 FIREFLIES_API_KEY
[ -n "$FIREFLIES_API_KEY" ] || echo "MISSING KEY - stop and tell the user"
每次调用均为向
https://api.fireflies.ai/graphql
发送POST请求,请求头包含
Authorization: Bearer $FIREFLIES_API_KEY
,请求体为JSON格式
{"query": "..."}
。

Step 1 - find the meeting id

步骤1 - 查找会议ID

bash
curl -sS -X POST https://api.fireflies.ai/graphql \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $FIREFLIES_API_KEY" \
  -d '{"query":"{ transcripts(limit: 25) { id title date duration } }"}' \
  | jq -r '.data.transcripts[] | "\(.id) | \(.title) | \(.date)"'
  • date
    is epoch milliseconds. Convert on macOS:
    date -r $((1784127600000/1000))
    .
  • The
    transcripts(title:)
    filter is EXACT-match — it returns
    []
    for partial names. List recent meetings and grep locally instead.
  • Ad-hoc meetings have no proper title (e.g.
    Untitled - Wed, 15 Jul 2026 17:00:55 CEST
    ). Identify those by date/time, then confirm via content or speakers, not the title.
  • Paginate older meetings with
    skip:
    (e.g.
    transcripts(limit: 50, skip: 25)
    ).
bash
curl -sS -X POST https://api.fireflies.ai/graphql \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $FIREFLIES_API_KEY" \
  -d '{"query":"{ transcripts(limit: 25) { id title date duration } }"}' \
  | jq -r '.data.transcripts[] | "\(.id) | \(.title) | \(.date)"'
  • date
    为毫秒级时间戳。在macOS上转换:
    date -r $((1784127600000/1000))
    。
  • transcripts(title:)
    过滤器为精确匹配——部分匹配名称会返回
    []
    。建议列出近期会议后在本地使用grep筛选。
  • 临时会议无正式标题(例如
    Untitled - Wed, 15 Jul 2026 17:00:55 CEST
    )。需通过日期/时间识别,再通过内容或参会者确认,不要仅依赖标题。
  • 使用
    skip:
    参数翻页查看更早的会议(例如
    transcripts(limit: 50, skip: 25)
    )。

Step 2 - pull the raw transcript

步骤2 - 提取原始转录文本

bash
QUERY='{ transcript(id: "MEETING_ID") { title sentences { speaker_name text } } }'
curl -sS -X POST https://api.fireflies.ai/graphql \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $FIREFLIES_API_KEY" \
  -d "$(jq -nc --arg query "$QUERY" '{query: $query}')" \
  > /tmp/ff.json
bash
QUERY='{ transcript(id: "MEETING_ID") { title sentences { speaker_name text } } }'
curl -sS -X POST https://api.fireflies.ai/graphql \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $FIREFLIES_API_KEY" \
  -d "$(jq -nc --arg query "$QUERY" '{query: $query}')" \
  > /tmp/ff.json

speaker-labeled raw text (usual deliverable)

带发言者标签的原始文本(常规交付格式)

jq -r '.data.transcript.sentences[] | "(.speaker_name): (.text)"' /tmp/ff.json
jq -r '.data.transcript.sentences[] | "(.speaker_name): (.text)"' /tmp/ff.json

bare text only

仅提取纯文本

jq -r '.data.transcript.sentences[].text' /tmp/ff.json

Transcripts run to hundreds of sentences — save to a file, never dump to stdout/chat.

Optional extras on the same `transcript(id:)` query: `summary { overview short_summary keywords }`,
`participants`, `duration`, `meeting_link`.
jq -r '.data.transcript.sentences[].text' /tmp/ff.json

转录文本包含数百条语句——请保存到文件中,切勿直接输出到标准输出/聊天窗口。

在`transcript(id:)`查询中可添加可选扩展字段:`summary { overview short_summary keywords }`、`participants`、`duration`、`meeting_link`。

Failure modes

失败场景

  • sentences: null
    — recording still processing or no audio captured; nothing to pull.
  • errors[]
    in the response instead of
    data
    — usually a bad field name; fix the query.
  • 401/invalid key — key was rotated; ask the user for a new one (Fireflies dashboard: Settings -> Developer settings), update the local env file.
  • sentences: null
    ——录音仍在处理中或未捕获到音频;无法提取内容。
  • 响应中返回
    errors[]
    而非
    data
    ——通常是字段名称错误;请修正查询语句。
  • 401/无效密钥——密钥已更新;请向用户索要新密钥(Fireflies控制台:设置 -> 开发者设置),并更新本地环境文件。

Verify before reporting done

完成前验证

A pull is successful only if the sentence count is > 0 and the speakers/topic match the meeting the user asked about — check the first few lines, don't trust the title alone.
只有当语句数量大于0,且发言者/主题与用户要求的会议匹配时,提取操作才算成功——请检查前几行内容,不要仅信任标题。