Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions examples/390-loom-transcription-node/.env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Deepgram — https://console.deepgram.com/
DEEPGRAM_API_KEY=

# Loom — https://www.loom.com/developer-portal
LOOM_API_KEY=
1 change: 1 addition & 0 deletions examples/390-loom-transcription-node/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
node_modules/
60 changes: 60 additions & 0 deletions examples/390-loom-transcription-node/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
# Loom Video Transcription with Deepgram

Transcribe Loom video recordings using Deepgram's nova-3 pre-recorded speech-to-text. This example builds a Node.js Express server that accepts a Loom share URL, fetches the video via the Loom Developer API, and returns a full transcript powered by Deepgram.

## What you'll build

A Node.js server that takes a Loom video URL, downloads the recording from Loom's CDN via their Developer API, and sends it to Deepgram pre-recorded STT for a complete transcript with speaker diarization and smart formatting. Useful for teams who use Loom for async communication and want searchable, indexed transcripts.

## Prerequisites

- Node.js 18+
- Deepgram account — [get a free API key](https://console.deepgram.com/)
- Loom Developer account — [access the developer portal](https://www.loom.com/developer-portal)

## Environment variables

| Variable | Where to find it |
|----------|-----------------|
| `DEEPGRAM_API_KEY` | [Deepgram console](https://console.deepgram.com/) |
| `LOOM_API_KEY` | [Loom developer portal](https://www.loom.com/developer-portal) → API Keys |

## Install and run

```bash
cp .env.example .env
# Add your API keys to .env

npm install
npm start
```

Then send a Loom video for transcription:

```bash
curl -X POST http://localhost:3000/transcribe \
-H "Content-Type: application/json" \
-d '{"url": "https://www.loom.com/share/YOUR_VIDEO_ID"}'
```

## Key parameters

| Parameter | Value | Description |
|-----------|-------|-------------|
| `model` | `nova-3` | Deepgram's most accurate general-purpose model |
| `smart_format` | `true` | Adds punctuation, capitalisation, and number formatting |
| `diarize` | `true` | Labels each word with a speaker number for multi-speaker recordings |
| `paragraphs` | `true` | Groups transcript into readable paragraphs |

## How it works

1. Client sends a Loom share URL to `POST /transcribe`
2. Server extracts the video ID from the URL
3. Server calls the Loom Developer API to get video metadata and a time-limited download URL
4. Server downloads the video file from Loom's CDN
5. Server sends the video buffer to Deepgram's pre-recorded STT API (Deepgram accepts video files directly — no audio extraction needed)
6. Server returns the transcript with word count, duration, and speaker labels

## Starter templates

[deepgram-starters](https://github.com/orgs/deepgram-starters/repositories)
Loading