Skip to main content
NoteWise writes all generated files into the configured output directory (./output by default, overridden with -o / --output or the OUTPUT_DIR config key). Each video gets its own subdirectory named after the video title.

Standard output structure

For a single video or short videos that do not trigger chapter-aware processing:
output/
└── Video Title/
    ├── study_notes.md
    ├── quiz.md               (optional — requires --quiz)
    ├── transcript.txt        (optional — requires --export-transcript txt)
    └── transcript.json       (optional — requires --export-transcript json)

Chapter-aware output structure

When a video is longer than DEFAULT_CHAPTER_MIN_DURATION (3600 seconds / 1 hour) and has YouTube chapters defined, NoteWise generates one Markdown file per chapter instead of a single study_notes.md:
Chapter-aware video
output/
└── Long Course Title/
    ├── Chapter 01 - Introduction.md
    ├── Chapter 02 - Core Concepts.md
    ├── Chapter 03 - Advanced Topics.md
    └── ...
Chapter files are numbered with zero-padded two-digit prefixes (01, 02, …) and follow the actual chapter names from YouTube. Each file contains full study notes for that chapter only, generated independently.
Chapter-aware processing runs the chapters concurrently (up to MAX_CONCURRENT_CHAPTERS, default 3), which significantly reduces total wall-clock time for long courses.

File naming

Subdirectory and chapter file names are derived from the YouTube video title using the following rules:
  • Non-filesystem characters are removed or replaced with safe equivalents.
  • The resulting name is truncated to 100 characters (MAX_FILENAME_LENGTH).
  • Truncation preserves whole words where possible.
If two videos in the same batch produce the same sanitized title, NoteWise appends the YouTube video ID to disambiguate.

study_notes.md

The primary output. A structured hierarchical Markdown document covering the full content of the video (or chapter). Typical structure:
study_notes.md
# Video Title

## Overview
A concise summary of the video's subject and key argument.

## Key Concepts

### Concept Name
Definition and explanation. Examples drawn directly from the video content.

### Another Concept
...

## Detailed Notes

### Section Heading
In-depth explanation of ideas presented in this section of the video.

#### Sub-topic
Supporting detail, formulas, code examples, or step-by-step breakdowns as appropriate.

## Summary
Condensed recap of the most important takeaways.
The exact heading structure adapts to the density and organization of the source transcript. Dense technical content produces more levels of nesting and more code examples. Conversational content produces broader summaries.

quiz.md

Generated when --quiz is passed. Contains a set of multiple-choice questions based on the video content:
quiz.md
# Quiz: Video Title

## Question 1
What is the primary purpose of X?

A) First option  
B) Second option  
C) Third option  
D) Fourth option  

**Answer: B**

---

## Question 2
...
Each question has four answer options and a bolded correct answer on the line immediately following the options.

transcript.txt

Generated when --export-transcript txt is passed. Plain-text transcript with no timestamps — the raw spoken words from the video, one sentence or segment per line:
transcript.txt
Welcome to this lecture on distributed systems.
Today we'll cover the CAP theorem and its practical implications.
...

transcript.json

Generated when --export-transcript json is passed. Timestamped transcript in JSON format, preserving the start time (in seconds) of each segment:
transcript.json
[
  {
    "start": 0.0,
    "text": "Welcome to this lecture on distributed systems."
  },
  {
    "start": 4.2,
    "text": "Today we'll cover the CAP theorem and its practical implications."
  }
]
Each object in the array has two fields:
start
float
required
Segment start time in seconds from the beginning of the video.
text
string
required
The spoken text for this segment.

Portability and searchability

All output files are standard Markdown (.md). They have no dependency on NoteWise to read — open them in any text editor, Markdown renderer, note-taking app (Obsidian, Notion, Logseq), or version-control them alongside your other notes. Because the output directory structure mirrors the video title hierarchy, you can use standard filesystem tools to search across all your notes:
# Full-text search across all generated notes
grep -r "gradient descent" ./output/

# List all videos that have a quiz
find ./output -name "quiz.md"
NoteWise never modifies existing output files unless --force is passed. Re-running the same video without --force skips generation if a cached transcript already exists.

Build docs developers (and LLMs) love