Metadata-Version: 2.4
Name: transcribe-api
Version: 0.1.1
Summary: Official Python SDK for Transcribe API.
Author-email: Transcribe API <admin@vocabrew.com>
License-Expression: MIT
Project-URL: Homepage, https://transcribeapi.com
Keywords: transcription,speech-to-text,whisper,audio,api
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: requests>=2.31.0

# Transcribe API Python SDK

Official Python SDK for Transcribe API.

## Installation

```bash
pip install transcribe-api
```

## Usage

```python
from transcribe_api import TranscribeAPI

client = TranscribeAPI(api_key="YOUR_API_KEY")

transcript = client.transcribe(
    file="audio.mp3",
)

async_job = client.transcribe(
    file="long-audio.mp3",
)

batch_job = client.batch.transcribe(
    files=["a.mp3", "b.wav"],
)

job = client.jobs.get(async_job["job_id"])
result_url = job.get("result_url")

remote_job = client.transcribe(
    file={"url": "https://signed-get-url-from-s3-or-r2"},
)

remote_batch_job = client.batch.transcribe(
    files=[
        {"url": "https://signed-get-url-1"},
        {"url": "https://signed-get-url-2"},
    ]
)

mixed_batch_job = client.batch.transcribe(
    files=[
        {"file_id": "episode_1", "file": "local.mp3"},
        {"file_id": "episode_2", "url": "https://signed-get-url-2"},
    ]
)
```

Async uploads use signed R2 URLs returned by the API. Multipart upload is used automatically when the backend returns a multipart flow.
Async job creation now goes through `POST /v1/transcribe` for single-file and batch jobs. Batch calls can mix uploaded files and remote URLs in the same request, and the SDK sends `reference_id`, plus `size_bytes` for multipart candidates or `url` for remote files.
When polling async jobs, use `GET /v1/transcribe/{job_id}`. The response always includes the core job fields and adds `result_url` when `job_status` is `completed`.
