Catalog PyPI
PACKAGE EXPLORERView in registry

aicontentdrop

PyPI

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

agentai-videoaicontentdropimage-generationmcpsdkvideo-generation
Versions collected1
Direct dependencies0From release 0.1.0
Last observed21 Oct, 10:16 UTC

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.

Versions 1

Collected releases
VersionPublishedDirect dependenciesOpen version
0.1.026 Aug 20260

Package advisories

0
No matching advisories collected

This describes our collected data; it is not a security assessment.

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:b5ad2386e752204f5dde32c8c122ead06bac49a44ae22234c631a7f7b8a178ab