Agent skill · writing content · sundial-org
openrouter-transcribe
Transcribe audio files via OpenRouter using audio-capable models (Gemini, GPT-4o-audio, etc).
Why this skill is useful
Adds an executable script for audio transcription using OpenRouter's API, which includes specific commands and error handling not commonly found in public documentation.
What it needs
Requires base64, curl, ffmpeg, jq installed locally. Requires openrouter account access. About 1k tokens when loaded. Last updated 2026-03-07. 639 stars on the source repository.
What this skill does
OpenRouter Audio Transcription Transcribe audio files using OpenRouter's chat completions API with inputaudio content type. Works with any audio-capable model. Quick start Output goes to stdout. Useful flags How it works 1. Converts audio to WAV (mono, 16kHz) using ffmpeg 2. Base64 encodes the audio 3. Sends to OpenRouter chat completions with inputaudio content 4. Extracts transcript from response API key Set OPENROUTERAPIKEY env var, or configure in ~/.clawdbot/clawdbot.json: Headers The script sends identification headers to OpenRouter: X-Title: Caller name (default: "Peanut/Clawdbot") HTTP-Referer: Reference URL (default: "https://clawdbot.com") These show up in your OpenRouter dashboard for tracking. Troubleshooting ffmpeg format errors: The script uses a temp directory (not mktemp -t file.wav) because macOS's mktemp adds random suffixes after the extension, breaking format detection. Argument list too long: Large audio files produce huge base64 strings that exceed shell argument limits. The script writes to temp files (--rawfile for jq, @file for curl) instead of passing data as arguments. Empty response: If you get "Empty response from API", the script will dump the raw response for debugging. Common causes: Invalid API key Model doesn't support audio input Audio file too large or corrupted
How to use it
Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:
@skills sundial-org/openrouter-transcribe