TikTok import get_transcript: TikTok only, plan the Instagram fallback
get_transcript on media-imports is TikTok only; Instagram imports return no transcript. Fallback: video_inspect transcribe at $0.01 a minute.

get_transcript on POST /v1/media-imports works for TikTok URLs only. Sume's tool description says so, and the importer sends it to the TikTok source only; an Instagram import returns a null transcript. If your pipeline handles both platforms, import first, then run video_inspect with transcribe: true on the stored clip. That costs $0.01 per audio minute at public rates and works for either.
What the import accepts
media-imports takes a public HTTPS TikTok or Instagram video URL and mirrors it into Sume storage, with a fixed estimate of about $0.15 per accepted import. YouTube, X, Facebook and arbitrary hosts are rejected with unsupported_platform. A required idempotency key and an optional max_spend_usd apply. When the job is ready, the resource has a durable media.sume.com url, an asset id, source metadata and, where the platform gave one, a transcript.
curl -X POST https://api.sume.com/v1/media-imports \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: import-clip-001" \
-d '{
"url": "https://www.tiktok.com/@creator/video/7000000000000000000",
"get_transcript": true
}'Plan for the missing transcript
Do not treat a null transcript as an error. Check the platform field on the resource. If it is Instagram, or the TikTok transcript is empty, go to the fallback: call video_inspect with frames false and transcribe true on the mirrored url, with a duration_seconds hint up to 600. A silent clip returns inspect_source_has_no_audio, so probe has_audio first when you are unsure. In a script, branch on the platform before you call import, not after: send get_transcript true only for TikTok URLs, and always schedule the video_inspect fallback for any clip whose transcript field is empty. That way both platforms go through the same final step, and your downstream code reads one transcript shape, with words and optional sentence segments, whatever the source.
| Source | get_transcript | Fallback | Rate |
|---|---|---|---|
| TikTok | Honored | video_inspect if empty | $0.01 per audio minute |
| Not applicable; transcript null | video_inspect transcribe true | $0.01 per audio minute | |
| Both | Import itself | Not applicable | About $0.15 per import |
| YouTube | Rejected: unsupported_platform | Not applicable | Not applicable |
A worked cost
A 60-second Instagram reel costs about $0.15 to import and $0.01 for one transcript minute: $0.16, before compute and price-book changes. A 25-reel batch is about $3.75 for the imports and $0.25 for the minutes, so $4.00 in all. The estimate is fixed per accepted import, so a failed mirror should not be counted in the plan.
Keep the attribution
Imported clips carry the author handle and platform. Keep them with the transcript in your notes so a quote or a reference can be traced back, and do not market the removal of a watermark; the resource reports has_watermark and watermarked_source_only so you can say honestly what you hold. If a reel is later removed from the platform, the mirrored copy in your workspace is still a file you hold, but check your own rights to use it before you republish any part of it.
Sources
Related posts
More in Integrations
- TruGen and Avatario avatar IDs in LiveKit vs a Sume avatar handle
In LiveKit, TruGen and Avatario pick a face with an avatar_id. Sume uses a stable avatar_handle you create yourself. Here is how they differ.
- Truth Social 15-minute video limit and Sume's 900-second trim cap
Truth Social accepts videos up to 15 minutes and 450 MB. Sume video trim outputs top out at 900 seconds, so one trim job fits. How to cut a longer source.
- Truth Social 450 MB video limit: average bitrate for 15 minutes
A 450 MB cap over a 900-second clip leaves about 4 Mbps for video plus audio. Worked ceilings for 5, 10 and 15 minutes, and a Python check before upload.
- Typeform webhook auto-disabled: answer 2xx before calling Sume
Typeform disables a webhook that fails every try, and a 404 or 410 stops it at once. Answer 2xx first, then start the Sume job from a queue.
Written by Sume