Skip to content
Back to skills

Cf Tools Audio Transcribe

ASecurity

Transcribe speech to text via OpenAI Whisper — outputs .txt + .srt subtitles. Trigger: /cf-tools-audio-transcribe

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added November 11, 2026
content-marketinggobash

Security analysis

A92/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro shows the line behind each finding and how to fix it

Scanned November 11, 2026

npx -y skills add pauldx/claudifying --skill cf-tools-audio-transcribe --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Cf Tools Audio Transcribe?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Cf Tools Audio Transcribe
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/pauldx-cf-tools-audio-transcribe/badge)](https://www.skillsdirectory.com/skills/pauldx-cf-tools-audio-transcribe)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: cf-tools-audio-transcribe
description: "Transcribe speech to text via OpenAI Whisper — outputs .txt + .srt subtitles. Trigger: /cf-tools-audio-transcribe"
trigger: /cf-tools-audio-transcribe
version: 1.0.0
---

# /cf-tools-audio-transcribe

Run speech-to-text on an audio (or video) file using OpenAI's open-source Whisper model. Emits a plain `.txt` transcript and an `.srt` subtitle file with timestamps.

## Prerequisite: install Whisper

Not installed by default. One-time setup:

```bash
pipx install openai-whisper
# verify
whisper --help
```

Whisper auto-downloads models (`~/.cache/whisper/`) on first use:

| Model    | Disk | RAM   | Speed   | Quality |
|----------|------|-------|---------|---------|
| `tiny`   | 75MB | ~1GB  | fastest | basic   |
| `base`   | 142MB| ~1GB  | fast    | decent  |
| `small`  | 466MB| ~2GB  | medium  | good    |
| `medium` | 1.5GB| ~5GB  | slow    | great   |
| `large`  | 3GB  | ~10GB | slowest | best    |

Default for this skill: `small` (good balance for English podcasts/lectures).

## Usage

```
/cf-tools-audio-transcribe input.mp3
/cf-tools-audio-transcribe input.mp3 --model medium --lang en
/cf-tools-audio-transcribe input.mp4 --output-dir transcripts/
/cf-tools-audio-transcribe input.mp3 --translate     # any language → English
```

Arguments:
1. `input` (required) — audio or video file
2. `--model <name>` (optional, default `small`) — tiny / base / small / medium / large
3. `--lang <code>` (optional) — ISO 639-1, e.g. `en`, `es`, `fr` (auto-detect if omitted)
4. `--output-dir <path>` (optional, default same dir as input)
5. `--translate` (optional flag) — output English regardless of source language

## What You Must Do When Invoked

### Step 1 — Verify whisper installed

```bash
if ! command -v whisper >/dev/null 2>&1; then
  echo "ERROR: whisper not installed."
  echo "Run: pipx install openai-whisper"
  exit 1
fi
```

### Step 2 — Parse args

```bash
INPUT="$1"; shift
MODEL="small"; LANG=""; OUTDIR=""; TASK="transcribe"
while [ $# -gt 0 ]; do
  case "$1" in
    --model) MODEL="$2"; shift 2 ;;
    --lang) LANG="$2"; shift 2 ;;
    --output-dir) OUTDIR="$2"; shift 2 ;;
    --translate) TASK="translate"; shift ;;
    *) shift ;;
  esac
done
[ -f "$INPUT" ] || { echo "ERROR: input not found"; exit 1; }
OUTDIR="${OUTDIR:-$(dirname "$INPUT")}"
mkdir -p "$OUTDIR"
```

### Step 3 — Run whisper

```bash
LANG_ARG=""
[ -n "$LANG" ] && LANG_ARG="--language $LANG"

whisper "$INPUT" \
  --model "$MODEL" \
  --task "$TASK" \
  --output_dir "$OUTDIR" \
  --output_format txt --output_format srt \
  $LANG_ARG \
  --verbose False
```

Whisper writes `<basename>.txt` and `<basename>.srt` into `$OUTDIR`.

### Step 4 — Verify

```bash
STEM=$(basename "${INPUT%.*}")
TXT="${OUTDIR}/${STEM}.txt"
SRT="${OUTDIR}/${STEM}.srt"
[ -s "$TXT" ] && [ -s "$SRT" ] || { echo "ERROR: whisper produced empty output"; exit 1; }
LINES=$(wc -l < "$TXT")
CUES=$(grep -c "^[0-9]\+$" "$SRT")
```

## Output Contract

```
## Audio transcribe

**Source:**     <input>
**Model:**      <model>
**Language:**   <detected or specified>
**Task:**       transcribe | translate (→ English)
**Outputs:**
  - <output-dir>/<stem>.txt   (<N> lines)
  - <output-dir>/<stem>.srt   (<M> subtitle cues)
**Duration:**   <s>s (source)
```

## .srt Format Sample

```
1
00:00:00,000 --> 00:00:04,500
Welcome to the episode.

2
00:00:04,500 --> 00:00:09,200
Today we're talking about loudness normalization.
```

Use the `.srt` directly with video players, YouTube uploads, or convert to `.vtt` for the web (`ffmpeg -i in.srt out.vtt`).

## Gotchas

- **First run downloads model** (75 MB – 3 GB depending on size). Allow 2-30 minutes on slow connections.
- **No GPU = slow**: large model on CPU takes ~real-time. Use `tiny` or `base` on laptops without CUDA/MPS.
- **Apple Silicon**: whisper auto-uses MPS in recent versions. If it falls back to CPU, install `whisper-mlx` or use `--device mps`.
- **Bad transcripts on music**: Whisper is trained on speech; lyrics with backing music produce hallucinations. Pre-isolate vocals with `demucs` (see `cf-tools-audio-denoise`) for better results.
- **Long files**: a 2-hour file with `large` on CPU can take 8+ hours. Split first with `cf-tools-audio-trim`.
- **Hallucinated subtitles during silence**: the `--condition_on_previous_text False` flag reduces this; consider adding it for noisy / silent-heavy sources.

## Cross-Platform Notes

- **macOS**: `pipx install openai-whisper`. Requires ffmpeg on PATH (already a prerequisite of this skill family).
- **Linux**: same. For NVIDIA GPU, install via `pip install torch --index-url https://download.pytorch.org/whl/cu121` first inside the pipx env.
- **Windows**: `pipx install openai-whisper`. ffmpeg via `winget install ffmpeg`.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

View all in content-marketing →

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.