Loading...
Loading...
Add or remove watermarks from videos using each::sense AI. Add logo watermarks, text overlays, transparent watermarks, animated watermarks, and remove unwanted watermarks from TikTok, stock footage, and other sources.
npx skill4agent add eachlabs/skills video-watermarkcurl -X POST https://sense.eachlabs.run/chat \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"message": "Add a logo watermark to this video in the bottom right corner with 50% opacity",
"mode": "max",
"image_urls": ["https://example.com/my-video.mp4", "https://example.com/my-logo.png"]
}'| Position | Description | Best Use Case |
|---|---|---|
| Bottom Right | Most common placement | Corporate videos, vlogs |
| Bottom Left | Alternative corner | When bottom right has content |
| Top Right | Upper corner | News-style, live streams |
| Top Left | Upper corner | Documentary style |
| Center | Middle of frame | Preview/draft watermarks |
| Full Frame | Diagonal across video | Stock footage protection |
curl -X POST https://sense.eachlabs.run/chat \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"message": "Add this logo as a watermark to the video. Place it in the bottom right corner with 40% opacity. Keep the logo small, about 10% of the video width.",
"mode": "max",
"image_urls": ["https://example.com/product-video.mp4", "https://example.com/company-logo.png"]
}'curl -X POST https://sense.eachlabs.run/chat \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"message": "Add a text watermark to this video saying \"Copyright 2024 MyBrand\" in white text with black outline. Position it in the bottom left corner, make it subtle but readable.",
"mode": "max",
"image_urls": ["https://example.com/my-video.mp4"]
}'curl -X POST https://sense.eachlabs.run/chat \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"message": "Add a very subtle transparent watermark with my logo. Use only 20% opacity so it is barely visible but still present. Position in the bottom right corner.",
"mode": "max",
"image_urls": ["https://example.com/cinematic-video.mp4", "https://example.com/watermark-logo.png"]
}'# Corner placement for vlog style
curl -X POST https://sense.eachlabs.run/chat \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"message": "Add my channel logo in the top left corner of this video. Make it small and semi-transparent. The watermark should have a slight drop shadow for visibility on light backgrounds.",
"mode": "max",
"image_urls": ["https://example.com/vlog-video.mp4", "https://example.com/channel-logo.png"]
}'
# Center placement for preview/draft
curl -X POST https://sense.eachlabs.run/chat \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"message": "Add a large DRAFT watermark text diagonally across the center of this video. Use white text with black stroke, 50% opacity. This is for preview purposes.",
"mode": "max",
"image_urls": ["https://example.com/preview-video.mp4"]
}'curl -X POST https://sense.eachlabs.run/chat \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"message": "Add an animated watermark to this video. The logo should have a subtle pulsing glow effect. Place it in the bottom right corner. The animation should loop smoothly every 2 seconds.",
"mode": "max",
"image_urls": ["https://example.com/promo-video.mp4", "https://example.com/animated-logo.gif"]
}'curl -X POST https://sense.eachlabs.run/chat \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"message": "Remove the watermark from this video. There is a logo watermark in the bottom right corner that needs to be removed cleanly without affecting the rest of the video.",
"mode": "max",
"image_urls": ["https://example.com/watermarked-video.mp4"]
}'curl -X POST https://sense.eachlabs.run/chat \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"message": "Remove the TikTok watermark from this video. There is a TikTok logo and username in the corner that needs to be removed. Preserve the original video quality and ensure no artifacts remain.",
"mode": "max",
"image_urls": ["https://example.com/tiktok-video.mp4"]
}'curl -X POST https://sense.eachlabs.run/chat \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"message": "Remove the stock footage watermark from this video. It has a repeating diagonal text watermark across the entire frame saying the stock site name. I have licensed this footage and need a clean version.",
"mode": "max",
"image_urls": ["https://example.com/stock-footage-preview.mp4"]
}'curl -X POST https://sense.eachlabs.run/chat \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"message": "Add a dynamic watermark to this video that changes position every 5 seconds. The watermark should move between all four corners of the video. Use my logo with 30% opacity. This makes the watermark harder to remove.",
"mode": "max",
"image_urls": ["https://example.com/protected-content.mp4", "https://example.com/brand-logo.png"]
}'# First video in batch
curl -X POST https://sense.eachlabs.run/chat \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"message": "I need to add the same watermark to multiple videos. Start with this first video. Add my logo in the bottom right corner with 35% opacity. Remember these settings for the next videos.",
"session_id": "batch-watermark-001",
"mode": "eco",
"image_urls": ["https://example.com/video-1.mp4", "https://example.com/company-logo.png"]
}'
# Second video (same session for consistency)
curl -X POST https://sense.eachlabs.run/chat \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"message": "Apply the same watermark settings to this second video.",
"session_id": "batch-watermark-001",
"mode": "eco",
"image_urls": ["https://example.com/video-2.mp4"]
}'
# Third video (same session)
curl -X POST https://sense.eachlabs.run/chat \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"message": "Apply the same watermark settings to this third video.",
"session_id": "batch-watermark-001",
"mode": "eco",
"image_urls": ["https://example.com/video-3.mp4"]
}'| Mode | Best For | Speed | Quality |
|---|---|---|---|
| Final output, professional content, watermark removal | Slower | Highest |
| Batch processing, drafts, testing placement | Faster | Good |
session_id# Initial watermark
curl -X POST https://sense.eachlabs.run/chat \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"message": "Add my logo watermark to this video in the bottom right corner",
"session_id": "watermark-project-001",
"image_urls": ["https://example.com/my-video.mp4", "https://example.com/logo.png"]
}'
# Adjust based on feedback
curl -X POST https://sense.eachlabs.run/chat \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"message": "The watermark is too large and too opaque. Make it 50% smaller and reduce opacity to 25%",
"session_id": "watermark-project-001"
}'
# Final adjustment
curl -X POST https://sense.eachlabs.run/chat \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"message": "Move it slightly more to the center to avoid the video controls overlay area",
"session_id": "watermark-project-001"
}'| Error | Cause | Solution |
|---|---|---|
| Insufficient balance | Top up at eachlabs.ai |
| Content policy violation | Prohibited content | Ensure content complies with terms of service |
| Timeout | Long video processing | Set client timeout to minimum 10 minutes |
| Invalid video format | Unsupported format | Convert to MP4, MOV, or WebM |
| Watermark not detected | AI cannot locate watermark | Specify watermark location more precisely |
each-sensevideo-generationvideo-editimage-edit