Catalog PyPI
Back to packageRELEASE DETAILS

0.1.0

PyPI

aicontentdrop

Official Python SDK for AI Content Drop — generate AI video and images across 35+ models from one credit balance.

agentai-videoaicontentdropimage-generationmcpsdkvideo-generation
Published26 Aug 2026
Direct dependencies0
Transitive dependenciesNot calculated

README

Version 0.1.0 documentation

aicontentdrop — Python SDK

Official Python client for the AI Content Drop API. Generate AI video and images across 35+ models on one credit balance.

pip install aicontentdrop

No runtime dependencies — everything is standard library, so it installs anywhere Python 3.9+ runs and cannot conflict with your pinned HTTP client.

Start without an account

The catalogue, cost estimates, the natural-language endpoint and the sandbox need no credential, so you can finish an integration before anyone signs up.

from aicontentdrop import AiContentDrop

acd = AiContentDrop()                       # no key

for model in acd.models(type="video", max_credits=12):
    print(model["id"], model["credits"])

print(acd.cost("kling_3_0", quantity=3))    # quote before you spend

Rehearse a generation for free, with full validation and no API key:

rehearsal = AiContentDrop(sandbox=True)
job = rehearsal.generate_video(prompt="a red balloon over a city", model="kling_3_0")
print(job["status"], job["creditsUsed"])    # completed 0

Generate

Create a key at https://aicontentdrop.com/settings/integrations, then put it in ACD_API_KEY (or pass api_key=).

acd = AiContentDrop()                       # reads ACD_API_KEY

video = acd.generate_video_and_wait(
    prompt="a golden retriever surfing at sunset",
    model="kling_3_0",
    on_progress=lambda v: print(v["status"]),
)
print(video["video_url"])

generate_video_and_wait raises on any terminal state other than completed, so a failed job can never be mistaken for a finished one.

For manual control, generate_video() returns immediately and video(id) polls:

job = acd.generate_video(prompt="…", model="kling_3_0")
while job["status"] == "generating":
    time.sleep(5)
    job = acd.video(job["id"])

Handling failures

from aicontentdrop import AcdError

try:
    acd.generate_video(prompt="…", model="kling_3_0")
except AcdError as exc:
    if exc.code == "insufficient_credits":
        print("Balance too low:", acd.me()["credits"])
    elif exc.is_retryable:
        time.sleep(exc.retry_after or 30)
    else:
        raise

Branch on exc.code, never on the message. Credits are charged only on success, so a failure costs nothing and there is no refund to request.

Batching

Quote a whole job in one call, and move loops of reads into one request:

quote = acd.cost_batch([
    {"model_id": "kling_3_0",  "quantity": 8},
    {"model_id": "veo_3_fast", "quantity": 2},
])
print(quote["credits_total"])

results = acd.batch([
    {"id": "video", "method": "GET", "path": "/v1/models?type=video"},
    {"id": "image", "method": "GET", "path": "/v1/models?type=image"},
])

Give each item in a batch its own stable idempotency_key derived from the item rather than the attempt — that is what makes a run resumable after a crash instead of paying twice.

Reference

Tests

No test dependencies either — standard-library unittest:

python -m unittest discover -s tests -t .

MIT licensed.

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Declared dependencies 0

Native requirements
0 direct targetsNot calculated transitive count
No declared dependencies in this collected response

Declarations describe requirements; they are not a resolved dependency graph.

Distribution files

2 collected
aicontentdrop-0.1.0-py3-none-any.whl

bdist_wheel · 8.39 KB · Python py3

Source file
aicontentdrop-0.1.0.tar.gz

sdist · 7.4 KB · Python source

Source file

Repository

PENDING
aicontentdrop/aicontentdrop

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 21 Oct, 10:16 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package_version:d1c1b5c9bb61b33fcdf497b01190ff7248dd4a56d876c7ac46c0e4e277cb9cd2

Other collected versions

View all collected versions →