Add the EU AI icon to a clip with Timeline compose overlay
The EU publishes an AI icon as PNG and SVG. Sume timeline compose with operation overlay puts a hosted still on a hosted video and returns a new MP4 for $0.02.
You can burn the EU's "AI" icon into a video with one Sume call: POST /v1/timeline-1.0/compose with operation: "overlay", the icon PNG as image.url and your clip as video.url. It returns one new MP4. The icon comes from the European Commission; using it is optional, and the page says Article 50 duties remain mandatory and the icon alone does not establish compliance.
The icon, per the Commission page
The page was updated September 24, 2026.
| Item | What the page says |
|---|---|
| Icon | "AI", in black, in white, and in both at 50% transparency |
| File types | SVG and PNG |
| Types | Basic, fully AI-generated, partially AI-modified |
| Video placement | Clearly visible at first exposure, embedded directly in the content, kept when reshared or downloaded, placed so no overlay obstructs it |
| Status | Use of the icons is optional; Article 50 duties remain mandatory |
The compose call
Per the Timeline compose docs, both URLs must already be this workspace's media.sume.com artifacts, so import the PNG and the clip first with POST /v1/media-imports. image.url must probe as a still. Idempotency-Key is required. The default output is 1080x1920 MP4 at the video layer's frame rate; set output to match the clip if it is a different size.
For overlay, layout.position is top, center or bottom, width_ratio is 0.05-1 of the frame width (default 0.9), and margin_ratio is 0-0.45 of height (default 0.05). The default width is far too large for a badge, so set width_ratio yourself.
curl -X POST https://api.sume.com/v1/timeline-1.0/compose \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: eu-ai-icon-001" \
-d '{
"operation": "overlay",
"image": { "url": "https://media.sume.com/artifacts/artf_demo/ai-icon.png" },
"video": { "url": "https://media.sume.com/artifacts/artf_demo/spot.mp4" },
"layout": { "position": "bottom", "width_ratio": 0.15, "margin_ratio": 0.05 },
"mode": "sync"
}'Limits and costs
The public rate is $0.02 flat per job; confirm it in GET /v1/catalog. Output length comes from the video layer, with a 300 s ceiling in the docs. The still stays on screen for the whole clip, which fits the first-exposure rule. If the video has no audio the job warns compose_video_has_no_audio and still renders.
The compose docs do not say how transparent PNG pixels are handled. If you use the 50%-transparency icon variant, render a test and check a still from the result (video-frames) before you scale up. The output is a new MP4, so keep the original and treat the overlaid file as the one you publish.
Sources
Related posts
More in Developers
- If a lip-sync job fails on Sume, is the reserved money refunded?
Yes. Sume reserves the price at admit, captures on completion and refunds on failure. For a 5-second H3 Max lip-sync at 768p the reservation is $0.50.
- fal retries failed requests up to 10 times; on Sume the retry is yours
fal's queue retries transient errors up to 10 times unless you send X-Fal-No-Retry. On Sume the retry is yours: reuse the Idempotency-Key, never resubmit blind.
- fal never drops queued requests; Sume can answer 429 queue_full
fal's queue docs say queued requests are never dropped. Sume caps accepted jobs per plan and returns 429 queue_full when full. Plan for the gap.
- Fallback chain for a 30-second AI video: first catalog row that fits
Kling 4.0 is rolling out in stages. Pick the first Sume video id whose catalog row lists 30 seconds, and stop with an error if none does.
Written by Sume