~/social/instagram-transcript-scraper
Instagram 转文字——Reels 视频转录与文案提取
把 Instagram Reels 和视频转成文字:粘贴链接或主页,批量获取带时间戳和语种的转录文本。无需登录。
媒体
TypeScript
全球
分类social / 媒体
语言TypeScript
技术栈TypeScript
市场全球
输出干净、RAG 就绪的 JSON
核心特性
把每条公开 Reel 里的语音转成文字——完整转录加带时间戳的分段(start、end、text)
自动识别口语语言,也可以传入语言提示
同一行里附带文案、解析好的话题标签与 @提及、点赞、评论和时长——从主页 Reels 标签读取的 Reels 还带播放量
无需登录 Instagram,也不用自备语音转文字密钥——转录已包含在内
传入主页即可转录其 Reels 标签,数量不超过每个主页的 Reels 上限,也可选择同时转录其时间线,或直接给单条 Reel 链接
只获取音频,绝不下载整段视频
只有音乐或没有声音的 Reels 会返回 hasSpeech: false 的记录且不计费;语音引擎在音乐上凭空生成的填充文字会被丢弃
轮播图取其中第一个有声音的视频
应用场景
- 内容调研——搜索创作者实际说了什么,而不只是文案写了什么
- 对某个赛道里的每条 Reel 做关键词与品牌监控
- 用 Reels 文本构建语料,用于 RAG、摘要和聚类
- 字幕制作与内容再利用,每段都有起止时间
- 创作者分析——聊某个话题是否带来更多播放?
- 多语言监控,每行都标明识别出的语言
输入参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
startUrls | array | 可选 | 主页或 Reel 的链接;也可以填写用户名,或两者同时填写 |
usernames | array | 可选 | 主页用户名,带不带 @ 均可;转录其 Reels 标签 |
maxReelsPerProfile | integer | 可选 | 每个主页转录的视频数——同时也是成本控制(默认 10) |
includeTimeline | boolean | 可选 | 同时转录主页帖子网格中的视频(默认关闭) |
includeSegments | boolean | 可选 | 保留每段的时间戳(默认开启) |
language | string | 可选 | 可选的语言提示,如 en、es 或 pt;留空表示自动识别 |
maxConcurrency | integer | 可选 | 同时转录的 Reels 数(默认 3) |
maxRequestsPerCrawl | integer | 可选 | 达到该请求数后停止;留空表示不限 |
proxy | object | 可选 | Apify Proxy,默认住宅代理,用于读取 Instagram |
输出示例
1{
2 "type": "transcript",
3 "source": {
4 "id": "instagram",
5 "canonicalUrl": "https://www.instagram.com/reel/DcozHIETCd9/",
6 "username": "nasaadmin"
7 },
8 "id": "3974651461224900477",
9 "shortcode": "DcozHIETCd9",
10 "url": "https://www.instagram.com/reel/DcozHIETCd9/",
11 "owner": {
12 "id": "79712351002",
13 "username": "nasaadmin",
14 "fullName": "NASA Administrator Jared Isaacman",
15 "isVerified": true
16 },
17 "takenAt": "2026-08-29T20:31:28.000Z",
18 "caption": "An unforgettable day at @nasajohnson. …",
19 "hashtags": [],
20 "mentions": [
21 "nasajohnson",
22 "potus"
23 ],
24 "durationSeconds": 114.566,
25 "likeCount": 51113,
26 "commentCount": 409,
27 "audioUrl": "https://…mp4",
28 "audioBytes": 1019785,
29 "transcript": "… 250,000 miles from Earth. Please join me in congratulating Commander Reed Weissman, Pilot Victor Glover, Mission Specialist Christina Koch, and Mission Specialist Jeremy Hansen. …",
30 "segments": [
31 {
32 "start": 30.12,
33 "end": 32.7,
34 "text": "250,000 miles from Earth."
35 },
36 {
37 "start": 32.7,
38 "end": 44.64,
39 "text": "Please join me in congratulating Commander Reed Weissman, Pilot Victor Glover, Mission Specialist Christina Koch, and Mission Specialist"
40 },
41 {
42 "start": 44.64,
43 "end": 45.98,
44 "text": "Jeremy Hansen."
45 }
46 ],
47 "language": "en",
48 "wordCount": 204,
49 "hasSpeech": true,
50 "transcriptModel": "whisper-large-v3-turbo",
51 "scrapedAt": "2026-10-20T01:52:23.613Z"
52}
定价
按事件计费:每保存一条有语音的转录计费一次。只有音乐或没有声音的 Reels,以及转录失败的记录,都会保存但绝不收费。
使用建议
先跑几条 Reels。 maxReelsPerProfile 同时也是成本控制:每条 Reel 对应一次下载和一次转录。 时间戳是免费的。 关闭 includeSegments 只会让记录变小,不会更便宜——时间信息来自同一次调用。 language 留空,除非所有 Reels 都是同一种语言;识别是逐条进行的。 还需要评论或主题标签? Instagram 爬虫读取同一批账号的帖子、评论、合作作者以及 Instagram 自己的主题标签。
常见问题
如何获取 Instagram Reel 的文字稿?
把 Reel 的链接填进 startUrls 并运行 Actor。文字在 transcript 字段,带时间戳的分段在 segments[]。视频帖(/p/)和 IGTV 链接(/tv/)用法相同。
可以批量转录 Instagram Reels 吗?
可以。给它多个 Reel 链接,或者主页:每个主页的 Reels 标签页会转录到 maxReelsPerProfile 为止,开启 includeTimeline 后还包括时间线。每个 Reel 一行。
需要 Instagram 账号或自己的语音转文字密钥吗?
都不需要。全程不登录,转录引擎由 Actor 提供。
只有音乐或没有声音的 Reel 会怎样?
它仍会得到一行记录,hasSpeech: false、转录为空,并且不计费。无声发布的 Reel 在下载任何内容之前就会被识别出来。转录失败的 Reel 会在 transcriptError 里说明,同样不计费。
转录准确度如何?
对原始音频使用 Whisper 级别的语音识别。音乐、浓重口音、多人同时说话和嘈杂场景是任何引擎都吃力的地方;用 segments[] 可以发现并裁掉这些部分。
能翻译吗?
不能——它按口语原文返回文字,并告诉你是哪种语言。