{"_id":"@adamhancock/transcribe-cli","_rev":"5-2d8bd28050fecbce62d106ad12f69318","name":"@adamhancock/transcribe-cli","dist-tags":{"latest":"1.0.4"},"versions":{"1.0.0":{"name":"@adamhancock/transcribe-cli","version":"1.0.0","keywords":["transcription","whisper","ollama","video","audio","summarization","cli"],"author":{"name":"Adam Hancock"},"license":"MIT","_id":"@adamhancock/transcribe-cli@1.0.0","maintainers":[{"name":"adam1571","email":"adammhancock@gmail.com"}],"homepage":"https://github.com/adamhancock/transcribe-cli#readme","bugs":{"url":"https://github.com/adamhancock/transcribe-cli/issues"},"bin":{"transcribe":"dist/index.js"},"dist":{"shasum":"660f36ca4019487f7115c5885df40e6af0f79afc","tarball":"https://registry.npmjs.org/@adamhancock/transcribe-cli/-/transcribe-cli-1.0.0.tgz","fileCount":6,"integrity":"sha512-HwEa+f0YevY04FbM4RzMa3dgSQt7ap8EuR0WJmsIy4tB+ErXJ436qd9krUM9WOOdERW64xwvKolWF62g1eYR0A==","signatures":[{"sig":"MEUCIQC8ZgrKVNrWJ8tEL9Lv4iVGrkNSlmmw8e10TTaxFTXL+wIgY0qfzzlPFz+xm9ilTa8HyANL4vKp6s7t5fzeGbDXp+8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16786},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"65e882e40987fde202c9bfd91bf9987c523e2a5d","scripts":{"dev":"tsx src/index.ts","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"adam1571","email":"adammhancock@gmail.com"},"repository":{"url":"git+https://github.com/adamhancock/transcribe-cli.git","type":"git"},"_npmVersion":"10.9.2","description":"CLI tool for transcribing and summarizing MP4 recordings using Whisper and Ollama","directories":{},"_nodeVersion":"22.17.0","dependencies":{"zx":"^8.7.1","ora":"^8.2.0","axios":"^1.11.0","chalk":"^5.4.1","commander":"^14.0.0","fluent-ffmpeg":"^2.1.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","typescript":"^5.8.3","@types/node":"^24.1.0","@types/fluent-ffmpeg":"^2.1.27"},"_npmOperationalInternal":{"tmp":"tmp/transcribe-cli_1.0.0_1753783570552_0.640817538009181","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@adamhancock/transcribe-cli","version":"1.0.1","keywords":["transcription","whisper","ollama","video","audio","summarization","cli"],"author":{"name":"Adam Hancock"},"license":"MIT","_id":"@adamhancock/transcribe-cli@1.0.1","maintainers":[{"name":"adam1571","email":"adammhancock@gmail.com"}],"homepage":"https://github.com/adamhancock/transcribe-cli#readme","bugs":{"url":"https://github.com/adamhancock/transcribe-cli/issues"},"bin":{"transcribe":"dist/index.js"},"dist":{"shasum":"adafeced01f38c0f2fcaf2fd5630641a74ae669b","tarball":"https://registry.npmjs.org/@adamhancock/transcribe-cli/-/transcribe-cli-1.0.1.tgz","fileCount":6,"integrity":"sha512-1b4m/uBM0roPFbHR9LOJhqOE41y/2bHTLEHm+E8IlacqoWG0NIVZvgGkNJtpHavY3E5eeTBCoP+efakf2aqlwg==","signatures":[{"sig":"MEUCIQDE3WAWoKSvUJmL8Oz277mTiprg8VEGNLh7KOB1dg8iCwIgXWQb/bNsXnPDSjE1pZ14rAIMAK/dIqjpZQG95edMcSc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":19075},"main":"dist/index.js","type":"module","_from":"file:adamhancock-transcribe-cli-1.0.1.tgz","engines":{"node":">=18.0.0"},"scripts":{"dev":"tsx src/index.ts","build":"tsc","start":"node dist/index.js"},"_npmUser":{"name":"adam1571","email":"adammhancock@gmail.com"},"_resolved":"/private/var/folders/5m/cqd8053169nb_qry9tjsrwdc0000gn/T/6ee27bdceb737fecd684462b67116c12/adamhancock-transcribe-cli-1.0.1.tgz","_integrity":"sha512-1b4m/uBM0roPFbHR9LOJhqOE41y/2bHTLEHm+E8IlacqoWG0NIVZvgGkNJtpHavY3E5eeTBCoP+efakf2aqlwg==","repository":{"url":"git+https://github.com/adamhancock/transcribe-cli.git","type":"git"},"_npmVersion":"10.9.2","description":"CLI tool for transcribing and summarizing MP4 recordings using Whisper and Ollama","directories":{},"_nodeVersion":"22.17.0","dependencies":{"zx":"^8.7.1","ora":"^8.2.0","axios":"^1.11.0","chalk":"^5.4.1","commander":"^14.0.0","fluent-ffmpeg":"^2.1.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","typescript":"^5.8.3","@types/node":"^24.1.0","@types/fluent-ffmpeg":"^2.1.27"},"_npmOperationalInternal":{"tmp":"tmp/transcribe-cli_1.0.1_1753783738054_0.7919307039573711","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@adamhancock/transcribe-cli","version":"1.0.2","keywords":["transcription","whisper","ollama","video","audio","summarization","cli"],"author":{"name":"Adam Hancock"},"license":"MIT","_id":"@adamhancock/transcribe-cli@1.0.2","maintainers":[{"name":"adam1571","email":"adammhancock@gmail.com"}],"homepage":"https://github.com/adamhancock/transcribe-cli#readme","bugs":{"url":"https://github.com/adamhancock/transcribe-cli/issues"},"bin":{"transcribe":"dist/index.js"},"dist":{"shasum":"38b5a6bb7633d9035b7dabf28290b9c6405b8124","tarball":"https://registry.npmjs.org/@adamhancock/transcribe-cli/-/transcribe-cli-1.0.2.tgz","fileCount":6,"integrity":"sha512-vWPyj6IjLebEnWp5+/JMuxBlbQfN0xcBYvsQJYaSowOeKyoaKxZSeZIM05yPTde4tAOcl4G+UAAFOjMJ3Q4kPw==","signatures":[{"sig":"MEQCIA3QemnhTUZuZnzzbiH43OV+9GefdZPrqm43Hikm5jJ6AiBijWQef2q5WZm8bYF0RQSiSnLPhG1QNFXOcfMzgzCWBA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":41933},"main":"dist/index.js","type":"module","_from":"file:adamhancock-transcribe-cli-1.0.2.tgz","engines":{"node":">=18.0.0"},"scripts":{"dev":"tsx src/index.ts","build":"tsc","start":"node dist/index.js"},"_npmUser":{"name":"adam1571","email":"adammhancock@gmail.com"},"_resolved":"/private/var/folders/5m/cqd8053169nb_qry9tjsrwdc0000gn/T/c80d5c004ab76bec0fc37d4113232a18/adamhancock-transcribe-cli-1.0.2.tgz","_integrity":"sha512-vWPyj6IjLebEnWp5+/JMuxBlbQfN0xcBYvsQJYaSowOeKyoaKxZSeZIM05yPTde4tAOcl4G+UAAFOjMJ3Q4kPw==","repository":{"url":"git+https://github.com/adamhancock/transcribe-cli.git","type":"git"},"_npmVersion":"10.9.2","description":"CLI tool for transcribing and summarizing MP4 recordings using Whisper and Ollama","directories":{},"_nodeVersion":"22.17.0","dependencies":{"zx":"^8.7.1","ora":"^8.2.0","axios":"^1.11.0","chalk":"^5.4.1","commander":"^14.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","typescript":"^5.8.3","@types/node":"^24.1.0"},"_npmOperationalInternal":{"tmp":"tmp/transcribe-cli_1.0.2_1753794405785_0.46166490890305845","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@adamhancock/transcribe-cli","version":"1.0.3","keywords":["transcription","whisper","ollama","video","audio","summarization","cli"],"author":{"name":"Adam Hancock"},"license":"MIT","_id":"@adamhancock/transcribe-cli@1.0.3","maintainers":[{"name":"adam1571","email":"adammhancock@gmail.com"}],"homepage":"https://github.com/adamhancock/transcribe-cli#readme","bugs":{"url":"https://github.com/adamhancock/transcribe-cli/issues"},"bin":{"transcribe":"dist/index.js"},"dist":{"shasum":"758bcf111b3b7e8c4caa248fa90b936ac1ea5e5b","tarball":"https://registry.npmjs.org/@adamhancock/transcribe-cli/-/transcribe-cli-1.0.3.tgz","fileCount":6,"integrity":"sha512-1hF7wlSy5OxE1/pOU0KjyRHjLmkWiowAvl9tk82MiFmRVNt8Vd8p7Y+UOLm+YmjvvpmN9Vp7Qa7hVirH7A7vKg==","signatures":[{"sig":"MEQCIH+xkoWR2rWmD2yb5+0R12bNywkCE7riKwLQFLiFx2RrAiBcd3pLrMWTEAVcDwVsSeUU/XyZNW6Pm743hQRwG5SHmQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50790},"main":"dist/index.js","type":"module","_from":"file:adamhancock-transcribe-cli-1.0.3.tgz","engines":{"node":">=18.0.0"},"scripts":{"dev":"tsx src/index.ts","build":"tsc","start":"node dist/index.js"},"_npmUser":{"name":"adam1571","email":"adammhancock@gmail.com"},"_resolved":"/private/var/folders/5m/cqd8053169nb_qry9tjsrwdc0000gn/T/bfed3c86d100dccd09edfc579585f45e/adamhancock-transcribe-cli-1.0.3.tgz","_integrity":"sha512-1hF7wlSy5OxE1/pOU0KjyRHjLmkWiowAvl9tk82MiFmRVNt8Vd8p7Y+UOLm+YmjvvpmN9Vp7Qa7hVirH7A7vKg==","repository":{"url":"git+https://github.com/adamhancock/transcribe-cli.git","type":"git"},"_npmVersion":"10.9.2","description":"CLI tool for transcribing and summarizing MP4 recordings using Whisper and Ollama","directories":{},"_nodeVersion":"22.17.0","dependencies":{"zx":"^8.7.1","ora":"^8.2.0","axios":"^1.11.0","chalk":"^5.4.1","commander":"^14.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","typescript":"^5.8.3","@types/node":"^24.1.0"},"_npmOperationalInternal":{"tmp":"tmp/transcribe-cli_1.0.3_1754071395839_0.8439537744226857","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@adamhancock/transcribe-cli","version":"1.0.4","description":"CLI tool for transcribing and summarizing MP4 recordings using Whisper and Ollama","main":"dist/index.js","type":"module","bin":{"transcribe":"dist/index.js"},"keywords":["transcription","whisper","ollama","video","audio","summarization","cli"],"author":{"name":"Adam Hancock"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/adamhancock/transcribe-cli.git"},"engines":{"node":">=18.0.0"},"dependencies":{"axios":"^1.11.0","chalk":"^5.4.1","commander":"^14.0.0","ora":"^8.2.0","zx":"^8.7.1"},"devDependencies":{"@types/node":"^24.1.0","tsx":"^4.20.3","typescript":"^5.8.3"},"scripts":{"build":"tsc","dev":"tsx src/index.ts","start":"node dist/index.js"},"_id":"@adamhancock/transcribe-cli@1.0.4","bugs":{"url":"https://github.com/adamhancock/transcribe-cli/issues"},"homepage":"https://github.com/adamhancock/transcribe-cli#readme","_integrity":"sha512-tWE+FNzD4ceoM63TnlRRBNcgrrxIEWRIpSY4dXKtXvDC2lyxDq3EDWmZuXQzx4lirRs6E2vNakt5MtkIlBD3sA==","_resolved":"/private/var/folders/5m/cqd8053169nb_qry9tjsrwdc0000gn/T/4b90e24256713bad5e52e9b30f5bfae1/adamhancock-transcribe-cli-1.0.4.tgz","_from":"file:adamhancock-transcribe-cli-1.0.4.tgz","_nodeVersion":"22.17.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-tWE+FNzD4ceoM63TnlRRBNcgrrxIEWRIpSY4dXKtXvDC2lyxDq3EDWmZuXQzx4lirRs6E2vNakt5MtkIlBD3sA==","shasum":"1d3caaf4393389b0d82d7f0dc85fbdceb59b05c2","tarball":"https://registry.npmjs.org/@adamhancock/transcribe-cli/-/transcribe-cli-1.0.4.tgz","fileCount":6,"unpackedSize":52652,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIBTtDSMJcRWdooOAUTHtnZCBRb1rGEE9ufPYe8FsKGEyAiEAj7RNji5wrK+A/A4lNAriWpXU/yKShR+VsNNPmbsudEc="}]},"_npmUser":{"name":"adam1571","email":"adammhancock@gmail.com"},"directories":{},"maintainers":[{"name":"adam1571","email":"adammhancock@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/transcribe-cli_1.0.4_1754071892684_0.2819544752039109"},"_hasShrinkwrap":false}},"time":{"created":"2025-07-29T10:06:10.451Z","modified":"2025-08-01T18:11:33.383Z","1.0.0":"2025-07-29T10:06:10.751Z","1.0.1":"2025-07-29T10:08:58.240Z","1.0.2":"2025-07-29T13:06:45.979Z","1.0.3":"2025-08-01T18:03:16.048Z","1.0.4":"2025-08-01T18:11:32.893Z"},"bugs":{"url":"https://github.com/adamhancock/transcribe-cli/issues"},"author":{"name":"Adam Hancock"},"license":"MIT","homepage":"https://github.com/adamhancock/transcribe-cli#readme","keywords":["transcription","whisper","ollama","video","audio","summarization","cli"],"repository":{"type":"git","url":"git+https://github.com/adamhancock/transcribe-cli.git"},"description":"CLI tool for transcribing and summarizing MP4 recordings using Whisper and Ollama","maintainers":[{"name":"adam1571","email":"adammhancock@gmail.com"}],"readme":"# Transcribe CLI\n\nA powerful TypeScript CLI tool for transcribing and summarizing MP4 recordings or VTT subtitle files using local models with synchronized audio and visual analysis.\n\n## Key Features\n\n- 🎙️ **Timestamped Transcription**: Full audio transcription with precise timestamps using Whisper\n- 📝 **VTT File Support**: Direct summarization of WebVTT subtitle files without transcription\n- 🎬 **Flexible Input**: Accepts MP4 videos, VTT subtitles, or both for combined analysis\n- 🧠 **Intelligent Frame Selection**: AI analyzes transcript to extract frames at meaningful moments with reasoning\n- 🖼️ **Context-Aware Frame Analysis**: Each frame is analyzed with awareness of previous frames\n- 🔄 **Synchronized Analysis**: Matches frame descriptions with relevant transcript segments\n- 📊 **Map-Reduce Summarization**: Uses map-reduce strategy for detailed, comprehensive summaries\n- 🎯 **Smart Model Selection**: Uses llava for visual analysis and llama3.2 for text summarization\n- ⚡ **Optimized Processing**: Parallel audio/frame extraction, sequential frame analysis for context\n\n## Prerequisites\n\n- Node.js 18+\n- FFmpeg installed\n  - macOS: `brew install ffmpeg`\n  - Ubuntu/Debian: `sudo apt update && sudo apt install ffmpeg`\n  - Windows: Download from [ffmpeg.org](https://ffmpeg.org/download.html)\n- Python & pip (for Whisper)\n  - macOS: `brew install python` (includes pip)\n  - Ubuntu/Debian: `sudo apt install python3-pip`\n  - Windows: Download from [python.org](https://python.org) (includes pip)\n- OpenAI Whisper - runs locally for transcription\n  - Install: `pip install openai-whisper`\n  - Note: First run may download model files (~140MB for base model)\n- **Ollama** - for summarization and frame analysis\n  - Install: `curl -fsSL https://ollama.com/install.sh | sh`\n  - Runs automatically as a background service (port 11434)\n  - Default models (automatically pulled on first use):\n    - `llava` - for visual frame analysis (multimodal)\n    - `llama3.2` - for text summarization (map-reduce strategy)\n\n## How it works\n\n1. **Flexible Input Processing**:\n   - **MP4 Files**: Extracts audio, transcribes with Whisper, analyzes video frames\n   - **VTT Files**: Parses WebVTT subtitles directly for immediate summarization\n   - **Combined**: Use VTT for transcript + MP4 for visual frame analysis\n\n2. **Audio Extraction & Transcription** (for MP4): \n   - Extracts audio and transcribes with Whisper\n   - Produces timestamped segments (e.g., `[1:30] Speaker says...`)\n   - Captures precise timing for synchronization with frames\n\n3. **Intelligent Frame Selection** (when video available): \n   - AI analyzes transcript content to identify key moments\n   - Selects frames at meaningful timestamps with reasoning\n   - Shows why each moment was selected (e.g., \"Introduction\", \"Key demonstration\")\n   - Validates timestamps against actual video duration\n   - Falls back to content-based distribution if AI fails\n\n4. **Context-Aware Frame Analysis**: \n   - Uses `llava` model for multimodal visual understanding\n   - Analyzes frames sequentially to maintain narrative flow\n   - Each frame analysis includes:\n     - Visual description from the frame\n     - Context from previous frame\n     - Relevant transcript excerpt from that moment\n   \n5. **Map-Reduce Summarization**: \n   - **Map Phase**: Breaks transcript into chunks, extracts all details from each\n   - **Reduce Phase**: Synthesizes comprehensive summary with multiple sections\n   - Creates extremely detailed summaries including:\n     - **Meeting Overview**: Purpose, participants, context\n     - **Topic Breakdown**: Detailed analysis of each topic discussed\n     - **All Decisions**: Every decision made with context\n     - **Action Items**: Who, what, when for each task\n     - **Tools & Systems**: All platforms and tools mentioned\n     - **Technical Details**: Specifications and configurations\n     - **Problems & Solutions**: Issues raised and resolutions\n     - **Next Steps**: Future plans and follow-ups\n\n## Installation\n\n### Using npx (no installation required)\n```bash\n# Transcribe MP4 video\nnpx @adamhancock/transcribe-cli video.mp4\n\n# Summarize VTT subtitle file\nnpx @adamhancock/transcribe-cli subtitles.vtt\n\n# Combine VTT transcript with MP4 video analysis\nnpx @adamhancock/transcribe-cli subtitles.vtt video.mp4\n```\n\n### Global installation\n```bash\nnpm install -g @adamhancock/transcribe-cli\n```\n\n### From source\n```bash\ngit clone https://github.com/adamhancock/transcribe-cli.git\ncd transcribe-cli\nnpm install\nnpm run build\nnpm link  # Makes 'transcribe' command available globally\n```\n\n## Usage\n\nBasic usage:\n```bash\n# Transcribe and summarize MP4 video\ntranscribe video.mp4\n\n# Summarize VTT subtitle file\ntranscribe meeting.vtt\n\n# Combine VTT transcript with MP4 video for frame analysis\ntranscribe meeting.vtt video.mp4\n```\n\nOptions:\n- `-o, --output <path>` - Output file path (default: input_transcript.txt)\n- `-a, --audio-only` - Only extract audio without transcription\n- `-t, --transcribe-only` - Only transcribe without summarization\n- `--host <host>` - Ollama API host (default: http://localhost:11434)\n- `--model <model>` - Ollama model name for both frame and text analysis (overrides defaults)\n- `--whisper-model <model>` - Whisper model size (default: base)\n- `--keep-audio` - Keep extracted audio file after processing\n- `--no-analyze-frames` - Disable frame extraction and analysis (enabled by default)\n- `--frame-interval <seconds>` - Seconds between frame extraction (default: 3)\n- `--max-frames <count>` - Maximum number of frames to extract (default: 30)\n- `--keep-frames` - Keep extracted frames after processing\n- `--save-timestamps` - Save timestamped transcript and frame data to JSON file\n- `--plain-transcript` - Save transcript without timestamps in output file\n\n## Examples\n\n```bash\n# Basic MP4 transcription with intelligent frame analysis\ntranscribe recording.mp4\n\n# Summarize a VTT subtitle file\ntranscribe meeting.vtt\n\n# Combine VTT subtitles with video for visual analysis\ntranscribe meeting.vtt recording.mp4\n\n# Quick transcription without analysis\ntranscribe recording.mp4 --transcribe-only\n\n# Extract more frames for detailed videos\ntranscribe recording.mp4 --max-frames 50\n\n# Use a faster Whisper model for quick results\ntranscribe recording.mp4 --whisper-model tiny\n\n# Use a larger Whisper model for better accuracy\ntranscribe recording.mp4 --whisper-model large\n\n# Save all artifacts for further processing\ntranscribe recording.mp4 --keep-audio --keep-frames --save-timestamps\n\n# Get plain transcript without timestamps\ntranscribe recording.mp4 --plain-transcript\n\n# Use different models for better summaries\ntranscribe meeting.vtt --model llama3.1  # More powerful model\n\n# Process MP4 without frame analysis (audio only)\ntranscribe recording.mp4 --no-analyze-frames\n\n# Custom output location\ntranscribe meeting.vtt -o ~/Documents/meeting-summary.txt\n```\n\n## Performance Tips\n\n- **Faster processing**: Use `--whisper-model tiny` for quick drafts\n- **Better accuracy**: Use `--whisper-model medium` or `large` for important content\n- **Reduce frames**: Lower `--max-frames` for faster analysis of long videos\n- **Vision models**: `llava` is default; try `bakllava` or `llava:13b` for better accuracy\n\n## Output Format\n\nThe tool provides multiple outputs:\n\n### Console Output\n- Progress indicators for each processing stage\n- Frame extraction with reasoning (e.g., `✓ Frame 1 at 0:00 - Introduction`)\n- Real-time analysis progress\n- Structured final summary\n\n### File Outputs\n1. **Main transcript file** (default: `video_transcript.txt`)\n   - Timestamped transcript (e.g., `[1:30] Speaker says...`)\n   - Comprehensive structured summary with sections\n   - Use `--plain-transcript` for transcript without timestamps\n\n2. **Timestamped data file** (optional: `video_timestamped.json`)\n   - Complete transcript with precise timestamps\n   - Frame analyses with timestamps and descriptions\n   - Frame extraction reasoning\n   - Useful for creating subtitles, chapters, or navigating content\n\n### Example Output\n\n```\nTranscript of presentation.mp4:\n\n[0:00] Welcome everyone to today's presentation on machine learning.\n[0:05] I'll be covering three main topics today...\n[0:12] First, let's understand what neural networks are...\n\n---\n\nSummary:\n\n## Overview\nThis video presents an introduction to machine learning concepts...\n\n## Main Topics Covered\n1. **Neural Networks Basics**: The speaker explains...\n2. **Training Process**: Demonstrates how models learn...\n3. **Practical Applications**: Shows real-world examples...\n\n## Key Points & Insights\n- Neural networks mimic human brain structure\n- Training requires large datasets and computational power\n- Applications range from image recognition to natural language\n\n## Visual Elements\n- Slide presentations with diagrams\n- Live coding demonstration\n- Results visualization graphs\n\n## Action Items or Next Steps\n- Practice with the provided code examples\n- Explore the recommended datasets\n- Join the community forum for questions\n```\n\n\n## Development\n\nRun directly with tsx:\n```bash\nnpm run dev -- video.mp4\n```\n\nBuild:\n```bash\nnpm run build\n```\n\nPublish to npm:\n```bash\nnpm version patch  # or minor/major\nnpm publish\n```","readmeFilename":"README.md"}