name: fireflies
description: 通过 GraphQL API 访问 Fireflies.ai 的会议转录、摘要、待办事项和分析数据
metadata: {"clawdbot":{"secrets":["FIREFLIES_API_KEY"]}}
查询 Fireflies.ai 中的会议转录、摘要、待办事项和分析数据。
设置您的 Fireflies API 密钥:
FIREFLIES_API_KEY=your_api_key_here
从以下地址获取您的 API 密钥:https://app.fireflies.ai/integrations (滚动到 Fireflies API 部分)
GraphQL 端点:https://api.fireflies.ai/graphql
授权请求头:Bearer $FIREFLIES_API_KEY
curl -s -X POST https://api.fireflies.ai/graphql \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $FIREFLIES_API_KEY" \
-d '{"query":"{ user { user_id name email is_admin minutes_consumed num_transcripts recent_meeting } }"}' | jq
curl -s -X POST https://api.fireflies.ai/graphql \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $FIREFLIES_API_KEY" \
-d '{"query":"query($id:String!){transcript(id:$id){id title date duration participants fireflies_users summary{keywords action_items overview topics_discussed} speakers{name duration} sentences{speaker_name text start_time}}}","variables":{"id":"TRANSCRIPT_ID"}}' | jq
# ISO 8601 格式: YYYY-MM-DDTHH:mm:ss.sssZ
curl -s -X POST https://api.fireflies.ai/graphql \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $FIREFLIES_API_KEY" \
-d '{"query":"query($from:DateTime,$to:DateTime,$limit:Int){transcripts(fromDate:$from,toDate:$to,limit:$limit){id title date duration organizer_email participants summary{keywords action_items overview}}}","variables":{"from":"2024-01-01T00:00:00.000Z","to":"2024-01-31T23:59:59.999Z","limit":50}}' | jq
# 搜索特定人员参与的会议
curl -s -X POST https://api.fireflies.ai/graphql \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $FIREFLIES_API_KEY" \
-d '{"query":"query($participants:[String],$limit:Int){transcripts(participants:$participants,limit:$limit){id title date participants organizer_email summary{action_items}}}","variables":{"participants":["john@example.com","jane@example.com"],"limit":20}}' | jq
curl -s -X POST https://api.fireflies.ai/graphql \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $FIREFLIES_API_KEY" \
-d '{"query":"query($organizers:[String],$limit:Int){transcripts(organizers:$organizers,limit:$limit){id title date organizer_email participants}}","variables":{"organizers":["sales@example.com"],"limit":25}}' | jq
# scope 参数可选: "TITLE", "SENTENCES", 或 "ALL"
curl -s -X POST https://api.fireflies.ai/graphql \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $FIREFLIES_API_KEY" \
-d '{"query":"query($keyword:String,$scope:String){transcripts(keyword:$keyword,scope:$scope,limit:10){id title date summary{overview}}}","variables":{"keyword":"pricing","scope":"ALL"}}' | jq
curl -s -X POST https://api.fireflies.ai/graphql \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $FIREFLIES_API_KEY" \
-d '{"query":"{ transcripts(mine:true,limit:10) { id title date duration summary { action_items keywords } } }"}' | jq
curl -s -X POST https://api.fireflies.ai/graphql \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $FIREFLIES_API_KEY" \
-d '{"query":"query($id:String!){transcript(id:$id){id title date duration organizer_email participants fireflies_users workspace_users meeting_attendees{displayName email} summary{keywords action_items outline overview bullet_gist topics_discussed meeting_type} speakers{name duration word_count} sentences{speaker_name text start_time end_time}}}","variables":{"id":"TRANSCRIPT_ID"}}' | jq
# 需要 Pro 或更高版本套餐
curl -s -X POST https://api.fireflies.ai/graphql \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $FIREFLIES_API_KEY" \
-d '{"query":"query($id:String!){transcript(id:$id){id title analytics{sentiments{positive_pct neutral_pct negative_pct} speakers{name duration word_count filler_words questions longest_monologue words_per_minute}}}}","variables":{"id":"TRANSCRIPT_ID"}}' | jq
curl -s -X POST https://api.fireflies.ai/graphql \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $FIREFLIES_API_KEY" \
-d '{"query":"{ contacts { email name picture last_meeting_date } }"}' | jq
curl -s -X POST https://api.fireflies.ai/graphql \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $FIREFLIES_API_KEY" \
-d '{"query":"{ active_meetings { id title organizer_email meeting_link start_time state } }"}' | jq
获取过去 7 天内包含特定参与者的所有会议:
# 日期命令 (根据您的操作系统选择):
# macOS:
FROM_DATE=$(date -u -v-7d +"%Y-%m-%dT00:00:00.000Z")
# Linux:
# FROM_DATE=$(date -u -d '7 days ago' +"%Y-%m-%dT00:00:00.000Z")
TO_DATE=$(date -u +"%Y-%m-%dT23:59:59.999Z")
curl -s -X POST https://api.fireflies.ai/graphql \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $FIREFLIES_API_KEY" \
-d "{\"query\":\"query(\$from:DateTime,\$to:DateTime,\$participants:[String]){transcripts(fromDate:\\\"\$FROM_DATE\\\",toDate:\\\"\$TO_DATE\\\",participants:\$participants,limit:50){id title date duration organizer_email participants summary{keywords action_items topics_discussed meeting_type}}}\",\"variables\":{\"from\":\"$FROM_DATE\",\"to\":\"$TO_DATE\",\"participants\":[\"prospect@company.com\"]}}" | jq
id - 唯一标识符title - 会议标题date - Unix 时间戳 (毫秒)dateString - ISO 8601 日期时间duration - 时长 (分钟)organizer_email - 会议组织者邮箱participants - 所有参与者邮箱fireflies_users - 参与的 Fireflies 用户workspace_users - 参与的团队成员meeting_attendees - 详细的参会者信息 (displayName, email)transcript_url - 在仪表板中查看的链接audio_url - 音频下载链接 (Pro+ 套餐,24 小时后过期)video_url - 视频下载链接 (Business+ 套餐,24 小时后过期)keywords - 关键主题action_items - 提取的待办事项overview - 会议概览topics_discussed - 主要讨论主题meeting_type - 会议类别outline - 结构化大纲bullet_gist - 要点摘要text - 句子文本speaker_name - 发言人start_time - 开始时间戳 (秒)end_time - 结束时间戳ai_filters - AI 过滤器 (任务、问题、定价等)name - 发言人姓名duration - 发言时长word_count - 发言字数filler_words - 填充词数量questions - 提出的问题数量longest_monologue - 最长连续发言时长words_per_minute - 语速 (每分钟字数){
"fromDate": "2024-01-01T00:00:00.000Z",
"toDate": "2024-01-31T23:59:59.999Z"
}
{
"participants": ["user1@example.com", "user2@example.com"]
}
{
"channel_id": "channel_id_here"
}
{
"fromDate": "2024-01-01T00:00:00.000Z",
"toDate": "2024-01-31T23:59:59.999Z",
"participants": ["sales@example.com"],
"keyword": "pricing",
"scope": "ALL",
"limit": 50
}
$headers = @{
"Authorization" = "Bearer $env:FIREFLIES_API_KEY"
"Content-Type" = "application/json"
}
# 获取近期转录记录
$body = @{
query = "{ transcripts(mine:true,limit:10) { id title date } }"
} | ConvertTo-Json
Invoke-RestMethod -Uri "https://api.fireflies.ai/graphql" -Method POST -Headers $headers -Body $body
API 提供了 transcript_url、video_url 和 audio_url,但若要与外部人员(潜在客户、客户)分享,请使用嵌入 URL 格式:
API transcript_url: https://app.fireflies.ai/view/{id} (需要 Fireflies 登录)
嵌入 URL: https://share.fireflies.ai/embed/meetings/{id} (无需登录,永久有效)
为何使用嵌入 URL:
- 无需 Fireflies 账户即可查看
- 永久链接 (不像 video_url/audio_url 会过期)
- 更好的观看体验 (嵌入式播放器)
构建方法:
# 从 API 获取会议 ID
MEETING_ID=$(curl -s -X POST https://api.fireflies.ai/graphql \
-H "Authorization: Bearer $FIREFLIES_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query":"{ transcripts(mine:true,limit:1) { id } }"}' | jq -r '.data.transcripts[0].id')
# 构建嵌入 URL
EMBED_URL="https://share.fireflies.ai/embed/meetings/${MEETING_ID}"
echo "分享此链接: $EMBED_URL"
嵌入 HTML:
<iframe
src="https://share.fireflies.ai/embed/meetings/{id}"
width="640"
height="360"
frameborder="0"
allow="autoplay; fullscreen; picture-in-picture"
allowfullscreen>
</iframe>
curl 和 jq (安装命令:sudo apt install jq 或 brew install jq)limit (最大 50) 和 skip 参数YYYY-MM-DDTHH:mm:ss.sssZ