genblaze-assemblyai
AssemblyAI speech-to-text / transcription provider adapter for genblaze.
This connector is the inverse of every other genblaze adapter: instead of generating media it consumes an audio URL and produces a text transcript with word-level timings. The transcript lands as a hash-verified TEXT asset with a provenance manifest, so it composes into pipelines (generate audio → transcribe, caption a generated video) and persists to Backblaze B2 / S3 like any other genblaze step.
Install
pip install genblaze-assemblyai # or: pip install "genblaze[assemblyai]"
export ASSEMBLYAI_API_KEY="..." # from https://www.assemblyai.com/app/api-keys
Usage
from genblaze_core import Modality, Pipeline
from genblaze_assemblyai import AssemblyAIProvider
run, manifest = (
Pipeline("transcribe")
.step(
AssemblyAIProvider(),
model="universal-3-pro", # speech_models: universal-3-pro | universal-2
prompt="https://example.com/podcast-episode.mp3", # or params={"audio_url": ...}, or a chained audio input
modality=Modality.TEXT,
speaker_labels=True, # any TranscriptionConfig flag passes through
)
.run()
)
asset = run.steps[0].assets[0]
print(asset.metadata["text"]) # the transcript
print(asset.audio.word_timings[:3]) # [WordTiming(word=..., start=..., end=...), ...] (seconds)
print(manifest.canonical_hash)
The audio URL is resolved from (in priority order) step.inputs[0].url →
step.params["audio_url"] → step.prompt, then SSRF-validated (https:// or
file:// only) before submission. step.model selects the AssemblyAI speech
model (sent on the SDK's plural speech_models field — the live API retired
the singular speech_model field and the best / nano aliases; current
values are universal-3-pro / universal-2); every other
TranscriptionConfig flag (speaker_labels, language_code,
audio-intelligence options, …) passes through step.params.
Pricing
The SDK ships no hardcoded prices. AssemblyAI bills per minute of input
audio; the connector captures the input duration in
step.provider_payload["audio_duration"] (seconds) during fetch_output.
Register a recipe at runtime — see
docs/reference/pricing-recipes.md
("AssemblyAI" section):
from genblaze_core.providers import per_response_metric
RATE_PER_MINUTE = RATE # replace RATE with the per-minute USD rate from assemblyai.com/pricing
def per_minute(ctx):
seconds = ctx.provider_payload.get("audio_duration")
return (seconds / 60.0) * RATE_PER_MINUTE if seconds is not None else None
provider = AssemblyAIProvider(api_key="...")
# Speech-model slugs match the connector's family, so register against the
# concrete slug(s) you use (register_pricing layers onto the family spec).
for slug in ("universal-3-pro", "universal-2"):
provider.models.register_pricing(slug, per_response_metric(per_minute))
Notes
- Out of scope for v1: real-time/streaming transcription, LeMUR
(LLM-over-transcript), and first-class SRT/VTT subtitle outputs. Audio-
intelligence flags pass through to the API and land in
metadata.
Docs
Metadata
Release files for genblaze-assemblyai 0.3.2
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 |
|---|---|---|---|---|
| genblaze_assemblyai-0.3.2.tar.gz | 14.9 kB | With provenance | Details for genblaze_assemblyai-0.3.2.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| genblaze_assemblyai-0.3.2-py3-none-any.whl | Python 3 | none | any | Details for genblaze_assemblyai-0.3.2-py3-none-any.whl |
Total release size: 25.8 kB
Release files / genblaze_assemblyai-0.3.2.tar.gz
| Download URL | genblaze_assemblyai-0.3.2.tar.gz |
|---|---|
| Size | 14.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c57819ed64386e83a1124d4e3be554152a0543528967e0f7c49a7ae909ab220c
|
|
BLAKE2b-256 checksum How to use checksums |
ee22d68d687be13312c59a0d2c9290c8d7e204917abc838c9ec92b7b2be9a234
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
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 Jul 28, 2026.
Transparency logRelease files / genblaze_assemblyai-0.3.2-py3-none-any.whl
| Download URL | genblaze_assemblyai-0.3.2-py3-none-any.whl |
|---|---|
| Size | 10.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
01c141e9b90aa8dcee4f9b7cf8ba993417bbf7c5a923395dbcd45b7abbfbe450
|
|
BLAKE2b-256 checksum How to use checksums |
5f1466aaa8fb85a4281fd692ff306a5ccca2f4c73e7fcedd6a34471c1e595bdd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
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 Jul 28, 2026.
Transparency logSecurity for genblaze-assemblyai 0.3.2
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 genblaze_assemblyai-0.3.2.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 Jul 28, 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.