2026-10-15 · 3 min read
Estimating the cost of captioning at scale
Before you caption a few thousand videos, it helps to know roughly what the run will cost. Most captioning APIs bill by the minute of video, so the estimate comes down to counting minutes and not wasting any.
Count the minutes first
Sum the durations of your files before you send anything. ffprobe can read a duration without decoding the video, so a script over a folder or a list of URLs takes seconds.
for f in clips/*.mp4; do
ffprobe -v error -show_entries format=duration -of csv=p=0 "$f"
done | awk '{s+=$1} END {printf "%.1f minutes\n", s/60}'Test one clip, then batch
- Run a single representative clip with your final style options. Look at the result before you queue the rest, so you do not pay to redo a batch with the wrong font or size.
- Check the current rate on the pricing page and multiply by your minute count. Rates change, so read it on the day you run the batch.
- Keep a log of request ids and results so a failed item can be retried on its own instead of rerunning everything.
Avoid paying twice
Most repeat cost comes from re-running a whole batch after changing a setting. Settle the style on one clip, cache results by source URL and options, and only resubmit items that failed.
caption.sh burns captions into the video, so each run produces a finished file. See the docs for the options and the pricing page for current rates.