
Openai Whisper Api
- 3.1k installs
- 385k repo stars
- Updated August 3, 2026
- steipete/clawdis
openai-whisper-api is an OpenClaw skill that transcribes local audio through OpenAI /v1/audio/transcriptions using a curl-based transcribe.sh helper.
About
The openai-whisper-api skill wraps OpenAI audio transcriptions through a bundled transcribe.sh script and curl. Default model is gpt-4o-transcribe with text output saved beside the input file as a sibling .txt path. Supported flags switch to gpt-4o-mini-transcribe for lower cost, gpt-4o-transcribe-diarize with JSON speaker labels, legacy whisper-1, explicit language codes, prompt hints for names or jargon, and custom --out paths for JSON transcripts. Upload formats include mp3, mp4, mpeg, mpga, m4a, wav, and webm with a documented 25 MB hosted API limit. OPENAI_API_KEY is required from the environment or OpenClaw skills config, and OPENAI_BASE_URL supports compatible proxies or local gateways. Diarize mode sends chunking_strategy auto and rejects prompt flags per API rules. Install metadata lists curl and node binaries with brew fallback guidance. The skill targets OpenClaw and agent environments that need quick speech-to-text without hand-building multipart HTTP requests.
- transcribe.sh quick start with gpt-4o-transcribe default and txt output.
- Model flags for mini, diarize JSON, and legacy whisper-1.
- OPENAI_BASE_URL override for OpenAI-compatible gateways.
- Documented 25 MB upload limit and supported audio formats.
- OpenClaw config apiKey path when env var is not set.
Openai Whisper Api by the numbers
- 3,146 all-time installs (skills.sh)
- +159 installs in the week ending Aug 2, 2026 (Skillselion tracking)
- Ranked #248 of 16,556 AI & Agent Building skills by installs in the Skillselion catalog
- Security screen: MEDIUM risk (skills.sh audit)
- Data as of Aug 3, 2026 (Skillselion catalog sync)
openai-whisper-api capabilities & compatibility
- Capabilities
- gpt 4o transcribe default transcription script · diarized json output with chunking_strategy auto · language and prompt hint flags · openai_base_url compatible gateway support · multiple audio format upload support
- Works with
- openai
- Use cases
- transcription · orchestration
- Pricing
- Bring your own API key
What openai-whisper-api says it does
25 MB upload limit on the hosted API.
npx skills add https://github.com/steipete/clawdis --skill openai-whisper-apiAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 3.1k |
|---|---|
| repo stars | ★ 385k |
| Security audit | 3 / 3 scanners passed |
| Last updated | August 3, 2026 |
| Repository | steipete/clawdis ↗ |
How do I turn a local m4a or mp3 into text with OpenAI transcription models from an agent environment?
Transcribe local audio files through OpenAI /v1/audio/transcriptions with gpt-4o-transcribe, mini, diarize, or whisper-1 models via curl script.
Who is it for?
Agent setups that already have OPENAI_API_KEY and need a documented curl script for common transcription flags.
Skip if: Skip for real-time streaming transcription, on-device offline STT, or audio longer than the hosted 25 MB limit without chunking.
When should I use this skill?
User asks to transcribe audio, convert speech to text, or run gpt-4o-transcribe on a local file.
What you get
A .txt or .json transcript file beside the input audio using the selected OpenAI transcription model.
- Transcription text from audio files
By the numbers
- Supports 4 OpenAI transcription models: gpt-4o-transcribe, mini, diarize, and whisper-1
Files
OpenAI transcriptions API
Transcribe audio through /v1/audio/transcriptions. Set OPENAI_BASE_URL for an OpenAI-compatible proxy or local gateway.
Quick start
{baseDir}/scripts/transcribe.sh /path/to/audio.m4aDefaults:
- Model:
gpt-4o-transcribe - Output:
<input>.txt
Useful flags
{baseDir}/scripts/transcribe.sh /path/to/audio.ogg --model gpt-4o-transcribe --out /tmp/transcript.txt
{baseDir}/scripts/transcribe.sh /path/to/audio.ogg --model gpt-4o-mini-transcribe
{baseDir}/scripts/transcribe.sh /path/to/audio.ogg --model gpt-4o-transcribe-diarize --json
{baseDir}/scripts/transcribe.sh /path/to/audio.ogg --model whisper-1
{baseDir}/scripts/transcribe.sh /path/to/audio.m4a --language en
{baseDir}/scripts/transcribe.sh /path/to/audio.m4a --prompt "Speaker names: Peter, Daniel"
{baseDir}/scripts/transcribe.sh /path/to/audio.m4a --json --out /tmp/transcript.jsonNotes:
- Supported upload formats include
mp3,mp4,mpeg,mpga,m4a,wav,webm. - 25 MB upload limit on the hosted API.
- Use diarize for speaker labels; script sends
chunking_strategy=autoand rejects--prompt.
API key
Set OPENAI_API_KEY, or configure it in the active OpenClaw config file ($OPENCLAW_CONFIG_PATH, default ~/.openclaw/openclaw.json). Optionally set OPENAI_BASE_URL:
{
skills: {
"openai-whisper-api": {
apiKey: "OPENAI_KEY_HERE",
},
},
}#!/usr/bin/env bash
set -euo pipefail
usage() {
cat >&2 <<'EOF'
Usage:
transcribe.sh <audio-file> [--model gpt-4o-transcribe] [--out /path/to/out.txt] [--language en] [--prompt "hint"] [--json]
EOF
exit 2
}
if [[ "${1:-}" == "" || "${1:-}" == "-h" || "${1:-}" == "--help" ]]; then
usage
fi
in="${1:-}"
shift || true
model="gpt-4o-transcribe"
out=""
language=""
prompt=""
json_output=0
while [[ $# -gt 0 ]]; do
case "$1" in
--model)
model="${2:-}"
shift 2
;;
--out)
out="${2:-}"
shift 2
;;
--language)
language="${2:-}"
shift 2
;;
--prompt)
prompt="${2:-}"
shift 2
;;
--json)
json_output=1
shift 1
;;
*)
echo "Unknown arg: $1" >&2
usage
;;
esac
done
if [[ ! -f "$in" ]]; then
echo "File not found: $in" >&2
exit 1
fi
if [[ "${OPENAI_API_KEY:-}" == "" ]]; then
echo "Missing OPENAI_API_KEY" >&2
exit 1
fi
if [[ "$out" == "" ]]; then
base="${in%.*}"
if [[ "$json_output" == "1" ]]; then
out="${base}.json"
else
out="${base}.txt"
fi
fi
mkdir -p "$(dirname "$out")"
api_base="${OPENAI_BASE_URL:-https://api.openai.com/v1}"
api_base="${api_base%/}"
request_format="text"
if [[ "$json_output" == "1" ]]; then
request_format="json"
fi
diarize=0
case "$model" in
gpt-4o-transcribe | gpt-4o-mini-transcribe | gpt-4o-mini-transcribe-*)
request_format="json"
;;
gpt-4o-transcribe-diarize)
diarize=1
request_format="diarized_json"
;;
esac
if [[ "$diarize" == "1" && "$prompt" != "" ]]; then
echo "--prompt is not supported with gpt-4o-transcribe-diarize" >&2
exit 2
fi
target="$out"
tmp=""
if [[ "$json_output" == "0" && ( "$request_format" == "json" || "$request_format" == "diarized_json" ) ]]; then
tmp="$(mktemp)"
trap '[[ "$tmp" == "" ]] || rm -f "$tmp"' EXIT
target="$tmp"
fi
curl_args=(
-sS "${api_base}/audio/transcriptions"
-H "Authorization: Bearer $OPENAI_API_KEY"
-H "Accept: application/json"
-F "file=@${in}"
-F "model=${model}"
-F "response_format=${request_format}"
)
if [[ "$language" != "" ]]; then
curl_args+=(-F "language=${language}")
fi
if [[ "$prompt" != "" ]]; then
curl_args+=(-F "prompt=${prompt}")
fi
if [[ "$diarize" == "1" ]]; then
curl_args+=(-F "chunking_strategy=auto")
fi
curl "${curl_args[@]}" >"$target"
if [[ "$target" != "$out" ]]; then
node -e '
const fs = require("fs");
const input = process.argv[1];
const output = process.argv[2];
const payload = JSON.parse(fs.readFileSync(input, "utf8"));
if (Array.isArray(payload.segments)) {
const lines = payload.segments
.map((segment) => {
const text = typeof segment?.text === "string" ? segment.text.trim() : "";
if (!text) return "";
const speaker = typeof segment?.speaker === "string" ? segment.speaker.trim() : "";
return speaker ? `${speaker}: ${text}` : text;
})
.filter(Boolean);
if (lines.length > 0) {
fs.writeFileSync(output, lines.join("\n"));
process.exit(0);
}
}
if (typeof payload.text !== "string") {
throw new Error("Transcription response missing text");
}
fs.writeFileSync(output, payload.text);
' "$target" "$out"
fi
echo "$out"
Related skills
FAQ
Which transcription models are supported?
gpt-4o-transcribe, gpt-4o-mini-transcribe, gpt-4o-transcribe-diarize, and whisper-1 via transcribe.sh flags.
Where is the API key configured?
Set OPENAI_API_KEY in the environment or under skills.openai-whisper-api.apiKey in OpenClaw config.
Can I use a custom OpenAI base URL?
Yes. Set OPENAI_BASE_URL for an OpenAI-compatible proxy or local gateway before running transcribe.sh.
Is Openai Whisper Api safe to install?
skills.sh reports 3 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.