Skip to main content

:musical_note: Pyscribe

A robust tool to transcribe audio (including music) files and URLs using ElevenLabs Scribe AI model.

:clipboard: Requirements

  • 64-bit operating system
  • Python 3.8+ if not using standalone binary
  • ElevenLabs API key (instructions below)

:rocket: Installation

Prebuilt standalone binary (Windows, macOS, Linux)

Download a standalone binary from the latest release. Comes with keyring support.

Install from PyPI

If you don't want to enter your API key every time, the optional keyring dependency allows Pyscribe to securely store it in your system's credential store.

# Recommended: Installation with keyring support
pip install "pyscribest[keyring]"
# Minimal installation without keyring support
pip install pyscribest

Run the tool without installation using uv1

# With keyring support
uvx "pyscribest[keyring]" "path/or/url.mp3"
# Without keyring support
uvx pyscribest "path/or/url.mp3"
pyscribe was taken 🥹

:zap: Usage

[!IMPORTANT]

API Key Configuration

Log in to your ElevenLabs dashboard and create an API key with access to Speech to Text endpoint.

The script looks for the API key in the following order:

  1. Environment Variable: Looks for the ELEVENLABS_API_KEY environment variable.
  2. System Credential Store: Automatically saved to by the other methods if keyring is installed.
  3. Terminal Prompt: If terminal is detected, prompt user for the key without displaying it.
  4. Standard Input: Read one line from sys.stdin.

Basic Transcription

pyscribe "https://storage.googleapis.com/eleven-public-cdn/audio/marketing/nicole.mp3"

In the spirit of Unix philosophy only successful transcription prints to sys.stdout. Everything else is written to sys.stderr.
Use your shell's output redirection operator to write transcription to disk.

pyscribe "Never Gonna Give You Up.webm" > lyrics.txt

[!NOTE] python -m pyscribe is available as an alternative if installed via pip.

The pyscribest entrypoint is intended to avoid typing uvx --from pyscribest pyscribe.

CLI Options

  • --full: Insert audio event tags like [laughter].
  • --lang: An ISO-639-1 or ISO-639-3 language code2 for improved performance, e.g. de or deu for German.
  • --no-keyring: Avoid reading or writing key to the system keyring.
  • -v, --verbose: Show diagnostic messages.
  • -V, --version: Print program's version and exit.
pyscribe --lang deu --full recording.wav -v

:hammer_and_wrench: Integration

The pyscribe package provides both synchronous and asynchronous interfaces for seamless integration into any project.

Sync

from elevenlabs import ElevenLabs
from pyscribe import transcribe

client = ElevenLabs(api_key="YOUR API KEY")
text = transcribe(client, "path/or/url.mp3")
print(text)

Async

from elevenlabs import AsyncElevenLabs
from pyscribe import atranscribe

client = AsyncElevenLabs(api_key="YOUR API KEY")
text = await atranscribe(client, "path/or/url.mp3")
print(text)

[!TIP] The elevenlabs SDK is included as a dependency; no separate installation is required.

:stop_sign: API Limitations

Concurrency

ElevenLabs imposes limitations on concurrent Speech to Text requests.
For example, the free plan only allows 8 transcription requests at the same time.

File Size

ElevenLabs also imposes different file size limits:

  • Local files — up to 3 GB3
  • Remote HTTPS files — up to 2 GB4

Features

Pyscribe focuses on end users and aims to provide a simple interface for the Scribe model.
As such, this tool does not implement all Scribe features, including but not limited to:

  • Webhook support
  • Word-level timestamps
  • Speaker diarization
  • Output in other formats
  1. Documentation for uvx ↩

  2. Supported Languages ↩

  3. file Parameter Description ↩

  4. cloud_storage_url Parameter Description ↩

Metadata

Release files for pyscribest 1.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyscribest 1.2.1
File Size Uploaded Provenance Actions
pyscribest-1.2.1.tar.gz 7.9 kB With provenance Details for pyscribest-1.2.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for pyscribest 1.2.1
File Interpreter ABI Platform Actions
pyscribest-1.2.1-py3-none-any.whl Python 3 none any Details for pyscribest-1.2.1-py3-none-any.whl

Total release size: 17.6 kB

Release files / pyscribest-1.2.1.tar.gz

Download URL pyscribest-1.2.1.tar.gz
Size 7.9 kB
Tags Source
SHA-256 checksum
How to use checksums
2b3f54a4bc76813eed34c1b5164c19a457f29245dbfa027292b09bc8d05370f3
BLAKE2b-256 checksum
How to use checksums
3b53392d4173a693ff5c14c55bf2ec6db09f127db3c99578c6a93c27bff0a2d2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 10, 2026.

Transparency log

Release files / pyscribest-1.2.1-py3-none-any.whl

Download URL pyscribest-1.2.1-py3-none-any.whl
Size 9.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f5852bd9ceef90b942a404447d38f7e85eb1e1183d333ffe9c07e86ea7b8655e
BLAKE2b-256 checksum
How to use checksums
d251116170521a895f948b114619ab44a246456d914d633660a0f7eddd6949e0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 10, 2026.

Transparency log

Security for pyscribest 1.2.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for pyscribest-1.2.1.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 10, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page