Skip to main content

Local Mac CLI for single-video Qwen3-ASR transcription.

Project description

qwen-transcribe

Local Mac CLI for transcribing one video file with Qwen3-ASR. A successful run writes a .txt transcript, a ForcedAligner-timed .srt, and a subtitled review MP4.

Environment

This project uses uv and the project-root .venv.

uv venv .venv
uv sync

Run project commands through uv:

uv run qwen-transcribe --help

Do not use the system python3 command as the project runtime.

Default Models

The default ASR model is:

mlx-community/Qwen3-ASR-1.7B-8bit

SRT output also uses this ForcedAligner model:

Qwen/Qwen3-ForcedAligner-0.6B

The CLI is designed for Apple Silicon Macs with 16GB memory. If the default ASR model is too slow or memory-heavy, pass a different model with --model. The aligner model is internal for now and is prepared by init.

ffmpeg

ffmpeg must be installed separately. The CLI checks for it during setup and does not install system packages.

brew install ffmpeg

Setup

Prepare the local environment and model cache:

uv run qwen-transcribe init

To validate without preparing missing model files:

uv run qwen-transcribe init --check-only

Transcribe

Transcribe one video. A successful run writes three artifacts next to the source video:

  • VIDEO.txt - plain transcript
  • VIDEO.srt - playback subtitles generated from ASR text and ForcedAligner token timing
  • VIDEO.subtitled.mp4 - a copy of the source video with the subtitles added as a selectable subtitle track
uv run qwen-transcribe transcribe path/to/video.mp4

The source video is never modified. The review MP4 keeps the original video and audio streams and only adds the subtitle track, so you can open it in a local player and toggle the generated subtitles to inspect ASR quality in context.

Use an explicit transcript path. --output names only the .txt; the .srt and review MP4 stay next to the source video:

uv run qwen-transcribe transcribe path/to/video.mp4 --output transcript.txt

Override source language when automatic detection is not desired:

uv run qwen-transcribe transcribe path/to/video.mp4 --language English

Replace existing generated artifacts. Without --overwrite the command fails before any work if any of the .txt, .srt, or review MP4 already exists:

uv run qwen-transcribe transcribe path/to/video.mp4 --overwrite

If forced alignment or subtitle formatting fails, the command reports that stage clearly rather than writing guessed subtitles. If MP4 packaging fails after the .txt and .srt are written, those files remain on disk and the command reports a packaging failure.

Limits

For long media, the pipeline cuts the extracted audio into 15-minute ASR windows and merges the resulting transcript and timing offsets before subtitle generation. Local runtime speed and success still depend on the Mac, available memory, model behavior, and source media. SRT generation is slower than .txt because it runs ASR, forced alignment, and subtitle formatting. The first version does not resume from partial ASR or alignment output after failure.

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

qwen_transcribe-0.1.3.tar.gz (14.4 kB view details)

Uploaded Source

Built Distribution

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

qwen_transcribe-0.1.3-py3-none-any.whl (21.1 kB view details)

Uploaded Python 3

File details

Details for the file qwen_transcribe-0.1.3.tar.gz.

File metadata

  • Download URL: qwen_transcribe-0.1.3.tar.gz
  • Upload date:
  • Size: 14.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for qwen_transcribe-0.1.3.tar.gz
Algorithm Hash digest
SHA256 8020328a5b411e3522ef4db762a1a7cdd61303c3bceb3637bd179565c34d637d
MD5 8e6d26e6d25585e5c4bd3b387adf54a5
BLAKE2b-256 4864d32deb41cc9ee1d8d05145f81a81cad5d2e8cdf11a8b4f8a4cb72bafb492

See more details on using hashes here.

Provenance

The following attestation bundles were made for qwen_transcribe-0.1.3.tar.gz:

Publisher: publish-to-pypi.yml on 1WorldCapture/qwen-transcribe

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

File details

Details for the file qwen_transcribe-0.1.3-py3-none-any.whl.

File metadata

File hashes

Hashes for qwen_transcribe-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 be439ac8672ca097b476a68ec47e9aa35eb0339dfcff88a84abd5a3147cbf8e9
MD5 225bc9ed5bd6874fc4a2fd52192b9ce8
BLAKE2b-256 f6ce5f63211d6524922f237302fd016d7371fa7470ee482cbb38bae2e6fa699c

See more details on using hashes here.

Provenance

The following attestation bundles were made for qwen_transcribe-0.1.3-py3-none-any.whl:

Publisher: publish-to-pypi.yml on 1WorldCapture/qwen-transcribe

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