Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/HUANGCHIHHUNGLeo/claude-real-video/llms.txt

Use this file to discover all available pages before exploring further.

By default, claude-real-video writes everything — frames, transcript, manifest — to ./crv-out. That folder is ephemeral: the next run overwrites it, and it lives outside your notes, outside your knowledge management system, outside anywhere you would naturally look for saved research. The --kb flag solves this by copying the completed analysis as a dated markdown note into any directory you already use.

Basic usage

Pass --kb with the path to any folder. The note is written there automatically when the pipeline finishes:
crv "https://youtu.be/..." --kb ~/notes
# → ~/notes/2025-01-15-dQw4w9WgXcQ.md
The filename follows the pattern YYYY-MM-DD-<slug>.md, where the date is today’s date (ISO format) and the slug is derived from the video source:
  • For URLs, the slug comes from the last path component of the URL (e.g. dQw4w9WgXcQ from https://youtu.be/dQw4w9WgXcQ).
  • For local files, the slug comes from the filename without its extension.
  • The slug is generated by replacing all non-alphanumeric characters (outside Unicode CJK ranges) with hyphens, capping at 60 characters, and stripping leading/trailing hyphens. This is exactly what save_to_kb() in core.py does:
    slug = re.sub(r"[^A-Za-z0-9一-鿿]+", "-", os.path.basename(src.rstrip("/")))[:60].strip("-") or "video"
    
The CJK range 一-鿿 is preserved so that Chinese, Japanese, and Korean titles produce readable slugs rather than a string of hyphens.

Combining with —why

The --why flag lets you tell the tool (and the LLM that reads the manifest) why you are watching the video. It is written into MANIFEST.txt as a viewing intent: line, focusing the model’s analysis on what matters to you instead of producing a generic summary. When you combine --why with --kb, the saved note includes that intent alongside the full manifest content — making it a reusable, focused research note rather than a generic transcript dump:
crv "https://youtu.be/..." \
  --why "find the pricing strategy" \
  --kb ~/obsidian/video-notes
The resulting note in ~/obsidian/video-notes/ will contain the manifest with the viewing intent: find the pricing strategy line at the top, so when you re-read the note later the analytical context is preserved.

What the note contains

The note is a standard markdown file. Its structure is:
# Video analysis — https://youtu.be/...

```
viewing intent: find the pricing strategy
(reader: analyse the frames and transcript with this intent as the lens — surface what serves it first, skip what doesn't)

source: https://youtu.be/...
duration: 312s | frames: 47 (scene-change + density floor, deduped from 198 extracted)
frames dir: crv-out/frames
transcript: crv-out/transcript.txt (from the video's own subtitles)
--- transcript ---
Hello, and welcome to today's session on go-to-market strategy...
```
The full content of MANIFEST.txt is embedded verbatim inside a fenced code block, so it renders cleanly in any markdown viewer while remaining readable as plain text.

Supported knowledge bases

--kb works with any directory on your local filesystem. It does not integrate with any proprietary API — the output is a plain .md file:
Knowledge baseUsage
Obsidian vault--kb ~/obsidian/video-notes
Logseq graph--kb ~/logseq/pages
Plain notes folder--kb ~/notes
Notion local export--kb ~/notion-export/research
Any directory--kb /path/to/any/folder
The folder is created automatically if it does not exist (os.makedirs(kb_dir, exist_ok=True)).
Combine --why and --kb for the most reusable notes. The --why text becomes the analytical lens in MANIFEST.txt, so when you paste the note into an LLM later — days or weeks after the original run — the model immediately knows what to look for rather than producing a generic summary from scratch.

Build docs developers (and LLMs) love