What Video Sources Are Supported by Claude Video? A Complete Guide

Claude Video supports any video source that yt-dlp can download—including YouTube, TikTok, Vimeo, X (Twitter), Instagram, Loom, and Twitch—plus local files in formats like MP4, MKV, and MOV.

The bradautomates/claude-video repository provides a powerful /watch skill that analyzes video content through Claude AI. Understanding what video sources are supported by Claude Video is essential for leveraging its full capabilities, as the tool accepts both public URLs and local file paths through a unified ingestion pipeline.

How Claude Video Handles Video Ingestion

The /watch skill uses a two-path ingestion system defined in skills/watch/scripts/download.py. When you provide a source, the code first checks whether the input is a URL using an is_url validation function. If the input passes this check, the skill routes the request to the download_url function (lines 20-27), which delegates the actual downloading to yt-dlp.

For local file paths that fail the URL check, the skill resolves the path directly and skips the download phase. This architecture allows Claude Video to handle virtually any video source without requiring platform-specific integration code.

Explicitly Supported Public Platforms

While the underlying yt-dlp library supports hundreds of sites, the Claude Video skill contract in skills/watch/SKILL.md (lines 108-112) explicitly documents the most common platforms for user clarity:

  • YouTube: Standard youtube.com and youtu.be URLs
  • Vimeo: Direct vimeo.com links
  • TikTok: Short-form video URLs including user profiles and specific videos
  • X (formerly Twitter): Video tweets and native clips
  • Instagram: Reels and IGTV content
  • Loom: Screen-recording share links
  • Twitch: Clip URLs from the clips.twitch.tv domain

These platforms are tested and called out specifically in the project README (README.md, lines 45-46), though they represent only a subset of the actual capabilities.

Local Video File Formats

Beyond web URLs, Claude Video accepts local video files with supported container formats. The ingestion pipeline recognizes standard video extensions including:

  • .mp4 and .m4v (MPEG-4)
  • .mkv (Matroska)
  • .webm (WebM)
  • .mov (QuickTime)
  • .avi (Audio Video Interleave)
  • .flv (Flash Video)
  • .wmv (Windows Media Video)

When processing local files, the skill bypasses the download_url function and proceeds directly to frame extraction using ffmpeg, as implemented in skills/watch/scripts/frames.py.

The Full yt-dlp Ecosystem

Because Claude Video delegates URL downloading to yt-dlp, it inherits support for hundreds of additional platforms without code modifications. This includes sites like Dailymotion, Facebook, Reddit, and many regional streaming services.

According to the source code, if yt-dlp can extract a video stream from a URL, Claude Video can process it. The skill does not maintain an allowlist of domains; instead, it relies on yt-dlp's internal extractors to handle site-specific logic.

Usage Examples for Each Source Type

The following examples demonstrate the /watch command syntax for various supported sources:


# YouTube (most common)

/watch https://youtu.be/dQw4w9WgXcQ "What happens at the 30-second mark?"

# Vimeo

/watch https://vimeo.com/12345678 "Summarize the video."

# TikTok

/watch https://www.tiktok.com/@user/video/9876543210 "Explain the joke."

# X (Twitter) clip

/watch https://twitter.com/user/status/135791113 "What is shown in the last 5 seconds?"

# Instagram Reel

/watch https://www.instagram.com/reel/CabcDeFGHIJ/ "Describe the visual style."

# Loom screen-recording

/watch https://www.loom.com/share/abcdef123456 "Where does the error occur?"

# Twitch clip

/watch https://clips.twitch.tv/UniqueClipName "What game is being played?"

# Local file

/watch ~/Downloads/presentation.mov "What slides appear around 2:15?"

All examples follow the pattern: source (URL or local path) followed by an optional question. Additional flags like --detail, --start, and --end can be appended as needed.

Technical Implementation and Fallbacks

The video processing pipeline is orchestrated by skills/watch/scripts/watch.py, which coordinates between download.py, frames.py, and skills/watch/scripts/transcribe.py.

If yt-dlp fails to locate a video or its captions, the skill automatically falls back to the Whisper transcription pipeline (or returns frames only when --no-whisper is used). This ensures that even if a platform changes its API or caption format, Claude Video can still extract visual information and audio transcription.

Before processing begins, skills/watch/scripts/setup.py runs pre-flight checks to ensure yt-dlp, ffmpeg, and optional Whisper API keys are available.

Summary

  • Claude Video supports any URL compatible with yt-dlp, including YouTube, TikTok, Vimeo, X, Instagram, Loom, and Twitch.
  • Local video files in formats like MP4, MKV, WEBM, MOV, AVI, FLV, and WMV are accepted via direct path resolution.
  • The ingestion logic in download.py distinguishes between URLs and local paths using the is_url check before calling download_url.
  • Hundreds of additional platforms work through yt-dlp integration without requiring code changes.
  • Automatic fallback to Whisper transcription occurs when native captions are unavailable.

Frequently Asked Questions

Does Claude Video support TikTok videos?

Yes, Claude Video explicitly supports TikTok URLs. The skill can download and analyze TikTok content using yt-dlp's TikTok extractor, processing both the video frames and available captions or audio transcription.

Can I analyze video files stored locally on my machine?

Yes, Claude Video accepts local file paths for video files in supported formats including MP4, MKV, MOV, and WEBM. Simply provide the absolute or relative path to the file instead of a URL, and the skill will process it directly without downloading.

What happens if I try to use a video from an unsupported website?

If yt-dlp supports the site, Claude Video will likely work even if not explicitly listed. However, if yt-dlp cannot extract the video, the skill will fail gracefully or fall back to frame-only analysis if the --no-whisper flag is used, though transcription won't be available without Whisper fallback.

Does Claude Video require captions to work?

No, captions are not required. When native captions are unavailable, the skill automatically falls back to OpenAI's Whisper for audio transcription, or can operate in visual-only mode if Whisper is disabled. This ensures analysis capability across all supported video sources regardless of caption availability.

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 →