Skip to content
Back to skills

Deepgram Hello World

ASecurity

'Create a minimal working Deepgram transcription example.

  • 2,719 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 21, 2026
ai-agentstypescriptpythongobashtestingapi

Works with

  • claude code
  • cli
  • api

Security analysis

A92/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro scans all 2 files and shows the line behind each finding

Scanned September 21, 2026

npx -y skills add jeremylongshore/claude-code-plugins-plus --skill deepgram-hello-world --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Deepgram Hello World?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Deepgram Hello World
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/jeremylongshore-deepgram-hello-world-0ac8b62b/badge)](https://www.skillsdirectory.com/skills/jeremylongshore-deepgram-hello-world-0ac8b62b)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: deepgram-hello-world
description: 'Create a minimal working Deepgram transcription example.

  Use when starting a new Deepgram integration, testing your setup,

  or learning basic Deepgram API patterns.

  Trigger: "deepgram hello world", "deepgram example", "deepgram quick start",

  "simple transcription", "transcribe audio".

  '
allowed-tools: Read, Write, Edit
version: 1.13.0
license: MIT
author: Jeremy Longshore <jeremy@intentsolutions.io>
tags:
- saas
- deepgram
- api
- testing
- transcription
- quickstart
compatibility: Designed for Claude Code
---
# Deepgram Hello World

## Examples

Transcribe a short licensed fixture in the development project, verify the response shape and selected model/language, and remove the fixture according to the test policy. Keep only a correlation ID and aggregate result in logs; do not use a customer call or retain its transcript as a tutorial artifact.

## 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

- `npm install @deepgram/sdk` completed
- `DEEPGRAM_API_KEY` environment variable set
- Audio source: URL or local file (WAV, MP3, FLAC, OGG, M4A)

## Instructions

### Step 1: Transcribe Audio from URL (TypeScript)

```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

```typescript
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

```python
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}")
```

```python
# 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

```typescript
// 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 |
|-------|----------|-------|----------|
| `nova-3` | General — best accuracy | Fast | Highest |
| `nova-2` | General — proven stable | Fast | Very High |
| `nova-2-meeting` | Conference rooms, multiple speakers | Fast | High |
| `nova-2-phonecall` | Low-bandwidth phone audio | Fast | High |
| `base` | Cost-sensitive, high-volume | Fastest | Good |
| `whisper-large` | Multilingual (100+ languages) | Slow | High |

### Step 6: Run It

```bash
# 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 |
|-------|-------|----------|
| `401 Unauthorized` | Invalid API key | Check `DEEPGRAM_API_KEY` |
| `400 Bad Request` | Unsupported audio format | Use WAV, MP3, FLAC, OGG, or M4A |
| Empty transcript | No speech in audio | Verify audio has audible speech |
| `ENOTFOUND` | URL not reachable | Check audio URL is publicly accessible |
| `Cannot find module '@deepgram/sdk'` | SDK not installed | Run `npm install @deepgram/sdk` |

## Resources

- [Pre-recorded Audio Guide](https://developers.deepgram.com/docs/pre-recorded-audio)
- [Model Options](https://developers.deepgram.com/docs/model)
- [Smart Formatting](https://developers.deepgram.com/docs/smart-format)
- [Sample Audio Files](https://static.deepgram.com/examples/)

## Next Steps

Proceed to `deepgram-core-workflow-a` for production transcription patterns or `deepgram-core-workflow-b` for live streaming.

Files in this skill

  • SKILL.md5.8 KB
  • references/extended-examples.md1.4 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.