: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:
- Environment Variable: Looks for the
ELEVENLABS_API_KEYenvironment variable.- System Credential Store: Automatically saved to by the other methods if
keyringis installed.- Terminal Prompt: If terminal is detected, prompt user for the key without displaying it.
- 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 pyscribeis available as an alternative if installed viapip.The
pyscribestentrypoint is intended to avoid typinguvx --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.deordeufor 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
elevenlabsSDK 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:
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
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)
| 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)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| 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 logRelease 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 logSecurity 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.
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 logA 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.