Claude-code-plugins-plus-skills deepgram-hello-world
install
source · Clone the upstream repo
git clone https://github.com/jeremylongshore/claude-code-plugins-plus-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/jeremylongshore/claude-code-plugins-plus-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/saas-packs/deepgram-pack/skills/deepgram-hello-world" ~/.claude/skills/jeremylongshore-claude-code-plugins-plus-skills-deepgram-hello-world && rm -rf "$T"
manifest:
plugins/saas-packs/deepgram-pack/skills/deepgram-hello-world/SKILL.mdsource content
Deepgram Hello World
Overview
Minimal working examples for Deepgram speech-to-text. Transcribe an audio URL in 5 lines with
createClient + listen.prerecorded.transcribeUrl. Includes local file transcription, Python equivalent, and Nova-3 model selection.
Prerequisites
completednpm install @deepgram/sdk
environment variable setDEEPGRAM_API_KEY- Audio source: URL or local file (WAV, MP3, FLAC, OGG, M4A)
Instructions
Step 1: Transcribe Audio from URL (TypeScript)
import { createClient } from '@deepgram/sdk'; const deepgram = createClient(process.env.DEEPGRAM_API_KEY!); async function main() { const { result, error } = await deepgram.listen.prerecorded.transcribeUrl( { url: 'https://static.deepgram.com/examples/Bueller-Life-moves-702702706.wav' }, { model: 'nova-3', // Latest model — best accuracy smart_format: true, // Auto-punctuation, paragraphs, numerals language: 'en', } ); if (error) throw error; const transcript = result.results.channels[0].alternatives[0].transcript; console.log('Transcript:', transcript); console.log('Confidence:', result.results.channels[0].alternatives[0].confidence); } main();
Step 2: Transcribe a Local File
import { createClient } from '@deepgram/sdk'; import { readFileSync } from 'fs'; const deepgram = createClient(process.env.DEEPGRAM_API_KEY!); async function transcribeFile(filePath: string) { const audio = readFileSync(filePath); const { result, error } = await deepgram.listen.prerecorded.transcribeFile( audio, { model: 'nova-3', smart_format: true, // Deepgram auto-detects format, but you can specify: mimetype: 'audio/wav', } ); if (error) throw error; console.log(result.results.channels[0].alternatives[0].transcript); } transcribeFile('./meeting-recording.wav');
Step 3: Python Equivalent
import os from deepgram import DeepgramClient, PrerecordedOptions client = DeepgramClient(os.environ["DEEPGRAM_API_KEY"]) # URL transcription url = {"url": "https://static.deepgram.com/examples/Bueller-Life-moves-702702706.wav"} options = PrerecordedOptions(model="nova-3", smart_format=True, language="en") response = client.listen.rest.v("1").transcribe_url(url, options) transcript = response.results.channels[0].alternatives[0].transcript print(f"Transcript: {transcript}") print(f"Confidence: {response.results.channels[0].alternatives[0].confidence}")
# Local file transcription with open("meeting.wav", "rb") as audio: source = {"buffer": audio.read(), "mimetype": "audio/wav"} response = client.listen.rest.v("1").transcribe_file(source, options) print(response.results.channels[0].alternatives[0].transcript)
Step 4: Add Features
// Enable diarization (speaker identification) const { result } = await deepgram.listen.prerecorded.transcribeUrl( { url: audioUrl }, { model: 'nova-3', smart_format: true, diarize: true, // Speaker labels utterances: true, // Turn-by-turn segments paragraphs: true, // Paragraph formatting } ); // Print speaker-labeled output if (result.results.utterances) { for (const utterance of result.results.utterances) { console.log(`Speaker ${utterance.speaker}: ${utterance.transcript}`); } }
Step 5: Explore Model Options
| Model | Use Case | Speed | Accuracy |
|---|---|---|---|
| General — best accuracy | Fast | Highest |
| General — proven stable | Fast | Very High |
| Conference rooms, multiple speakers | Fast | High |
| Low-bandwidth phone audio | Fast | High |
| Cost-sensitive, high-volume | Fastest | Good |
| Multilingual (100+ languages) | Slow | High |
Step 6: Run It
# TypeScript npx tsx hello-deepgram.ts # Python python hello_deepgram.py
Output
- Working transcription from URL or local file
- Printed transcript text with confidence score
- Optional: speaker-labeled utterances
Error Handling
| Error | Cause | Solution |
|---|---|---|
| Invalid API key | Check |
| Unsupported audio format | Use WAV, MP3, FLAC, OGG, or M4A |
| Empty transcript | No speech in audio | Verify audio has audible speech |
| URL not reachable | Check audio URL is publicly accessible |
| SDK not installed | Run |
Resources
Next Steps
Proceed to
deepgram-core-workflow-a for production transcription patterns or deepgram-core-workflow-b for live streaming.