meeting-whisperer
v0.1.0
Published
CLI tool that transcribes audio/video files using AssemblyAI's API and outputs formatted markdown transcripts
Maintainers
Readme
Meeting Whisperer
A powerful CLI tool that transcribes audio and video files using AssemblyAI's API and outputs beautifully formatted markdown transcripts with speaker identification.
Features
- 🎯 Speaker Diarization: Automatically detects and separates different speakers
- 🏷️ Interactive Speaker Labeling: Identify speakers with contextual examples
- 📝 Markdown Output: Clean, formatted transcripts ready for documentation
- 💾 Resume Capability: Gracefully handle interruptions and resume processing
- 🔄 Progress Tracking: Visual feedback during transcription process
- 🔐 Secure API Key Storage: Safely store your AssemblyAI credentials
Installation
From npm (when published)
npm install -g meeting-whispererFrom source
git clone <repository-url>
cd meeting-whisperer
npm install
npm run build
npm linkUsage
Transcribe an audio/video file
meeting-whisperer transcribe /path/to/your/audio-file.mp4Supported formats: MP3, MP4, WAV, M4A, FLAC, and many more.
View help
meeting-whisperer --helpmeeting-whisperer help transcribeRemove stored API key
meeting-whisperer remove-api-keyGetting Started
Get an AssemblyAI API Key
- Sign up at AssemblyAI
- Get your API key from the dashboard
First Run
- Run any transcribe command
- You'll be prompted to enter your API key
- The key is securely stored for future use
Transcribe Your File
meeting-whisperer transcribe my-meeting.mp4Speaker Identification
- The tool will show you examples of each detected speaker
- You can identify speakers, skip them, or try again later
- Context is provided to help you identify who's speaking
Get Your Transcript
- A markdown file will be created in the same directory as your audio file
- Format:
original-filename-transcript.md
Example Output
# Meeting Transcript
*File: team-meeting.mp4*
*Duration: 45 minutes*
*Processed: 2024-01-15 at 14:30*
## Speakers
- **Alice Johnson**
- **Bob Smith**
- **Speaker C** (unidentified)
## Transcript
[0:15] **Alice Johnson**: Welcome everyone to today's team meeting...
[2:45] **Bob Smith**: Thanks Alice. I wanted to start by discussing...Development
Prerequisites
- Node.js (v18 or higher)
- TypeScript
- npm
Setup
git clone <repository-url>
cd meeting-whisperer
npm installDevelopment Scripts
# Run in development mode
npm run dev /path/to/audio-file.mp4
# Build the project
npm run build
# Test the built version
node dist/index.js transcribe /path/to/audio-file.mp4Building
The project uses TypeScript and compiles to JavaScript in the dist/ folder:
npm run buildThis creates:
dist/index.js- Main CLI entry pointdist/assembly-whisperer.js- Core functionality- Type definitions and source maps
Publishing
Prepare for Publishing
- Update version in
package.json - Build the project:
npm run build - Test the build:
node dist/index.js --help
Publish to npm
# Login to npm (first time only)
npm login
# Publish (will run prepublishOnly script automatically)
npm publishThe prepublishOnly script automatically runs npm run build before publishing.
Verify Publication
# Check if published successfully
npm view meeting-whisperer
# Test global installation
npm install -g meeting-whisperer
meeting-whisperer --helpConfiguration
Configuration files are stored in ~/.assembly-whisperer/:
keys.json- API credentialstmp/draft.json- Resume data for interrupted sessions
Troubleshooting
"Invalid AssemblyAI API key"
- Verify your API key is correct
- Remove and re-enter:
meeting-whisperer remove-api-key
"Audio file does not exist"
- Check the file path is correct
- Ensure the file exists and is readable
"Failed to connect to AssemblyAI"
- Check your internet connection
- Verify AssemblyAI service status
Resume Interrupted Sessions
If the process is interrupted:
- Run the same command again
- Choose "Resume previous session?" when prompted
- The tool will continue where it left off
API Reference
AssemblyWhisperer Class
The main class exported from assembly-whisperer.js:
import { AssemblyWhisperer } from 'meeting-whisperer';
const whisperer = new AssemblyWhisperer();
await whisperer.run('/path/to/audio-file.mp4');How it works with npx
When you publish to npm, users can run your tool in several ways:
Global installation:
npm install -g meeting-whisperer meeting-whisperer transcribe audio.mp4Using npx (recommended):
npx meeting-whisperer transcribe audio.mp4Local installation:
npm install meeting-whisperer npx meeting-whisperer transcribe audio.mp4
The bin field in package.json tells npm to create a meeting-whisperer command that points to dist/index.js. The shebang #!/usr/bin/env node at the top of index.js tells the system to run it with Node.js.
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
License
ISC
Credits
Built with:
- AssemblyAI - Speech-to-text API
- Commander.js - CLI framework
- Inquirer - Interactive prompts
- Chalk - Terminal colors
- Ora - Loading spinners
