Skip to main content

codivupload

Official Python SDK for CodivUpload — publish, schedule, and manage social media posts across 9 platforms.

Get an API key

You need a CodivUpload API key (cdv_...) for this SDK. Two paths:

  • 7-day free trial — start at app.codivupload.com/en/dashboard/subscription?trial=1. $0.00 due today, card collected for auto-renewal after 7 days. Cancel anytime during the trial in the Stripe Customer Portal — no charge. API key is unlocked immediately during the trial. One trial per customer lifetime.
  • Direct subscribe — Starter starts at $20/mo (or $200/yr — 2 months free). API access included from Starter and above. Pricing: codivupload.com/pricing.

The Free plan ($0, no credit card) is dashboard-only and does not include API access — this SDK cannot run on Free.

After signup → Dashboard → Profiles → New profile → Connect a social account → Settings → API Keys → Generate key → use cdv_... value below.

Install

pip install codivupload

Quick Start

from codivupload import CodivUpload

codiv = CodivUpload("cdv_your_api_key")

# Publish to TikTok and Instagram
post = codiv.posts.create(
    platforms=["tiktok", "instagram"],
    description="New product launch! 🚀",
    media_urls=["https://cdn.example.com/video.mp4"],
    profile_name="my_brand",
)

print(post["id"])      # "post_k8m2v9x1"
print(post["status"])  # "publishing"

Posts

# Create / publish immediately
post = codiv.posts.create(
    platforms=["tiktok", "instagram", "youtube"],
    description="Check this out!",
    media_urls=["https://cdn.example.com/video.mp4"],
    profile_name="my_brand",
)

# Schedule for later
scheduled = codiv.posts.schedule(
    platforms=["youtube", "linkedin"],
    description="Big announcement!",
    scheduled_date="2026-04-05T14:00:00Z",
    profile_name="my_brand",
)

# List posts
posts = codiv.posts.list(status="completed", limit=20)

# Get single post
post = codiv.posts.get("post_k8m2v9x1")

# Update
codiv.posts.update("post_k8m2v9x1", description="Updated caption")

# Delete
codiv.posts.delete("post_k8m2v9x1")

Profiles

# List all profiles
result = codiv.profiles.list()
for p in result["profiles"]:
    print(f"{p['profile_name']} (@{p['username']})")

# Create a new profile
profile = codiv.profiles.create("new_client", profile_name="New Client Inc.")

# Delete
codiv.profiles.delete("profile-uuid")

Media

# Upload to CDN
media = codiv.media.upload("https://example.com/video.mp4", profile_name="my_brand")
print(media["url"])  # CDN URL

# Use in a post
codiv.posts.create(
    platforms=["tiktok"],
    description="Uploaded via Python SDK!",
    media_urls=[media["url"]],
    profile_name="my_brand",
)

# List / get / delete
assets = codiv.media.list()
asset = codiv.media.get("media-uuid")
codiv.media.delete("media-uuid")

Live Streaming (YouTube 24/7)

# Start immediately
stream = codiv.broadcasts.create(
    profile_name="my_channel",
    title="Lo-fi Coding Radio 24/7 🎵",
    media_url="https://cdn.example.com/lofi-mix.mp4",
    is_loop=True,
)

# Schedule for later
codiv.broadcasts.create(
    profile_name="my_channel",
    title="Friday Jazz",
    media_url="https://cdn.example.com/jazz.mp4",
    start_time="2026-04-04T22:00:00Z",
    is_loop=True,
)

# List / stop
broadcasts = codiv.broadcasts.list()
codiv.broadcasts.stop("broadcast-uuid")

Platform-Specific Overrides

codiv.posts.create(
    platforms=["tiktok", "instagram", "youtube", "linkedin", "x"],
    description="Product launch!",
    media_urls=["https://cdn.example.com/launch.mp4"],
    profile_name="my_brand",
    # TikTok
    tiktok_privacy_level="public",
    tiktok_disable_duet=False,
    tiktok_brand_content_toggle=True,
    # Instagram
    instagram_media_type="REELS",
    instagram_location_id="123456789",
    instagram_alt_text="Product demo video",
    # YouTube
    youtube_type="video",
    youtube_privacy_status="public",
    youtube_category_id="28",
    youtube_tags=["product", "launch", "2026"],
    # LinkedIn
    linkedin_visibility="PUBLIC",
    # X
    x_reply_settings="following",
)

Error Handling

from codivupload import CodivUpload, CodivUploadError

codiv = CodivUpload("cdv_your_api_key")

try:
    codiv.posts.create(platforms=["tiktok"], description="Hello!")
except CodivUploadError as e:
    print(e)           # "Rate limit exceeded"
    print(e.status)    # 429
    print(e.code)      # "RATE_LIMITED"

Context Manager

with CodivUpload("cdv_your_api_key") as codiv:
    codiv.posts.create(platforms=["instagram"], description="Hello!")
# Connection automatically closed

Configuration

# Default (production)
codiv = CodivUpload("cdv_...")

# Custom base URL (local dev)
codiv = CodivUpload("cdv_...", base_url="http://localhost:3000/api/v1")

# Custom timeout
codiv = CodivUpload("cdv_...", timeout=60.0)

Supported Platforms

TikTok, Instagram, YouTube, Facebook, LinkedIn, X (Twitter), Threads, Pinterest, Bluesky

Links

License

MIT — Codivion LLC

Metadata

Release files for codivupload 1.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for codivupload 1.0.1
File Size Uploaded
codivupload-1.0.1.tar.gz 5.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for codivupload 1.0.1
File Interpreter ABI Platform
codivupload-1.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 11.9 kB

Release files / codivupload-1.0.1.tar.gz

Download URL codivupload-1.0.1.tar.gz
Size 5.4 kB
Tags Source
SHA-256 checksum
How to use checksums
1bc4ba4f5b25fb72c99d877d45806b7f8bdef4f36e5000292facc16ecc0b9939
BLAKE2b-256 checksum
How to use checksums
3b76f9ce18dc66434af65b54c337e976161c994b461a86cd28d0baf0866a8670
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.6

Release files / codivupload-1.0.1-py3-none-any.whl

Download URL codivupload-1.0.1-py3-none-any.whl
Size 6.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5ca4d7bf224e3bd6c7c1da400ef6e0959a21a69d9e2b15f9f0adab14dfe47e35
BLAKE2b-256 checksum
How to use checksums
9507eb794b3726bd8af27e7a169170d4d96b6983a6a4c23d88de3bed8bc7d5ba
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.6

Release history Release notifications | RSS feed

This release

1.0.1 This release

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page