Estimate a folder of clips transcription cost with ffprobe
Sum each clip's seconds with ffprobe, flag anything over 600 s, and price it at $0.01 per audio minute before you submit a single Sume STT job.

To price a folder of audio before you transcribe it with Sume STT 1.0, read each file's length with ffprobe, round up to whole seconds, and multiply the total by $0.01 / 60. Any single clip over 600 seconds is above the STT limit (duration_seconds is an integer from 1 to 600) and has to be cut first. The $0.01 per audio minute rate and the per-second proration come from the Sume pricing described in Video inspect, read 2026-10-06.
Rounding rules to copy
Use the same rounding the job uses so the estimate and the invoice agree: a one-second minimum, whole seconds from duration_seconds, and cost computed on the sum, not rounded per clip to a minute.
| Input | Rule |
|---|---|
duration_seconds | Integer, 1 to 600; omitting it reserves one minute |
| Rate | $0.01 per audio minute, prorated per second |
| Longest clip | 600 s (10 minutes); cut longer audio first |
| Audio source | Public HTTPS URL |
The script
It needs ffprobe on the PATH. The sample below printed (5, 0.0008, ['b.wav']) for one 4.2-second clip and one 700-second clip: 5 billable seconds, $0.0008, and the long file flagged.
import json, math, pathlib, subprocess, sys
RATE_PER_SECOND = 0.01 / 60
MAX_SECONDS = 600
def duration(path):
out = subprocess.run(
["ffprobe", "-v", "error", "-show_entries", "format=duration",
"-of", "json", str(path)],
capture_output=True, text=True, check=True,
).stdout
return math.ceil(float(json.loads(out)["format"]["duration"]))
def estimate(folder):
total, too_long = 0, []
for p in sorted(pathlib.Path(folder).glob("*.wav")):
seconds = max(1, duration(p))
if seconds > MAX_SECONDS:
too_long.append(p.name)
continue
total += seconds
return total, round(total * RATE_PER_SECOND, 4), too_long
print(estimate(sys.argv[1]))Then send the same seconds with each job
Pass each clip's rounded seconds as duration_seconds. The hold then matches the estimate, and your wallet is not tied up at one minute per in-flight job. Check the balance and queue room with an admission preview before the first submit.
Sources
Related posts
More in Pricing
- gpt-image-1-mini replacement on Sume: what each image id costs
gpt-image-1-mini shuts down December 1, 2026. Compare billed Sume prices per image for budget ids and see why mini token rates don't map one to one.
- Holiday gift guide of 25 products: card, clip and voice cost on Sume
A holiday gift guide with 25 products, each a medium Ideogram card, a 5-second Wan 3.0 clip and a voice line, plus one render, comes to about $10.43 on Sume.
- How far does $5 go on Sume? Images, speech, transcripts, music, video
A $5 test budget buys 63 medium Ideogram 4.5 images, 111 minutes of speech or 473 transcript minutes on Sume, all-in. The count for each asset type.
- How many AI images does $50 buy? Count by image model on Sume
Eighteen Sume image-router ids, $0.005 to $0.264 an image: how many images $50 buys on each, with the 5.5% fee.
Written by Sume