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

> Discover what the --no-whisper flag does in the Claude-Video watch skill. Learn how it disables transcription fallback and prevents API calls when subtitles are missing.

- Repository: [bradautomates/claude-video](https://github.com/bradautomates/claude-video)
- Tags: how-to-guide
- Published: 2026-08-07

---

**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`](https://github.com/bradautomates/claude-video/blob/main/skills/watch/scripts/watch.py), the argument parser defines `--no-whisper` as a boolean flag at lines 53-56:

```python
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`](https://github.com/bradautomates/claude-video/blob/main/watch.py). The code only falls back to Whisper if the following condition evaluates to true:

```python
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`](https://github.com/bradautomates/claude-video/blob/main/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`](https://github.com/bradautomates/claude-video/blob/main/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:

```bash

# 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`](https://github.com/bradautomates/claude-video/blob/main/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`](https://github.com/bradautomates/claude-video/blob/main/skills/watch/scripts/whisper.py)**: Implements the `transcribe_video` function that gets bypassed when the flag is set.
- **[`skills/watch/scripts/setup.py`](https://github.com/bradautomates/claude-video/blob/main/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`](https://github.com/bradautomates/claude-video/blob/main/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`](https://github.com/bradautomates/claude-video/blob/main/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`](https://github.com/bradautomates/claude-video/blob/main/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.