Skip to main content

Audio transcriber powered by the ElevenLabs Scribe AI model.

Project description

: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.

Run the tool without installation using uv[^1]

uvx pyscribest "path/or/url.mp3"

Install from PyPI[^2]

pip install pyscribest
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. Command-Line Parameter: --key
  2. Environment Variable: ELEVENLABS_API_KEY
  3. OS Keyring: Secure credential store (automatically saved if you use the --key parameter)

Basic Transcription

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

Successful output is always written to sys.stdout. Everything else prints to sys.stderr.
Use your shell's output redirection operator to write 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: Include this flag to insert audio event tags like [laughter]
  • --lang: An ISO-639-1 or ISO-639-3 language code[^3] for improved performance, e.g. de or deu for German
  • --key: ElevenLabs API key (this will be saved to your keyring for future use)
pyscribe --lang deu --full recording.wav

: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 GB[^4]
  • Remote HTTPS files — up to 2 GB[^5]

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]: Project page on PyPI [^3]: Supported Languages [^4]: file Parameter Description [^5]: cloud_storage_url Parameter Description

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

pyscribest-1.1.1.tar.gz (7.4 kB view details)

Uploaded Source

Built Distribution

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

pyscribest-1.1.1-py3-none-any.whl (9.2 kB view details)

Uploaded Python 3

File details

Details for the file pyscribest-1.1.1.tar.gz.

File metadata

  • Download URL: pyscribest-1.1.1.tar.gz
  • Upload date:
  • Size: 7.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for pyscribest-1.1.1.tar.gz
Algorithm Hash digest
SHA256 c1b709769e18b9ce80198243ae655e654c3412bf8603d794c0f2e74e2df59ff7
MD5 7b289d9a39be47cc3e34e0c19740acce
BLAKE2b-256 f7a7d36265cce5f325648ca5829f77623e8eeaa3e4db0a96c238a11d2fa51a05

See more details on using hashes here.

File details

Details for the file pyscribest-1.1.1-py3-none-any.whl.

File metadata

  • Download URL: pyscribest-1.1.1-py3-none-any.whl
  • Upload date:
  • Size: 9.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for pyscribest-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 1958fd8f6e07b1f1b17cebd432c3a16ff5a04c2951a7c12323c304332651de54
MD5 82659e418607bac9d2ac360e03169c01
BLAKE2b-256 0bb5e83fe39f6ae8451431eed6d6ff06281a8d5b3ad9de3b52321b9d865ef956

See more details on using hashes here.

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