When Does Claude-Video Issue a Sparse Scan Warning for Long Videos?
The watch skill emits a sparse scan warning to stderr when a video exceeds 10 minutes (600 seconds) and the selected detail mode is neither transcript nor token-burner, as implemented in skills/watch/scripts/watch.py lines 26-33.
The claude-video repository by bradautomates provides a watch skill for AI-powered video analysis with configurable frame extraction. Understanding the sparse scan warning for long videos helps developers optimize their commands to ensure adequate visual coverage or suppress unnecessary alerts.
The 600-Second Threshold in watch.py
The warning logic resides in skills/watch/scripts/watch.py at lines 26-33. After retrieving video metadata, the system compares the total duration against a hardcoded threshold of 600 seconds (10 minutes).
When the duration exceeds this limit, the code examines the current detail parameter. Only two modes suppress the warning entirely: transcript and token-burner. All other detail configurations trigger the stderr message alerting users that frame coverage will be sparse.
Why the 10-Minute Limit Exists
This threshold represents the point where default frame sampling strategies become too sparse for reliable scene analysis. According to comments in skills/watch/scripts/frames.py, clips with very few decoded keyframes provide insufficient visual coverage, which the warning system flags to prevent analysis gaps.
Detail Modes That Suppress the Warning
The warning system respects specific detail configurations that either eliminate frame extraction or maximize it:
transcript— Extracts only audio transcription data with no visual frames, rendering the sparse scan warning irrelevant.token-burner— Processes every scene-change frame without caps, ensuring comprehensive coverage regardless of video length.
How to Avoid the Sparse Scan Warning
When processing videos longer than 10 minutes, you have three primary strategies to prevent or address the warning.
Use Token-Burner Detail Mode
Override the default detail level to process all keyframes without duration-based sampling:
watch "https://example.com/long-video.mp4" --detail token-burner
Focus on a Specific Segment
Use --start and --end parameters to reduce the effective duration below 600 seconds:
watch "https://example.com/long-video.mp4" --start 00:03:00 --end 00:05:00
Switch to Transcript-Only Analysis
For audio-focused processing without visual frames:
watch "https://example.com/long-video.mp4" --detail transcript
Configuration and Supporting Files
The warning system relies on configuration defaults defined in skills/watch/scripts/config.py, which establishes the frame caps and detail level behaviors that determine when sparse coverage occurs. While watch.py contains the actual warning emission logic, skills/watch/scripts/frames.py provides the conceptual foundation regarding keyframe density that justifies the 10-minute threshold.
Code Examples
Default Detail on a 12-Minute Video
watch "https://example.com/long-video.mp4"
This command emits the following to stderr:
**Warning:** This is a 12-minute video. Frame coverage is sparse at this length
under `balanced` detail — its cap spreads thin across the full clip...
Same Video with Token-Burner Detail
watch "https://example.com/long-video.mp4" --detail token-burner
No warning appears because every scene-change frame is preserved.
Two-Minute Segment Extraction
watch "https://example.com/long-video.mp4" --start 00:03:00 --end 00:05:00
The warning is suppressed because the effective duration is under 10 minutes.
Transcript-Only Processing
watch "https://example.com/long-video.mp4" --detail transcript
No frames are extracted, so the sparse scan warning does not apply.
Summary
- The sparse scan warning triggers when video duration exceeds 600 seconds (10 minutes) and the detail mode is neither
transcriptnortoken-burner. - The logic resides in
skills/watch/scripts/watch.pyat lines 26-33. - Exempt modes:
transcript(no frames) andtoken-burner(all frames). - Avoid the warning by using time-range arguments (
--start/--end), switching totoken-burnerdetail, or usingtranscriptmode. - Configuration defaults in
skills/watch/scripts/config.pydefine the frame caps that make the warning necessary.
Frequently Asked Questions
What is the exact duration threshold for the sparse scan warning?
The warning triggers at 600 seconds (10 minutes) of total video duration. This threshold is hardcoded in skills/watch/scripts/watch.py and represents the point where standard detail modes cannot maintain adequate frame coverage across the entire clip.
Does the transcript detail mode ever trigger a sparse scan warning?
No. The transcript detail mode is explicitly exempt from the warning because it performs audio transcription without extracting visual frames. Since no frame sampling occurs, the concept of sparse coverage does not apply.
How can I process a 15-minute video without seeing the warning?
You have three options: use --detail token-burner to process all scene-change frames regardless of length, use --detail transcript to skip visual analysis entirely, or specify a --start and --end time range that keeps the segment under 10 minutes.
Where is the sparse scan warning logic implemented in the source code?
The warning emission logic is located in skills/watch/scripts/watch.py at lines 26-33. Supporting configuration for detail levels and frame caps resides in skills/watch/scripts/config.py, while skills/watch/scripts/frames.py contains comments explaining the "too sparse" concept regarding keyframe coverage.
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 →