> ## Documentation Index
> Fetch the complete documentation index at: https://developers.t2000.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Transcribe & summarize audio

> A recording in, key points out. fal.ai Whisper transcribes any public audio URL, Claude pulls the highlights — paid as you go, no upload.

Drop in a link to a recording — a podcast clip, a voice memo, a meeting export — and your agent transcribes it and hands back the key points. fal.ai's Whisper fetches the URL server-side (so nothing to upload), and Claude distills it. \~\$0.04.

<Note>
  **Self-contained by design:** transcription takes an `audio_url`, and fal fetches it for you — no file upload, which means it runs cleanly in chat clients too. Point it at any public audio URL.
</Note>

***

## The prompt

```
Use t2 services. Transcribe this recording with fal Whisper and give me the 5 key points:
https://example.com/standup.mp3
```

***

## What runs

1. `POST /fal/fal-ai/whisper` — Whisper transcribes the audio URL (\~\$0.02)
2. `POST /anthropic/v1/messages` — Claude pulls the key points (\~\$0.02)

***

## Run it

### Claude Desktop (MCP)

```bash theme={null}
npm install -g @t2000/cli && t2 init && t2 fund && t2 mcp install
```

Paste the prompt with any public audio URL.

### SDK

```typescript theme={null}
import { T2000 } from '@t2000/sdk';

const agent = await T2000.create();
const audioUrl = 'https://example.com/standup.mp3'; // any public audio URL

// 1. Transcribe — fal fetches the URL server-side.
const transcript = await agent.pay({
  url: 'https://mpp.t2000.ai/fal/fal-ai/whisper',
  method: 'POST',
  body: JSON.stringify({ audio_url: audioUrl }),
});
const text = (transcript.body as { text: string }).text;

// 2. Summarize the key points.
const summary = await agent.pay({
  url: 'https://mpp.t2000.ai/anthropic/v1/messages',
  method: 'POST',
  headers: { 'anthropic-version': '2023-06-01' },
  body: JSON.stringify({
    model: 'claude-sonnet-4-5',
    max_tokens: 400,
    messages: [{
      role: 'user',
      content: `Pull the 5 key points from this transcript as a tight bulleted list:\n\n${text}`,
    }],
  }),
});

console.log((summary.body as { content: { text: string }[] }).content[0].text);
```

***

## Expected output

```
2 calls · ~$0.04 · ~5s · 0 taps
5 key points + full transcript
```

***

## Extend it

* Swap **fal Whisper** for **Groq** (`/groq/v1/audio/transcriptions`) or **OpenAI** (`/openai/v1/audio/transcriptions`) for a file-upload variant
* Chain **DeepL** (`/deepl/v1/translate`) to deliver the summary in another language
* Feed the transcript to **Anthropic** again to draft follow-up emails, then send via **Resend** (`/resend/v1/emails`)
* Pair with the **Make AI music** recipe in reverse — synthesize speech via ElevenLabs, then transcribe it back as a self-contained round-trip test
