Install to Claude Code
npx -y skills add https://github.com/eachlabs/skills --skill video-watermarkDescription
video watermark
SKILL.md
---
name: video-watermark
description: 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.
metadata:
author: eachlabs
version: "2.0"
---
# Video Watermark
Add professional watermarks to your videos or remove unwanted watermarks using each::sense. This skill handles all watermarking needs including logo placement, text overlays, animated watermarks, and intelligent watermark removal.
## Features
- **Add Logo Watermark**: Place your brand logo on videos with customizable opacity and position
- **Add Text Watermark**: Add text overlays with custom fonts, colors, and styles
- **Transparent Watermark**: Semi-transparent watermarks that don't obstruct content
- **Position Control**: Place watermarks in corners, center, or custom positions
- **Animated Watermark**: Moving or pulsing watermarks for enhanced branding
- **Dynamic Watermark**: Watermarks that change position throughout the video
- **Remove Watermark**: Intelligently remove existing watermarks from videos
- **TikTok Watermark Removal**: Remove TikTok logos and usernames from videos
- **Stock Footage Cleanup**: Remove stock footage watermarks for licensed content
- **Batch Processing**: Apply watermarks to multiple videos efficiently
## Quick Start
```bash
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Add a logo watermark to this video in the bottom right corner with 50% opacity"}],
"model": "eachsense/beta",
"stream": true,
"mode": "max",
"image_urls": ["https://example.com/my-video.mp4", "https://example.com/my-logo.png"]
}'
```
## Watermark Position Reference
| 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 |
## Use Case Examples
### 1. Add Logo Watermark
Add your brand logo to a video with customizable placement and opacity.
```bash
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "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."}],
"model": "eachsense/beta",
"stream": true,
"mode": "max",
"image_urls": ["https://example.com/product-video.mp4", "https://example.com/company-logo.png"]
}'
```
### 2. Add Text Watermark
Add text-based watermarks like copyright notices or channel names.
```bash
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "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."}],
"model": "eachsense/beta",
"stream": true,
"mode": "max",
"image_urls": ["https://example.com/my-video.mp4"]
}'
```
### 3. Add Transparent Watermark
Create subtle, semi-transparent watermarks that protect content without being intrusive.
```bash
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "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."}],
"model": "eachsense/beta",
"stream": true,
"mode": "max",
"image_urls": ["https://example.com/cinematic-video.mp4", "https://example.com/watermark-logo.png"]
}'
```
### 4. Position Watermark (Corner and Center)
Precisely control watermark placement for different video styles.
```bash
# Corner placement for vlog style
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "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."}],
"model": "eachsense/beta",
"stream": true,
"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://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "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."}],
"model": "eachsense/beta",
"stream": true,
"mode": "max",
"image_urls": ["https://example.com/preview-video.mp4"]
}'
```
### 5. Animated Watermark
Add dynamic, animated watermarks that draw attention or add visual interest.
```bash
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "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."}],
"model": "eachsense/beta",
"stream": true,
"mode": "max",
"image_urls": ["https://example.com/promo-video.mp4", "https://example.com/animated-logo.gif"]
}'
```
### 6. Remove Watermark from Video
Intelligently remove existing watermarks while preserving video quality.
```bash
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "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."}],
"model": "eachsense/beta",
"stream": true,
"mode": "max",
"image_urls": ["https://example.com/watermarked-video.mp4"]
}'
```
### 7. Remove TikTok Watermark
Remove TikTok logos and username watermarks from downloaded videos.
```bash
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "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."}],
"model": "eachsense/beta",
"stream": true,
"mode": "max",
"image_urls": ["https://example.com/tiktok-video.mp4"]
}'
```
### 8. Remove Stock Footage Watermark
Remove watermarks from stock footage that you have licensed.
```bash
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "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."}],
"model": "eachsense/beta",
"stream": true,
"mode": "max",
"image_urls": ["https://example.com/stock-footage-preview.mp4"]
}'
```
### 9. Add Dynamic Watermark (Changes Position)
Add watermarks that move or change position throughout the video to prevent easy removal.
```bash
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "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."}],
"model": "eachsense/beta",
"stream": true,
"mode": "max",
"image_urls": ["https://example.com/protected-content.mp4", "https://example.com/brand-logo.png"]
}'
```
### 10. Batch Watermark Multiple Videos
Apply consistent watermarks across multiple videos in a session.
```bash
# First video in batch
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "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."}],
"model": "eachsense/beta",
"stream": true,
"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://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Apply the same watermark settings to this second video."}],
"model": "eachsense/beta",
"stream": true,
"session_id": "batch-watermark-001",
"mode": "eco",
"image_urls": ["https://example.com/video-2.mp4"]
}'
# Third video (same session)
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Apply the same watermark settings to this third video."}],
"model": "eachsense/beta",
"stream": true,
"session_id": "batch-watermark-001",
"mode": "eco",
"image_urls": ["https://example.com/video-3.mp4"]
}'
```
## Best Practices
### Adding Watermarks
- **Opacity**: Use 20-40% opacity for subtle branding, 50-70% for visible protection
- **Size**: Keep logo watermarks at 5-15% of video width for professional look
- **Position**: Bottom corners are standard; avoid center unless for drafts/previews
- **Contrast**: Add shadow or outline to watermarks for visibility on varied backgrounds
- **Consistency**: Use the same watermark settings across all your content
### Removing Watermarks
- **Quality**: Higher quality source videos yield better removal results
- **Simple backgrounds**: Watermarks over simple/uniform areas are easier to remove
- **Multiple watermarks**: Specify all watermark locations for comprehensive removal
- **Legal use**: Only remove watermarks from content you own or have licensed
## Mode Selection
Ask your users before generating:
**"Do you want fast & cheap, or high quality?"**
| Mode | Best For | Speed | Quality |
|------|----------|-------|---------|
| `max` | Final output, professional content, watermark removal | Slower | Highest |
| `eco` | Batch processing, drafts, testing placement | Faster | Good |
## Multi-Turn Watermark Iteration
Use `session_id` to refine watermark placement:
```bash
# Initial watermark
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Add my logo watermark to this video in the bottom right corner"}],
"model": "eachsense/beta",
"stream": true,
"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://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "The watermark is too large and too opaque. Make it 50% smaller and reduce opacity to 25%"}],
"model": "eachsense/beta",
"stream": true,
"session_id": "watermark-project-001"
}'
# Final adjustment
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Move it slightly more to the center to avoid the video controls overlay area"}],
"model": "eachsense/beta",
"stream": true,
"session_id": "watermark-project-001"
}'
```
## Error Handling
| Error | Cause | Solution |
|-------|-------|----------|
| `Failed to create prediction: HTTP 422` | 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 |
## Related Skills
- `each-sense` - Core API documentation
- `video-generation` - Create videos from scratch
- `video-edit` - General video editing capabilities
- `image-edit` - Image watermarking and editing
