Metadata-Version: 2.4
Name: ilovevideoeditor-sdk
Version: 1.0.0
Summary: Official Python SDK for iLoveVideoEditor — cloud video rendering API
Home-page: https://ilovevideoeditor.com
Author: iLoveVideoEditor
Author-email: contact@ilovevideoeditor.com
License: MIT
Project-URL: Documentation, https://ilovevideoeditor.com/docs
Project-URL: Source, https://github.com/ilovevideoeditor/sdk-python
Project-URL: Bug Tracker, https://github.com/ilovevideoeditor/sdk-python/issues
Keywords: video,video-rendering,video-api,ilovevideoeditor,sdk
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Multimedia :: Video
Classifier: Topic :: Software Development :: Libraries
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: urllib3>=1.25.3
Requires-Dist: python-dateutil>=2.8.2
Requires-Dist: pydantic>=2
Requires-Dist: typing-extensions>=4.7.1
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: keywords
Dynamic: license
Dynamic: license-file
Dynamic: project-url
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# iLoveVideoEditor Python SDK (High-Level Wrapper)

This is the **official high-level Python SDK** for iLoveVideoEditor.
It wraps the auto-generated OpenAPI client with ergonomic method names,
polling logic, and typed result objects.

## Installation

```bash
pip install ilovevideoeditor-sdk
```

*(Requires the generated OpenAPI client to be installed or bundled.)*

## Quick Start

```python
from ilovevideoeditor import iLoveVideoEditorClient

client = iLoveVideoEditorClient(api_key="vf_live_xxx")

# Submit and poll until done
result = client.render(
    {"name": "Hello", "layers": [...]},
    on_progress=lambda status, progress: print(f"{status} — {progress}%"),
)

print(result.download_url)
```

## Methods

- `client.queue_render(video_json)` → submit and return `{"job_id", "status"}`
- `client.render(video_json, ...)` → submit + poll + return `RenderResult`
- `client.get_render(job_id)` → get status
- `client.refresh_url(job_id)` → fresh download URL
- `client.list_templates()` → list public templates
- `client.get_template(id)` → get single template
