What Does the `--no-whisper` Flag Do in the Claude-Video Watch Skill?

The --no-whisper flag disables the OpenAI Whisper transcription fallback, forcing the watch skill to rely solely on existing subtitles and preventing any API calls when captions are missing.

The watch skill in the bradautomates/claude-video repository extracts frames from video content and generates transcripts by default. When you invoke the tool with the --no-whisper option, you explicitly opt out of automatic speech-to-text processing, which alters how the skill handles videos that lack embedded subtitles.

How the --no-whisper Flag Controls Transcription Logic

The flag influences the transcription pipeline at three specific points: argument parsing, conditional execution, and output generation.

Flag Definition and CLI Parsing

In skills/watch/scripts/watch.py, the argument parser defines --no-whisper as a boolean flag at lines 53-56:

ap.add_argument("--no-whisper", action="store_true", 
                help="Disable Whisper fallback…")

When present, this sets args.no_whisper to True, which the downstream logic checks before invoking any transcription services.

Transcript Generation Logic

The critical decision point occurs at lines 239-242 in watch.py. The code only falls back to Whisper if the following condition evaluates to true:

if not transcript_segments and not args.no_whisper and video_path and meta.get("has_audio"):

When you pass --no-whisper, the not args.no_whisper clause becomes False, causing the entire condition to fail. Consequently, the transcribe_video function in skills/watch/scripts/whisper.py never executes, and the skill makes zero API requests to OpenAI.

User Feedback and Output

If subtitles are absent and Whisper is disabled, the script bypasses transcription and prints a specific notice (lines 56-64) directing users to setup.py if they wish to enable Whisper later. The final report explicitly indicates the lack of transcription capability:


- **Transcript:** none available

This output confirms that frame extraction completed successfully while transcription remained disabled.

Practical Usage Examples

You can combine --no-whisper with other options to control processing scope while guaranteeing no API usage:


# Standard usage: tries captions, then falls back to Whisper

watch https://youtu.be/XYZ123

# Disable Whisper entirely: captions only or nothing

watch https://youtu.be/XYZ123 --no-whisper

# Combine with detail and frame limits for faster processing

watch https://youtu.be/XYZ123 --detail balanced --max-frames 30 --no-whisper

When --no-whisper is active and no subtitles exist, the skill completes with extracted frames but leaves the transcript section blank.

Key Implementation Files

Understanding the --no-whisper flag requires familiarity with these specific locations in the bradautomates/claude-video source:

  • skills/watch/scripts/watch.py: Contains the argument definition (lines 53-56), the conditional logic that skips Whisper (lines 239-242), and the final output formatting (lines 17-18).
  • skills/watch/scripts/whisper.py: Implements the transcribe_video function that gets bypassed when the flag is set.
  • skills/watch/scripts/setup.py: Referenced in warning messages; creates the .env file needed to configure Whisper API keys when not using the flag.
  • skills/watch/SKILL.md: Documents the CLI contract including the --no-whisper option for the /watch command interface.

Summary

  • The --no-whisper flag is defined in watch.py and sets args.no_whisper to True when present.
  • It blocks the Whisper fallback by causing the conditional at lines 239-242 to fail, preventing any calls to transcribe_video.
  • If subtitles exist, they are extracted normally; if absent, the report shows "none available" with no API usage.
  • The flag is useful for avoiding API costs, working offline, or processing videos where transcription is unnecessary.

Frequently Asked Questions

What happens if a video has no subtitles and I use --no-whisper?

The skill finishes processing the video frames but outputs "Transcript: none available" in the final report. No transcription is attempted, and no API calls are made to OpenAI Whisper.

Can I re-enable Whisper after using --no-whisper for a specific run?

Yes. The --no-whisper flag only affects the current execution. To re-enable Whisper for future runs, simply omit the flag. If you need to configure API keys first, the warning message references setup.py to create the necessary .env file.

Does --no-whisper affect frame extraction quality?

No. Frame extraction proceeds according to your --detail setting (low, balanced, or high). The flag only controls the transcription pipeline and has no impact on how frames are sampled from the video source.

Why would I use --no-whisper instead of just not having API keys configured?

Using --no-whisper explicitly prevents the skill from attempting to check for or use Whisper, eliminating any error handling or timeout delays associated with missing credentials. It also ensures predictable behavior in automated pipelines where you want guaranteed zero API usage regardless of environment configuration.

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:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →