Metadata-Version: 2.4
Name: whiteframes
Version: 0.1.0
Summary: Python SDK for Whiteframes AI — create AI-powered videos programmatically
License-Expression: MIT
Project-URL: Homepage, https://whiteframes.ai
Project-URL: Documentation, https://whiteframes.ai/docs
Project-URL: Repository, https://github.com/yourname/whiteframes-sdk
Keywords: ai,video,whiteboard,text-to-video,whiteframes
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Multimedia :: Video
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: requests>=2.28.0

# Whiteframes AI Python SDK

Create AI-powered videos programmatically with a single Python call.

## Installation

```bash
pip install whiteframes
```

## Quick Start

```python
from whiteframes import WhiteframesAI

client = WhiteframesAI(api_key="wfai_your_key_here")

# Create a video (blocks until ready, ~2 minutes)
video = client.create_video(
    prompt="Explain how neural networks learn",
    voice="Stephen",
    quality="standard",
    scenes=8,
    video_type="educational",
)

print(video.title)          # "How Neural Networks Learn"
print(len(video.scenes))    # 8
print(video.scenes[0].narration)
```

## Async (non-blocking)

```python
job = client.create_video_async(prompt="Explain blockchain")
print(job.job_id)  # save this, poll later

# Poll manually
job.refresh()
print(job.status, job.progress)

# Or block with progress callback
def show_progress(progress, message):
    print(f"[{progress}%] {message}")

video = job.wait(on_progress=show_progress)
```

## Supported Voices

| voiceId  | Language | Gender |
|----------|----------|--------|
| Stephen  | en-US    | Male   |
| Matthew  | en-US    | Male   |
| Ruth     | en-US    | Female |
| Joanna   | en-US    | Female |
| Amy      | en-GB    | Female |
| Brian    | en-GB    | Male   |
| Olivia   | en-AU    | Female |

## Supported Video Types

`whiteboard`, `saas-demo`, `infographic`, `corporate`, `architecture`,
`educational`, `social-short`, `pitch`, `onboarding`, `storytelling`,
`news`, `videocast`

## Videocast (Multi-speaker)

```python
video = client.create_video(
    prompt="Discuss the future of AI",
    video_type="videocast",
    scenes=8,
    speaker_voices={
        "speaker_1": "Stephen",
        "speaker_2": "Ruth",
        "speaker_3": "Brian",
    },
)
```

## Error Handling

```python
from whiteframes import WhiteframesAI, InsufficientCreditsError, ContentRejectedError

try:
    video = client.create_video(prompt="...")
except InsufficientCreditsError:
    print("Not enough credits")
except ContentRejectedError:
    print("Content was rejected by moderation")
```

## Get API Key

Sign in at [whiteframes.ai](https://whiteframes.ai) → Settings → API Keys → Create Key.
