Instagram リール文字起こし — 動画のテキスト化
インスタのリールや動画を文字起こし。URL かプロフィールを入れるだけで、タイムスタンプと言語付きのテキストを一括取得。ログイン不要。
主な機能
公開リールの音声をテキストに変換 — 全文の文字起こしと、タイムスタンプ付きセグメント(start、end、text)
話されている言語を自動判定、または言語ヒントを指定
キャプション、抽出済みのハッシュタグとメンション、いいね、コメント、長さを同じ行に収録。プロフィールのリールタブから読んだリールには再生数も付きます
Instagram のログインも、自前の音声認識キーも不要 — 文字起こしは込み
プロフィールを渡すとそのリールタブをリール上限まで文字起こし、任意でタイムラインも。リール単体のリンクも指定可能
取得するのは音声のみで、動画全体はダウンロードしません
音楽のみ・無音のリールは hasSpeech: false の行として返り、課金されません。音声認識エンジンが音楽の上に作り出す埋め草のテキストは除外されます
カルーセルからは、音声のある最初の動画を採用
活用例
- コンテンツ調査 — キャプションだけでなく、クリエイターが実際に話している内容を検索
- ジャンル内のすべてのリールを対象にしたキーワード・ブランドモニタリング
- RAG・要約・クラスタリング用のリール由来テキストコーパス
- 字幕制作と再利用、各パッセージの開始・終了時刻つき
- クリエイター分析 — ある話題を語ると再生数が増えるか?
- 多言語モニタリング、各行に判定された言語を収録
入力パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
startUrls | array | 任意 | プロフィールまたはリールのURL。こちらか usernames のどちらかを指定 |
usernames | array | 任意 | プロフィール名(@ の有無は問いません)。そのリールタブを文字起こしします |
maxReelsPerProfile | integer | 任意 | プロフィールごとに文字起こしする動画数 — コスト管理にもなります(デフォルト 10) |
includeTimeline | boolean | 任意 | プロフィールの投稿グリッドにある動画も文字起こしする(デフォルト オフ) |
includeSegments | boolean | 任意 | セグメントごとのタイムスタンプを残す(デフォルト オン) |
language | string | 任意 | 任意の言語ヒント(en、es、pt など)。空欄は自動判定 |
maxConcurrency | integer | 任意 | 同時に文字起こしするリール数(デフォルト 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}
料金
イベント課金:音声のある文字起こし1件を保存するごとに1回課金されます。音楽のみ・無音のリール、および文字起こしに失敗したものは保存されますが、課金されることはありません。
ヒント
まず数本のリールで。 maxReelsPerProfile はコスト管理も兼ねています。リール1本につき、ダウンロード1回と文字起こし1回です。 タイムスタンプは無料です。 includeSegments をオフにしても行が小さくなるだけで、安くはなりません — 時刻情報は同じ呼び出しから返るためです。 language は空欄のままで構いません。すべてのリールが同じ言語の場合のみ指定を。判定はリールごとに行われます。 コメントやトピックタグも必要なら。 Instagram スクレイパーが、同じアカウントの投稿、コメント、共同投稿者、Instagram 自身のトピックタグを読み取ります。