Skillshub assemblyai-hello-world

install
source · Clone the upstream repo
git clone https://github.com/ComeOnOliver/skillshub
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ComeOnOliver/skillshub "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/jeremylongshore/claude-code-plugins-plus-skills/assemblyai-hello-world" ~/.claude/skills/comeonoliver-skillshub-assemblyai-hello-world && rm -rf "$T"
manifest: skills/jeremylongshore/claude-code-plugins-plus-skills/assemblyai-hello-world/SKILL.md
source content

AssemblyAI Hello World

Overview

Minimal working examples demonstrating AssemblyAI's three core capabilities: async transcription, audio intelligence features, and LeMUR (LLM-powered analysis).

Prerequisites

  • Completed
    assemblyai-install-auth
    setup
  • Valid API key configured in
    ASSEMBLYAI_API_KEY

Instructions

Step 1: Basic Transcription (Remote URL)

import { AssemblyAI } from 'assemblyai';

const client = new AssemblyAI({
  apiKey: process.env.ASSEMBLYAI_API_KEY!,
});

async function transcribeUrl() {
  const transcript = await client.transcripts.transcribe({
    audio: 'https://storage.googleapis.com/aai-web-samples/5_common_sports_702.wav',
  });

  if (transcript.status === 'error') {
    throw new Error(`Transcription failed: ${transcript.error}`);
  }

  console.log('Transcript:', transcript.text);
  console.log('Duration:', transcript.audio_duration, 'seconds');
  console.log('Word count:', transcript.words?.length);
}

transcribeUrl().catch(console.error);

Step 2: Transcribe a Local File

async function transcribeLocal() {
  // The SDK handles upload automatically when you pass a local path
  const transcript = await client.transcripts.transcribe({
    audio: './recording.mp3',
  });

  console.log('Transcript:', transcript.text);

  // Access word-level timestamps
  for (const word of transcript.words ?? []) {
    console.log(`[${word.start}ms - ${word.end}ms] ${word.text} (${word.confidence})`);
  }
}

Step 3: Enable Audio Intelligence Features

async function transcribeWithIntelligence() {
  const transcript = await client.transcripts.transcribe({
    audio: 'https://storage.googleapis.com/aai-web-samples/5_common_sports_702.wav',
    speaker_labels: true,       // Who said what
    auto_highlights: true,       // Key phrases extraction
    sentiment_analysis: true,    // Sentiment per sentence
    entity_detection: true,      // Named entities (people, orgs, locations)
    summarization: true,         // Auto-summary
    summary_model: 'informative',
    summary_type: 'bullets',
  });

  // Speaker diarization
  for (const utterance of transcript.utterances ?? []) {
    console.log(`Speaker ${utterance.speaker}: ${utterance.text}`);
  }

  // Key phrases
  for (const result of transcript.auto_highlights_result?.results ?? []) {
    console.log(`Key phrase: "${result.text}" (mentioned ${result.count} times)`);
  }

  // Sentiment analysis
  for (const result of transcript.sentiment_analysis_results ?? []) {
    console.log(`${result.sentiment}: "${result.text}"`);
  }

  // Summary
  console.log('Summary:', transcript.summary);
}

Step 4: LeMUR — Ask Questions About Your Audio

async function lemurDemo() {
  // First, transcribe
  const transcript = await client.transcripts.transcribe({
    audio: 'https://storage.googleapis.com/aai-web-samples/5_common_sports_702.wav',
  });

  // Then use LeMUR to analyze
  const { response } = await client.lemur.task({
    transcript_ids: [transcript.id],
    prompt: 'Summarize the key topics discussed and list any action items mentioned.',
  });

  console.log('LeMUR response:', response);
}

Output

  • Working transcription from a remote URL or local file
  • Word-level timestamps with confidence scores
  • Speaker-labeled utterances (diarization)
  • Key phrases, sentiment analysis, entity detection
  • LeMUR-powered summarization and Q&A

Error Handling

ErrorCauseSolution
transcript.status === 'error'
Bad audio URL/formatVerify URL is publicly accessible, supported format
Authentication error
Invalid API keyCheck
ASSEMBLYAI_API_KEY
environment variable
File not found
Wrong local pathVerify file exists at the specified path
Unsupported audio format
Incompatible formatUse MP3, WAV, M4A, FLAC, OGG, or WebM

Resources

Next Steps

Proceed to

assemblyai-local-dev-loop
for development workflow setup.