How to Use Focused Mode with Start and End Timestamps in Claude Video
The watch skill enters focused mode when you supply --start and/or --end flags, automatically increasing the frame extraction density for that specific segment while filtering transcripts and timestamps to match the original video timeline.
The claude-video repository by bradautomates provides a powerful watch skill that analyzes video content using Claude's computer vision capabilities. When you need to examine a specific moment rather than process an entire video, focused mode with start and end timestamps lets you target precise segments with optimized frame sampling. This mode automatically applies a denser frame budget and constrains all outputs to your specified time window.
How Focused Mode Works
When you provide either --start or --end parameters, the script evaluates focused = start_sec is not None or end_sec is not None in skills/watch/scripts/watch.py (lines 55‑58). This boolean triggers a specialized extraction pipeline that prioritizes detail within your defined boundaries.
Parsing Timestamps with parse_time
User-provided time strings are converted to seconds by the parse_time function defined in skills/watch/scripts/frames.py (lines 55‑71). This utility handles multiple human-readable formats including HH:MM:SS, MM:SS, or raw integer seconds.
Calculating the Effective Range
In skills/watch/scripts/watch.py (lines 40‑53), the script computes effective_start, effective_end, and effective_duration based on your provided values. If you omit --end, the skill analyzes from your start point to the video's conclusion. If you omit --start, processing begins at 00:00.
Optimizing Frame Density with auto_fps_focus
The primary advantage of focused mode lies in the auto_fps_focus implementation in skills/watch/scripts/frames.py (lines 41‑58). Unlike the standard auto_fps function, this specialized routine allocates a denser frame budget for short clips while strictly respecting the global 2 FPS ceiling. This ensures maximum visual detail from your targeted segment without exceeding processing limits.
Extracting Frames and Filtering Content
The extraction functions in skills/watch/scripts/frames.py (lines 86‑92) receive start_seconds and end_seconds arguments, passing them directly to ffmpeg to process only the requested slice. Simultaneously, skills/watch/scripts/watch.py (lines 63‑66) invokes filter_range to trim any available transcript segments to the same time window, ensuring textual analysis aligns perfectly with the extracted visual frames.
Output Reporting
The final report includes a "Focus range" line and preserves timestamps relative to the original video timeline rather than offsetting from the clip start, as implemented in skills/watch/scripts/watch.py (lines 78‑84).
Usage Examples
Here are practical commands demonstrating focused mode with start and end timestamps:
# Analyze the last 10 seconds of a 1-minute video
python3 "$SKILL_DIR/scripts/watch.py" video.mp4 --start 50 --end 60
# Zoom into a 30-second window at maximum 2 FPS
python3 "$SKILL_DIR/scripts/watch.py" "$URL" --start 2:15 --end 2:45 --fps 2
# Extract from 1 hour 12 minutes to the end of the video
python3 "$SKILL_DIR/scripts/watch.py" "$URL" --start 1:12:00
Summary
- Focused mode activates automatically when you supply
--startor--endflags to the watch skill. - The
parse_timefunction inskills/watch/scripts/frames.pyconverts human-readable timestamps to seconds. auto_fps_focusallocates a denser frame budget for short segments while respecting the 2 FPS global limit.- ffmpeg receives time boundaries directly via
start_secondsandend_seconds, and transcripts are filtered viafilter_rangeto match the visual range. - Output preserves original video timestamps and displays the focused range for verification.
Frequently Asked Questions
What timestamp formats does focused mode support?
The parse_time function accepts multiple formats including raw seconds (e.g., 50), minutes:seconds (e.g., 2:15), and hours:minutes:seconds (e.g., 1:12:00). All values are normalized to seconds before the effective_start and effective_end calculations begin.
Can I use focused mode without specifying both start and end times?
Yes. If you provide only --start, the skill analyzes from that point to the video's end. If you provide only --end, it processes from the beginning (00:00) up to that timestamp. The logic in skills/watch/scripts/watch.py (lines 40‑53) handles these partial ranges by deriving effective_duration from the video metadata.
Does focused mode affect transcript analysis?
Yes. When a transcript is available, the script trims it to match your specified time window using filter_range (lines 63‑66 in skills/watch/scripts/watch.py). This ensures that any text-based analysis corresponds exactly to the visual frames being extracted and analyzed.
What is the maximum frame rate in focused mode?
Even in focused mode, the skill respects the global 2 FPS ceiling defined by the selected detail mode. The auto_fps_focus function in skills/watch/scripts/frames.py optimizes the frame distribution within this hard limit, selecting a higher effective rate for short clips without ever exceeding 2 frames per second.
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 →