home / skills / jeremylongshore / claude-code-plugins-plus-skills / deepgram-hello-world

This skill guides you through a minimal Deepgram transcription hello world setup to validate API access and produce a transcript.

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

Review the files below or copy the command above to add this skill to your agents.

Files (1)
SKILL.md
3.7 KB
---
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 with phrases like "deepgram hello world", "deepgram example",
  "deepgram quick start", "simple transcription", "transcribe audio".
allowed-tools: Read, Write, Edit
version: 1.0.0
license: MIT
author: Jeremy Longshore <[email protected]>
---

# Deepgram Hello World

## Overview
Minimal working example demonstrating core Deepgram speech-to-text functionality.

## Prerequisites
- Completed `deepgram-install-auth` setup
- Valid API credentials configured
- Audio file for transcription (or use URL)

## Instructions

### Step 1: Create Entry File
Create a new file for your hello world example.

### Step 2: Import and Initialize Client
```typescript
import { createClient } from '@deepgram/sdk';

const deepgram = createClient(process.env.DEEPGRAM_API_KEY);
```

### Step 3: Transcribe Audio from URL
```typescript
async function transcribe() {
  const { result, error } = await deepgram.listen.prerecorded.transcribeUrl(
    { url: 'https://static.deepgram.com/examples/nasa-podcast.wav' },
    { model: 'nova-2', smart_format: true }
  );

  if (error) throw error;
  console.log(result.results.channels[0].alternatives[0].transcript);
}

transcribe();
```

## Output
- Working code file with Deepgram client initialization
- Successful transcription response
- Console output showing transcribed text

## Error Handling
| Error | Cause | Solution |
|-------|-------|----------|
| Import Error | SDK not installed | Verify with `npm list @deepgram/sdk` |
| Auth Error | Invalid credentials | Check environment variable is set |
| Audio Format Error | Unsupported format | Use WAV, MP3, FLAC, or OGG |
| URL Not Accessible | Cannot fetch audio | Ensure URL is publicly accessible |

## Examples

### TypeScript - Transcribe 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/nasa-podcast.wav' },
    { model: 'nova-2', smart_format: true }
  );

  if (error) throw error;
  console.log('Transcript:', result.results.channels[0].alternatives[0].transcript);
}

main().catch(console.error);
```

### TypeScript - Transcribe 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-2', smart_format: true, mimetype: 'audio/wav' }
  );

  if (error) throw error;
  console.log('Transcript:', result.results.channels[0].alternatives[0].transcript);
}

transcribeFile('./audio.wav');
```

### Python Example
```python
from deepgram import DeepgramClient, PrerecordedOptions
import os

deepgram = DeepgramClient(os.environ.get('DEEPGRAM_API_KEY'))

options = PrerecordedOptions(
    model="nova-2",
    smart_format=True,
)

url = {"url": "https://static.deepgram.com/examples/nasa-podcast.wav"}
response = deepgram.listen.rest.v("1").transcribe_url(url, options)

print(response.results.channels[0].alternatives[0].transcript)
```

## Resources
- [Deepgram Getting Started](https://developers.deepgram.com/docs/getting-started)
- [Deepgram API Reference](https://developers.deepgram.com/reference)
- [Deepgram Models](https://developers.deepgram.com/docs/models)

## Next Steps
Proceed to `deepgram-local-dev-loop` for development workflow setup.

Overview

This skill provides a minimal, runnable Deepgram transcription example for getting started quickly. It shows how to initialize the Deepgram client, transcribe audio from a URL or local file, and print the resulting transcript. Use it to verify credentials and basic API integration before building more complex flows.

How this skill works

The skill demonstrates creating a Deepgram client with an API key, then calling prerecorded transcription endpoints for URL or file inputs. It extracts the primary transcript from the API response and prints it to the console. Basic error checks for SDK import, authentication, and audio access are included.

When to use it

  • When starting a new Deepgram integration to validate setup and credentials.
  • When testing transcription with a known audio sample or public URL.
  • When learning core Deepgram API patterns and response structure.
  • When debugging audio access or format issues before production work.

Best practices

  • Set the DEEPGRAM_API_KEY in environment variables instead of hardcoding keys.
  • Start with a public sample URL to confirm networking and permissions.
  • Specify model and formatting options (e.g., model='nova-2', smart_format=True) for better results.
  • Check and handle common errors: SDK import, auth failure, unsupported audio formats, and inaccessible URLs.
  • Use short scripts to isolate problems before integrating into larger systems.

Example use cases

  • Quick sanity check to ensure the Deepgram SDK and credentials are working.
  • Transcribe a podcast clip from a public URL and print the transcript to the console.
  • Local development: transcribe a WAV file to validate MIME type and file handling.
  • Learning: inspect the API response structure (channels → alternatives → transcript) for parsing.

FAQ

What credentials do I need?

A valid Deepgram API key set in the DEEPGRAM_API_KEY environment variable is required.

Which audio formats are supported?

Common formats like WAV, MP3, FLAC, and OGG are supported; ensure the mimetype is correct for local files.