How to Use Claude Video with Captions Only to Save Costs

Run Claude Video with the --no-whisper flag to disable AI transcription and extract only native YouTube captions, eliminating Whisper API fees while preserving transcript functionality.

The bradautomates/claude-video repository provides a Python-based video analysis tool that can extract transcripts using either native platform captions or AI-powered transcription. When you use Claude Video with captions only to save costs, you bypass external Whisper API calls that incur per-minute charges, relying instead on free, existing VTT subtitles provided by sources like YouTube. This approach is ideal for budget-conscious automation workflows where native captions are sufficient for analysis.

How Claude Video Processes Video Transcripts

Claude Video extracts spoken content through two distinct pipelines. The native captions pipeline queries metadata via yt-dlp to retrieve existing VTT subtitle files without downloading the full video. The Whisper transcription pipeline sends audio to external APIs (OpenAI or Groq) when captions are unavailable, incurring usage fees per audio minute.

According to the source code in [skills/watch/scripts/watch.py](https://github.com/bradautomates/claude-video/blob/main/skills/watch/scripts/watch.py), the application checks for captions at lines 98-104 via the fetch_captions function before considering any AI transcription. When captions exist, they become the primary transcript source.

Disabling Whisper with the --no-whisper Flag

To eliminate all Whisper-related costs, invoke the watch skill with the --no-whisper command-line argument. This flag forces Claude Video to skip the Whisper transcription step entirely, restricting the pipeline to caption-only extraction.

The decision logic resides in lines 239-251 of watch.py, where the application evaluates whether to fall back to Whisper. When --no-whisper is present, this fallback path is disabled. If no captions are found, the system returns frames-only output rather than attempting paid transcription, as noted in line 381.

Caption Extraction Implementation

The fetch_captions function interfaces with yt-dlp to identify available subtitle tracks. This process extracts only the text metadata, avoiding the bandwidth and storage costs of full video downloads. The implementation in [skills/watch/scripts/download.py](https://github.com/bradautomates/claude-video/blob/main/skills/watch/scripts/download.py) handles the VTT retrieval without invoking any external AI services.

Practical Usage Examples

Run Claude Video in captions-only mode with the following command structure:

python -m skills.watch.scripts.watch \
    https://www.youtube.com/watch?v=example_id \
    --no-whisper

When captions are available, the output indicates the free source:


[watch] checking metadata/captions via yt-dlp…
[watch] using captions (via captions)
[watch] transcript source: captions

If the video lacks native captions, the system defaults to visual analysis only:


[watch] checking metadata/captions via yt-dlp…
[watch] no captions found – returning frames only

You can combine frame extraction with captions-only mode for multimodal analysis:

python -m skills.watch.scripts.watch \
    https://youtu.be/example \
    --frames \
    --no-whisper

Key Source Files

Understanding the implementation requires examining these specific modules:

Summary

  • Use the --no-whisper flag to disable AI transcription and avoid API costs.
  • Captions are extracted via yt-dlp metadata queries, requiring no external AI services.
  • When captions are unavailable, the system returns frames-only instead of falling back to paid transcription.
  • Source logic resides primarily in skills/watch/scripts/watch.py at lines 98-104 and 239-251.

Frequently Asked Questions

What happens if I use --no-whisper but the video has no captions?

Claude Video returns frames-only output, extracting visual frames for analysis while omitting the transcript entirely. It does not attempt to transcribe the audio, ensuring zero Whisper API costs.

Does captions-only mode affect video download speed?

Yes, caption extraction is significantly faster because it retrieves only VTT metadata via yt-dlp rather than downloading the full video file or processing audio through an AI model. This reduces both bandwidth usage and processing time.

Can I use --no-whisper with local video files?

The --no-whisper flag works with any video source, but local files without embedded subtitle tracks will result in frames-only output unless external caption files are provided. The tool prioritizes native captions over transcription regardless of the video source.

Is there a way to force captions-only mode without passing the flag every time?

Currently, the repository requires explicit flag invocation per command. You can create wrapper scripts or shell aliases that include --no-whisper by default to ensure consistent cost-saving behavior across your workflow.

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 →