Instagram & TikTok Transcripts, Frames & Posts
Give your agent the words and frames of an Instagram or TikTok video
This TikTok transcript API returns the timestamped transcript and 3 frames of any public Instagram Reel or TikTok video for $0.02 per started minute. Send up to 100 public Instagram or TikTok video URLs per run, or the dataset your scraper already produced. Get each transcript with timestamps, the full text and 3 frames of what is on screen.
$0.02 per started minute. Failed and silent videos are not charged.
lang "en" detected automaticallyFrames, frames[].t
frame 1 4.8 s 10%
frame 2 24.0 s 50%
frame 3 43.2 s 90%
Transcript, segments
- Hi! Today we're making a citrus kale salad.frame 1
- Massage the kale with a pinch of salt first.
- Now the orange zest, right over the bowl.frame 2
- Toss it once more and it's ready.frame 3
How it works
Send links or a dataset
Paste up to 100 public video URLs, or pick the dataset of an Instagram or TikTok scraper you already ran. Instagram and TikTok links can go in the same run.
Listen and look
Each video's speech is transcribed with timestamps and 3 frames are cut from it. The video file is deleted as soon as its item is done.
Get one item per video
Transcript, full text and frames together, ready for an LLM. A video that fails becomes an item that says why.
Input and output
{
"url": "https://www.instagram.com/reel/C9...",
"platform": "instagram",
"durationSecs": 48,
"lang": "en",
"segments": [
{ "start": 0.0, "end": 3.6, "text": "..." }
],
"text": "...",
"frames": [
{ "t": 4.8, "url": "https://api.apify.com/v2/key-value-stores/..." },
{ "t": 24.0, "url": "..." },
{ "t": 43.2, "url": "..." }
]
}Values shortened. segments carry start and end in seconds; text is the whole transcript as one string; frames are cut at 10%, 50% and 90% of the video and stored in your run.
{
"urls": [
"https://www.instagram.com/reel/C9...",
"https://www.tiktok.com/@creator/video/74..."
]
}Single public videos only. Profiles, hashtags, searches and private accounts are refused before anything runs.
{
"datasetId": "aBcD1234eFgH"
}Reads the video URLs from a run of apify/instagram-reel-scraper, apify/instagram-scraper or clockworks/tiktok-scraper. You pick the dataset in the input form, and the actor can read only that one. You can also paste the items in datasetItems.
Near the start, the middle and the end, so your agent sees what the video shows, not only what it says. Each frame has its time t in seconds.
{
"url": "https://www.instagram.com/reel/C9...",
"segments": [],
"text": "",
"frames": [ ... ],
"noSpeech": true
}Values shortened: frames holds 3 frames, as in any other item. You still get them, and nothing is charged for it. A video that fails comes back as {"url", "error"} with the reason, also not charged.
Pricing
$0.02 per started minute
Each video rounds up on its own: 100 videos of 30 seconds cost $2.00.
Pay per event on Apify. No subscription. Each video is charged by its own length, rounded up to the next minute, and a run never costs more than the spending limit you set.
- A 30-second Instagram video
- $0.02
- A 61-second TikTok video
- $0.04
- A 10-minute video
- $0.20
Before you run
- Single public videos, up to 100 per run, also when they come from a dataset. More than that is refused before anything runs, with nothing charged.
- What fails is not charged: private, removed or blocked videos, and videos that take too long to process.
- Videos without speech are not charged.
- Frames live in your run's storage on Apify. The video itself is never delivered.
Use it by API or from Claude
curl -X POST \
"https://api.apify.com/v2/acts/emttn~instagram-tiktok-transcript/run-sync-get-dataset-items" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"urls": ["https://www.instagram.com/reel/C9..."]}'{ "mcpServers": { "apify": {
"url": "https://mcp.apify.com/?actors=emttn/instagram-tiktok-transcript"
} } }Then ask: "Use Instagram & TikTok Transcripts, Frames & Posts on these videos. Summarize the spoken steps and say what each frame shows."
SRT and VTT subtitles from your scraper's dataset
Already ran an Instagram or TikTok scraper and want each video's words as subtitles? A separate actor, Instagram & TikTok Transcript (SRT, VTT), reads that dataset and returns every transcript as SRT and VTT. The actor on this page returns frames, not subtitle files. Pick by what you have and what you need.
Instagram & TikTok Transcripts, Frames & Posts
- Input
- Up to 100 public video URLs per run, or your scraper's dataset.
- Output
- A timestamped transcript and 3 frames per video.
- Use it when
- You start from links, or your agent needs to see what the video shows.
Instagram & TikTok Transcript (SRT, VTT)
- Input
- Your scraper's dataset only, in
datasetIdordatasetItems, from the same TikTok and Instagram scrapers. No pasted links. - Output
- A timestamped transcript with
srtandvttsubtitles per video, no frames. - Use it when
- You already scraped the videos and want subtitles to save, load into a player or edit.
srt
1
00:00:00,000 --> 00:00:03,600
Hi! Today we're making...
vtt
WEBVTT
00:00:00.000 --> 00:00:03.600
Hi! Today we're making...Both charge per started minute of each delivered video. Failed and silent videos are not charged.
FAQ
Which links does it accept?
Public Instagram videos (instagram.com/reel/... or /p/...) and TikTok videos (tiktok.com/@user/video/...). Profiles, hashtags, searches and private accounts are not accepted.
Can I use the output of my Instagram or TikTok scraper?
Yes. Pass its datasetId, or paste the items in datasetItems. It copies only the video URL and ID into its output. Items that are not videos come back as an item that says so, and are not charged.
What about videos with only music?
You get the 3 frames, an empty transcript and noSpeech: true. Nothing is charged for that video.
Which languages does it support?
The language is detected automatically from the audio and returned in lang. Tested on English so far.
What if a run fails?
Each video that fails is an item with the reason and is not charged. If every video fails, the run ends with the reason and "Nothing was charged."
Can I get SRT or VTT subtitles?
Not from this actor. For subtitles from a scraper's dataset, use Instagram & TikTok Transcript (SRT, VTT): it returns each transcript with srt and vtt, without frames.