Open source · Local first · MIT

Turn videos into timestamped notes—locally.

A caption-first CLI and Codex skill for YouTube, Bilibili, TED, and other yt-dlp-supported videos. Build traceable transcripts, grounded AI summaries, searchable HTML reports, and optional Notion or Obsidian entries.

A real video-to-notes run showing a TED video and timestamped output Real TED run captions → transcript → report

Built for traceability

Useful notes without losing the source.

Long videos are hard to revisit. This workflow keeps the transcript, summary, timestamps, source metadata, and final report together in one local workspace.

Use existing captions first

Prefer manual or automatic captions instead of spending time and compute on unnecessary transcription.

Fall back to local Whisper

When captions are missing or unsuitable, transcribe on your own machine with a backend selected for the available hardware.

Keep every claim reviewable

Ground summaries in the full transcript and preserve clickable timestamps so key points can be checked against the original video.

One repeatable workflow

From link to knowledge base.

The CLI prepares trustworthy local artifacts; Codex or another agent can turn the transcript into a grounded summary and subject tags.

Step 01

Fetch

Read video metadata and look for the best available captions.

Step 02

Transcribe

Use local Whisper only when a usable caption track is unavailable.

Step 03

Summarize

Create timestamped notes and topic tags from the complete transcript.

Step 04

Publish

Keep a local HTML report or send the result to Notion or Obsidian.

Local-first, stated precisely

Your workspace remains the source of truth.

Transcripts, metadata, summaries, tags, and HTML reports live in folders you control. Local Whisper keeps fallback transcription on-device. If you ask an external AI agent to write the summary, that agent's own data policy still applies.

  • No mandatory transcription APICaption-first, then local Whisper.
  • Inspect the raw artifactsPlain text, JSON, Markdown, and HTML.
  • Choose the destinationLocal dashboard, Notion, or Obsidian.

Flexible outputs

Use the notes where you already work.

Process once, then keep the result local or publish it into an existing knowledge system without losing the original transcript and source metadata.

Searchable HTML

A browser-readable report plus a local dashboard for every processed video.

Notion database

Store summaries, timestamps, tags, source details, and full transcripts.

Obsidian vault

Publish Markdown notes with frontmatter and maintain a dashboard note.

Real output

See the public Notion example.

The demo database contains YouTube and Bilibili reports produced from different transcript sources, with Chinese summaries, key points, and complete transcripts.

Open the Notion demo
Public Notion database containing YouTube and Bilibili video reports

Product walkthroughs

Watch the complete flow.

Both walkthroughs use a real TED run and show how the workflow moves from source captions to local reports and a searchable index.

Quick install

Start with one video link.

Clone the repository, run the bootstrap installer, choose the usual language, Whisper fallback, and output environment, then process a video.

Full installation guide
git clone https://github.com/KIRVO-REPORTING/video-to-notes.git
cd video-to-notes
./install.sh

video-to-notes configure
video-to-notes process "VIDEO_URL"

Requires Python 3.10+. YouTube also requires Deno 2.3+ or Node.js 22+. Windows installation is documented in the repository.

Questions

Before you install.

Short answers to the decisions that most affect privacy, speed, and output.

Does every video run through Whisper?

No. The workflow prefers usable manual or automatic captions. Local Whisper is the fallback when captions are missing, unsuitable, or explicitly bypassed.

Does the CLI call an external AI summarization API?

The CLI prepares transcripts and reports but does not require a built-in external summarization service. Codex or another configured agent can read the transcript and write the summary, subject to that agent's own data policy.

Which video platforms are supported?

YouTube, Bilibili, TED, and other URLs supported by yt-dlp. Availability still depends on the source, access restrictions, and the user's local setup.

Can I keep everything out of Notion and Obsidian?

Yes. The local environment produces a browser-readable report and searchable dashboard. Notion and Obsidian are optional destinations.

What does each processed video contain?

A typical folder includes source metadata, a transcript, a grounded Markdown summary, subject tags, and an HTML report with links back to source timestamps.