Push assets and metadata
with one API call.
Content-addressed. Idempotent. Deduplicated by SHA-256. Safe to retry. Your ingest pipeline should be boring — this one is.
Under the hood
Why content-addressed storage?
Every file you send Clipsilo is identified by its SHA-256 hash — a cryptographic fingerprint that's unique to the exact bytes of that file. That tiny design decision unlocks a lot of nice properties:
-
Automatic deduplication. Upload the same 400 MB hero video from two different campaigns? Clipsilo stores it once. The second upload is a no-op — no double billing, no duplicate rows.
-
Idempotent uploads. Your CI pipeline crashed halfway through a batch? Just retry. The same SHA returns the same presigned URL and the same asset ID. No cleanup scripts, no half-ingested batches.
-
Stable references forever. Agents, webhooks, and downstream pipelines reference assets by a fingerprint that can never change. No rotating S3 URLs, no broken links when a file is moved.
-
Integrity verification. If a byte flips in transit, the SHA mismatch surfaces it immediately. You never distribute silently-corrupted content.
Built for production pipelines
Every feature exists because someone lost a weekend to the alternative.
Deduplication
Same file uploaded twice? Stored once. SHA-256 identity means storage scales with unique content, not attempts.
Batch processing
Submit hundreds of assets in one manifest. Atomic group semantics: ingest, review, and distribute as a unit.
Metadata at ingest
Attach tags, categories, captions, hooks, and usage rights on upload — not as an afterthought. Agents see context from day one.
Idempotent uploads
Retries are free and safe. Network flake? Lambda timeout? Re-run the whole batch. Same SHAs, same result.
Example: ingest an asset
Three requests. Totally idempotent. Works from any language, any CI system, any shell.
Step 1 — Get a presigned upload URL
{
"blobs": [
{
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"content_type": "video/mp4",
"size_bytes": 52428800
}
]
}
Step 2 — Upload directly to S3
curl -X PUT "{upload_url}" \
-H "Content-Type: video/mp4" \
--data-binary @hero-q3.mp4
Step 3 — Submit the batch manifest
{
"manifest": {
"batch_ref": "campaign-q3-hero-001",
"items": [
{
"item_ref": "hero-video-16x9",
"category": "brand",
"platform_assets": [
{
"platform": "youtube",
"video_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"caption": "Q3 Brand Campaign — Summer 2025",
"hook": "The creative workspace built for AI-era teams."
}
]
}
]
}
}
Returns a batch ID immediately. Assets enter the approval queue and become agent-accessible via MCP the moment they're approved.
File support
Supported formats
If S3 can store it, Clipsilo can index it. These are the formats we validate and preview out of the box.
Video
S3 limits apply
S3 limits apply
S3 limits apply
S3 limits apply
Audio
S3 limits apply
S3 limits apply
S3 limits apply
S3 limits apply
S3 limits apply
S3 limits apply
Image
S3 limits apply
S3 limits apply
S3 limits apply
S3 limits apply
S3 limits apply
S3 limits apply
Ready to organize your content pipeline?
Start your 7-day free trial. No credit card required. Cancel anytime.
7-day free trial · No credit card · Cancel anytime