Skip to main content

A modular transcription CLI with pluggable providers. Agent-friendly.

Project description

transcribe-cli

A modular audio transcription CLI with pluggable providers. Agent-friendly.

Currently supports AssemblyAI with speaker diarization, sentiment analysis, entity detection, auto chapters, summarization, topic detection, and more.

Installation

# With uv (recommended)
uv tool install transcriber-cli

# With pip
pip install transcriber-cli

# Run without installing
uvx --from transcriber-cli transcribe audio.mp3

Or install from source:

git clone https://github.com/miguelarios/transcribe-cli.git
cd transcribe-cli
uv tool install .

Setup

Get an API key from the AssemblyAI Dashboard and set it:

export ASSEMBLYAI_API_KEY='your_key_here'

Or pass it directly: transcribe --api-key <key> audio.mp3

Usage

# Basic transcription (text output to stdout)
transcribe interview.mp3

# JSON output
transcribe interview.mp3 -f json

# With speaker diarization
transcribe meeting.wav --speaker-labels

# SRT subtitles to file
transcribe lecture.mp3 -f srt -o lecture.srt

# Full-featured transcription
transcribe call.m4a --speaker-labels --entities --sentiment -f json

# Pipe JSON to jq
transcribe interview.mp3 -f json | jq '.segments[] | .speaker, .text'

# Agent-friendly summary (saves full transcript to temp file)
transcribe meeting.mp3 --summary

# Transcribe from URL
transcribe https://example.com/audio.mp3

Output Formats

Format Flag Description
text -f text (default) Timestamped text with optional speaker labels
json -f json Full structured data (segments, metadata, entities)
srt -f srt SRT subtitle format
vtt -f vtt WebVTT subtitle format

All Options

Run transcribe -h for the full list. Key options:

Speaker/Diarization

  • --speaker-labels — Enable speaker diarization
  • --speakers-expected N — Exact speaker count
  • --min-speakers N --max-speakers M — Speaker range
  • --speaker-id-type [role|name] — Speaker identification mode
  • --speaker-names NAME — Known speaker names (repeatable)

Analysis

  • --entities — Detect names, locations, dates, etc.
  • --sentiment — Sentiment analysis per utterance
  • --topics — IAB topic detection
  • --auto-chapters — Generate chapters with headlines
  • --summarize — Generate transcript summary
  • --content-safety — Content moderation

Language

  • --language CODE — Language code (e.g., en_us)
  • --language-detection — Auto-detect language

Advanced

  • --prompt TEXT — Context prompt for transcription
  • --keyterms TERM — Domain-specific terms to boost (repeatable)
  • --multichannel — Multichannel transcription
  • --redact-pii — Redact personally identifiable information
  • --filter-profanity — Filter profanity
  • --disfluencies — Include filler words (um, uh)

Output

  • -f, --format [text|json|srt|vtt] — Output format
  • -o, --output PATH — Write to file instead of stdout
  • --summary — Output metadata summary, save full transcript to temp file
  • -v, --verbose — Show progress and timing on stderr

Meta

  • --list-providers — List available transcription providers
  • --api-key KEY — AssemblyAI API key
  • -V, --version — Show version
  • -h, --help — Show help

Development

git clone https://github.com/miguelarios/transcribe-cli.git
cd transcribe-cli
uv run --extra dev pytest tests/ -v

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

transcriber_cli-0.1.6.tar.gz (53.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

transcriber_cli-0.1.6-py3-none-any.whl (12.8 kB view details)

Uploaded Python 3

File details

Details for the file transcriber_cli-0.1.6.tar.gz.

File metadata

  • Download URL: transcriber_cli-0.1.6.tar.gz
  • Upload date:
  • Size: 53.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for transcriber_cli-0.1.6.tar.gz
Algorithm Hash digest
SHA256 71f96ab10d925949e53d79849c0012b6fd43ceac43fde40e87d1c09621c049b4
MD5 624e0353d51a60cf9c937065446a2737
BLAKE2b-256 c2e217c93a40ecca6a955f4881a70fa3a434c8d933594ba56fa8f98b5dfe05e7

See more details on using hashes here.

Provenance

The following attestation bundles were made for transcriber_cli-0.1.6.tar.gz:

Publisher: publish.yml on miguelarios/transcribe-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file transcriber_cli-0.1.6-py3-none-any.whl.

File metadata

File hashes

Hashes for transcriber_cli-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 7594d01839b426706c1ac1c8e183752b71f6c07383cea3fcdf2dbfbe905e7e43
MD5 c776fc2aef3934671873dc5c7619fc51
BLAKE2b-256 5ce26f060b63e9fef29f433c2a46f0959d0e44aef07628828a3ebc79ef25a929

See more details on using hashes here.

Provenance

The following attestation bundles were made for transcriber_cli-0.1.6-py3-none-any.whl:

Publisher: publish.yml on miguelarios/transcribe-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page