TikTok ad creatives prohibit watermarks: sample corner stills first

TikTok's reservation spec prohibits watermarks, TikTok's own included. Pull stills with video-inspect and crop the four corners before a reused clip goes up.

4 min readSume
All posts

Before a reservation upload, look at the four corners of three or four frames. TikTok's reservation in-feed page says watermarks are prohibited, TikTok's own branding included (read 2026-10-07). Sume does not detect watermarks; what it gives you is cheap stills at chosen times so you can look.

The more useful decision is upstream: if a corner mark is baked into the file, do not crop it out with a Sume video-filter. Go back to the clean master.

What to sample

A mark can fade in late or sit only on a stock insert. Sample the start, the middle, and just before the end, plus any shot you imported from another source. frames.at[] takes 1-24 explicit timestamps, each at or after 0, and max_edge between 64 and 2160 (the default is 768). For corner checks use the source edge, as the docs advise for restaging.

Reservation in-feed rules that affect the file (read 2026-10-07)
RuleValue on the page
Watermarksprohibited, including TikTok's own branding
Duration5-60 s
Max file size500 MB
Formats.mp4, .mov, .mpeg, .3gp

Request stills at explicit times

Probe-only calls are free of cost in the OpenAPI text; stills are unbilled too, and only transcription is billed. The clip must be hosted on media.sume.com, so import it first per Media inputs.

curl -X POST https://api.sume.com/v1/video-inspect \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: corner-check-001" \
  -d '{
    "video_url": "https://media.sume.com/artifacts/artf_demo/ad.mp4",
    "frames": { "at": [0.5, 6, 11.5], "max_edge": 1920 }
  }'

Cut the corner boxes locally

Each returned frame has a durable url, width, and height. Crop 20 percent squares from each corner and view them side by side. The helper below only computes the boxes, so it runs anywhere; feed them to Pillow's Image.crop or your viewer.

def corner_boxes(w, h, frac=0.2):
    cw, ch = int(w * frac), int(h * frac)
    return {
        "top_left": (0, 0, cw, ch),
        "top_right": (w - cw, 0, w, ch),
        "bottom_left": (0, h - ch, cw, h),
        "bottom_right": (w - cw, h - ch, w, h),
    }


for name, box in corner_boxes(1080, 1920).items():
    print(name, box)

If you find a mark

Re-render from a clean source. Cropping or covering someone else's mark is a different question that the video filter docs do not endorse and this post does not recommend; see the linked watermark-law post for context. If the mark is your own logo burned in by an earlier export, rebuild the timeline without it.

A review habit that scales

For a batch, sample the same three times on every file and keep the stills with the job record. Two minutes of looking at 12 corner crops catches the stock-footage logo that a render log never will.

Sume returns durable media.sume.com image URLs for each still, so the review set can be shared as links. The stills are evidence of what you checked, not proof that TikTok will accept the file; the platform's own preview tool, which the page recommends, remains the last step.

Sources

Related posts

More in Media tools

All Media tools posts

Written by Sume