movoa
Unlimited AI video generator with sound: on paid plans the tenth take of a shot costs what the first did, and your first clip is free to make right now. This is the official Python SDK for Movoa: one API key turns a prompt into text to video, or a still into photo to video, and every clip comes back as AI video with audio.
pip install movoa
from movoa import generate_video
clip = generate_video("a paper boat drifting down a rain gutter, low angle, slow push-in")
print(clip) # URL of the finished MP4, sound included
Standard library only, no dependencies. generate_video submits the run, waits for it and returns the URL of the finished file.
API key
Sign in on movoa.ai, create a key at movoa.ai/settings/apikeys, then pass it as api_key= or export it:
export MOVOA_API_KEY=sk-...
Runs cost credits on your Movoa account, at the prices on movoa.ai/pricing.
from movoa import credits
print(credits()) # remaining credits on the account
Text to video and photo to video
from movoa import generate_video
# text to video, vertical, 10 seconds
generate_video("a fox trotting through fresh snow at dawn, tracking shot",
duration=10, aspect_ratio="9:16")
# photo to video: the photo becomes the first frame
generate_video("the camera slowly orbits the statue", image_url="https://example.com/statue.jpg")
# another model
generate_video("a street drummer in the rain, close-up", model="seedance-2-5", duration=10, resolution="720p")
| model | options |
|---|---|
minimax-h3 (default) |
duration 4 / 5 / 6 / 8 / 10 / 15 · resolution 480p / 768p · aspect_ratio 16:9 / 9:16 / 1:1 |
veo-3-1-fast |
duration 8 · resolution 720p · aspect_ratio 16:9 / 9:16 (photo to video: 16:9) |
seedance-2-5 |
duration 5 / 10 / 15 / 20 / 25 / 30 · resolution 480p / 720p · aspect_ratio 16:9 / 9:16 / 1:1 |
seedance-2, seedance-2-fast, seedance-2-mini |
duration 4 / 6 / 8 / 10 · resolution 480p / 720p · aspect_ratio |
Any extra keyword argument is sent in options as it is. Every run asks for sound. On the site: Seedance 2.5 and Veo 3.
Submit now, collect later
from movoa import submit, status, wait
task_id = submit("a lighthouse in a storm, waves crashing", "minimax-h3", duration=6)
print(status(task_id)["status"]) # pending | processing | success | failed | canceled
url = wait(task_id) # polls every 10 seconds, 30 minutes by default
While a run waits in line, status() returns queued: True and queueEta in seconds.
Errors worth catching
Each failure is its own subclass of MovoaError, so you can branch on what to do next:
AuthError: no key, or the key is wrong or deleted; create one at movoa.ai/settings/apikeysQuotaError: the account does not have enough credits for this runPlanError: that model or quality needs a plan on the accountBusyError: too many runs on this account are generating at onceRejectedError: the content filter refused the prompt, or a cooldown is active; reword itGenerationError: the run was accepted but failed or was canceled;.error_messagesays whyTimeoutError: the wait ran out;.task_idlets you check the run later withstatus()
Any other refusal raises MovoaError with the server's message.
MIT licensed. Made by Movoa.
Metadata
Release files for movoa 0.1.0
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 | |
|---|---|---|---|---|
| movoa-0.1.0.tar.gz | 8.9 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| movoa-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 16.5 kB
Release files / movoa-0.1.0.tar.gz
| Download URL | movoa-0.1.0.tar.gz |
|---|---|
| Size | 8.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f38f1da9530c624ce237e2ec26d7ac15abaaa5cdfa41cfc5f7c53ec2450c8db0
|
|
BLAKE2b-256 checksum How to use checksums |
c5e5ebfdf6fff37aacae6b63f5269816bae456cbab738abce3e2b41270c72b38
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.6
|
Release files / movoa-0.1.0-py3-none-any.whl
| Download URL | movoa-0.1.0-py3-none-any.whl |
|---|---|
| Size | 7.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9309ba6b466606865033ca24182113421fcfd1f048cfe823c8067e571c5a3161
|
|
BLAKE2b-256 checksum How to use checksums |
a11fb7b6a8cf729788453474bd33596c8e6e84e5527e158370d659379bc9fbe1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.6
|
Security for movoa 0.1.0
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A 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.