How Image Token Costs Are Estimated for Frames in Claude Video
Claude Video estimates image token costs using Anthropic's formula of (width × height) ÷ 750, where a standard 512×288 frame consumes approximately 197 tokens, with costs scaling quadratically when resolution increases.
The bradautomates/claude-video repository implements a deterministic cost estimation system that translates video frames into Anthropic API token counts before processing. Understanding how image token costs are estimated for frames in Claude Video enables precise budget forecasting, as the tool applies a fixed mathematical model to pixel dimensions combined with configurable frame sampling strategies.
The Anthropic Image Token Formula
bradautomates/claude-video applies Anthropic's standard image-token formula to every extracted frame:
image-tokens = (frame-width × frame-height) ÷ 750
The implementation uses a default frame width of 512 px. Height is automatically scaled to preserve the source video's aspect ratio, ensuring that a 720p video (16:9) becomes 512×288 px. Using these default dimensions, the calculation yields (512 × 288) ÷ 750 ≈ 197 tokens per frame.
This formula is documented in the repository's README.md (lines 90-92), which explains that the divisor of 750 represents Anthropic's standard pixel-to-token conversion rate for vision models.
Resolution Scaling and Token Multipliers
When users request higher resolution processing via the --resolution 1024 flag, both width and height roughly double. Because the formula multiplies dimensions, this quadruples the token cost per frame to approximately 788 tokens (a 4× increase).
This quadratic scaling means that doubling resolution does not merely double costs—it exponentially increases the token consumption for the same visual content.
Detail Modes: Controlling Frame Volume
The script distinguishes four detail modes that determine how many frames are extracted and submitted to the API, directly controlling total image token expenditure:
Transcript-Only Mode
Processes no visual frames, resulting in 0 image tokens (approximately 26,000 text tokens for a typical transcript).
Efficient Mode
Extracts up to 50 key frames using key-frame extraction algorithms. At default resolution, this generates approximately 9,800 image tokens.
Balanced Mode
Uses scene-change detection to capture up to 100 frames, yielding roughly 19,700 image tokens for a typical video at standard resolution.
Token-Burner Mode
Implements uncapped scene-change detection that retains every detected scene transition across the entire video. The total image token cost equals the number of retained frames multiplied by the per-frame token count (197 at default resolution). The SKILL.md file (lines 94-96) describes this mode as "scene-aware, uncapped (maximum fidelity; high token cost)."
Implementation Warnings and Safety Limits
In skills/watch/scripts/watch.py (lines 319-324), the script implements a safety warning when frame counts exceed 250 frames. This threshold prevents unexpectedly large API bills, as the token-burner mode can rapidly accumulate costs—116 frames, for example, generate approximately 22,800 image tokens.
The warning logic triggers before API submission, giving users the opportunity to cancel operations that would consume excessive tokens.
Calculating Costs Programmatically
You can replicate the token estimation logic used by Claude Video using the following Python implementation:
import re
import subprocess
from pathlib import Path
def estimate_image_tokens(frame_count: int, width: int = 512) -> int:
"""
Anthropic image-token estimate: (width × height) / 750.
Height derived from 16:9 aspect ratio used in default processing.
"""
height = int(width * 288 / 512) # Preserve 16:9 ratio
per_frame = (width * height) // 750
return per_frame * frame_count
# Example: Estimating costs for a token-burner run
url = "https://youtu.be/example"
result = subprocess.run(
["python", "skills/watch/scripts/watch.py", url, "--detail", "token-burner"],
capture_output=True, text=True
)
# Parse frame count from output ("116 selected frames...")
match = re.search(r'(\d+) selected frames', result.stdout)
if match:
frames = int(match.group(1))
token_est = estimate_image_tokens(frames)
print(f"Estimated image tokens: {token_est} (≈ {frames} frames × 197 tokens/frame)")
For a typical 10-minute video processed with --detail token-burner, expect approximately 120 extracted frames, yielding ~24,000 image tokens in addition to transcript tokens.
Summary
- Anthropic's formula
(width × height) ÷ 750converts pixel dimensions to token counts, implemented inbradautomates/claude-video. - Default settings (512×288 px) consume ~197 tokens per frame, while
--resolution 1024quadruples this to ~788 tokens. - Four detail modes control total costs: transcript-only (0), efficient (~9.8k), balanced (~19.7k), and token-burner (uncapped, frame-dependent).
- Safety warnings trigger at >250 frames in
skills/watch/scripts/watch.pyto prevent excessive token consumption. - Token estimates scale linearly with frame count and quadratically with resolution, enabling predictable budgeting for video analysis workloads.
Frequently Asked Questions
What is the exact formula for estimating image tokens in Claude Video?
The formula is (frame-width × frame-height) ÷ 750, as documented in the repository's README.md. For a standard 512×288 frame, this calculates to approximately 197 tokens per image.
How does increasing resolution affect token costs?
Doubling the resolution using --resolution 1024 roughly doubles both width and height, causing token costs to increase by a factor of approximately 4× (from ~197 to ~788 tokens per frame) due to the multiplicative nature of the area calculation.
Is there a limit to how many frames token-burner mode will extract?
The token-burner mode itself is uncapped and will extract every detected scene-change frame across the entire video. However, the script warns users when frame counts exceed 250 frames to prevent unexpectedly large API bills, as implemented in skills/watch/scripts/watch.py at lines 319-324.
Does transcript-only mode consume any image tokens?
No. The transcript detail mode processes only text content, resulting in zero image tokens (typically generating approximately 26,000 text tokens for the audio transcription).
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →