# VTT to Markdown Skill

A Claude skill that converts VTT transcript files to clean Markdown format - no command-line knowledge required!

## Installation

The skill has been installed at: `~/.claude/skills/vtt-to-markdown.xml`

## How to Use

Simply tell Claude to use the skill:

```
Use the vtt-to-markdown skill to process my transcripts
```

or

```
/vtt-to-markdown
```

Claude will then:
1. Ask you for the VTT file path(s) or directory
2. Ask for the output filename
3. Ask for an optional document title
4. Process everything automatically
5. Show you the results

## What It Does

The skill automatically:
- ✅ Parses VTT transcript files
- ✅ Filters out administrative content and filler words
- ✅ Sorts sessions chronologically
- ✅ Generates clean Markdown without timestamps
- ✅ Reports statistics (files processed, entries kept, etc.)

## Example Workflow

**You say:**
> "Use the vtt-to-markdown skill"

**Claude asks:**
> Where are your VTT files located?
> - A single file: /path/to/transcript.vtt
> - Multiple files: file1.vtt file2.vtt file3.vtt
> - A directory: /path/to/transcripts/
>
> What should I name the output file? (Default: transcript.md)
>
> What title should the document have? (Default: Transcript)

**You provide:**
> `/Users/Seth/Downloads/constitutional-law-2026/zoom-transcripts/`
> `Module1.md`
> `Constitutional Law - Module 1`

**Claude processes and reports:**
> ✓ Processed 6 VTT files
>
> **Parsing:**
> - GMT20260120-144421_Recording.transcript.vtt → 479 entries
> - GMT20260121-162431_Recording.transcript.vtt → 502 entries
> - GMT20260122-150018_Recording.transcript.vtt → 414 entries
> - GMT20260127-145207_Recording.transcript.vtt → 467 entries
> - GMT20260128-162725_Recording.transcript.vtt → 501 entries
> - GMT20260129-144807_Recording.transcript.vtt → 579 entries
>
> **Filtering:**
> - Total entries: 2,942
> - Kept: 1,786 (60.7%)
> - Removed: 1,156 (39.3%)
>
> **Output:**
> - File: Module1.md
> - Size: 321 KB
> - Sessions: 6 (chronologically sorted)

## What Gets Filtered Out

The skill removes:
- Administrative content (attendance, office hours, scheduling)
- Filler words (yes, no, okay, um, etc.)
- Technical issues (Zoom problems, audio issues)
- Greetings without substance
- Navigation/computer interaction
- Incomplete fragments

## What Gets Kept

The skill preserves:
- Case discussions and legal principles
- Constitutional concepts and terminology
- Questions and answers about legal topics
- Teaching explanations and analysis
- All substantive content > 100 characters

## Output Format

The generated Markdown looks like:

```markdown
# Constitutional Law - Module 1
*Extracted from Zoom class recordings*
---

## Session: January 20, 2026
*Source: GMT20260120-144421_Recording.transcript.vtt*

**Seth Chandler**: Hi, I'm Professor Chandler, this is Constitutional Law.

**Seth Chandler**: We're going to start with Wickard v. Filburn...

---

## Session: January 21, 2026
*Source: GMT20260121-162431_Recording.transcript.vtt*

**Seth Chandler**: Let's continue our discussion of the Commerce Clause...
```

## Benefits Over Command-Line

- ✅ No Python installation required
- ✅ No command-line knowledge needed
- ✅ Interactive - Claude asks you what you need
- ✅ Clear feedback and error messages
- ✅ Works entirely in Claude's environment
- ✅ Can handle any number of files or directories

## Alternative: Python Script

If you prefer command-line control, you can also use the Python script directly:

```bash
python3 vtt_to_markdown.py /path/to/transcripts/ output.md
```

See `README_WORKFLOW.md` for full Python documentation.

## Troubleshooting

**Skill not found:**
- Make sure the skill file is at `~/.claude/skills/vtt-to-markdown.xml`
- Try restarting your Claude session

**No files found:**
- Check that your VTT files have `.vtt` extension
- Verify the directory path is correct
- Use absolute paths (e.g., `/Users/Seth/...` not `~/...`)

**Filtering too aggressive:**
- The skill is optimized for constitutional law content
- If needed, ask Claude to adjust the filtering keywords
- Or use the Python script directly for full customization

## Support

For issues or customization:
- Ask Claude to modify the skill filtering rules
- Edit `~/.claude/skills/vtt-to-markdown.xml` directly
- Use the Python script in `vtt_to_markdown.py` for full control
