Skip to main content

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

Docs https://aicontentdrop.com/developers
OpenAPI 3.1 https://aicontentdrop.com/openapi.json
Pricing, as markdown https://aicontentdrop.com/pricing.md
Errors and retries https://aicontentdrop.com/docs/errors
Rate limits https://aicontentdrop.com/docs/rate-limits
Agent skills https://aicontentdrop.com/skills/index.json
Source https://github.com/aicontentdrop/aicontentdrop

Tests

No test dependencies either — standard-library unittest:

python -m unittest discover -s tests -t .

MIT licensed.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aicontentdrop-0.1.0.tar.gz (7.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aicontentdrop-0.1.0-py3-none-any.whl (8.6 kB view details)

Uploaded Python 3

File details

Details for the file aicontentdrop-0.1.0.tar.gz.

File metadata

  • Download URL: aicontentdrop-0.1.0.tar.gz
  • Upload date:
  • Size: 7.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.10.11

File hashes

Hashes for aicontentdrop-0.1.0.tar.gz
Algorithm Hash digest
SHA256 7f9414b2d6bb48a1b837e9ff3a97c0fb58a56ad6ffa8fe420ca25f60640f6300
MD5 5e4e3512e777f3b22401dbe07c2af8b0
BLAKE2b-256 41fc684e8cd26591d227592d12ed124a30971347bbffb3a254d3efe239ae0f1e

See more details on using hashes here.

File details

Details for the file aicontentdrop-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: aicontentdrop-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 8.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.10.11

File hashes

Hashes for aicontentdrop-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6b3f7e4341747464f05973895f9f2f5d8b603c71c441f0b97502d13d379b8838
MD5 af8c03c9b117340d2d2fe30a8aa71c64
BLAKE2b-256 aa6945e6c9a44e6e788d5f6e4657ea04da02a84a0e3e6bf7bd5e1238c814c7d8

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page