返回 Skill 列表
extension
分类: 内容与媒体无需 API Key

video-trimming

使用each::sense AI修剪、剪切和分割视频。提取特定片段,移除片头/片尾,创建社交媒体短片,自动检测场景,并批量处理多个视频。

person作者: jakexiaohubgithub

Video Trimming

Trim, cut, and split videos using each::sense. This skill enables precise video editing operations including segment extraction, scene detection, silence removal, and batch processing for social media optimization.

Features

  • Precise Trimming: Cut videos to exact timestamps or durations
  • Segment Extraction: Extract specific portions from the middle of videos
  • Intro/Outro Removal: Clean up videos by removing unwanted beginnings or endings
  • Video Splitting: Divide long videos into multiple shorter clips
  • Highlight Extraction: Pull out key moments from longer content
  • Silence Removal: Automatically detect and remove dead air or silent portions
  • Scene Detection: Smart cuts based on visual scene changes
  • Social Media Optimization: Trim to platform-specific lengths (15s, 30s, 60s)
  • Loop-Friendly Edits: Create seamless loops for social media
  • Batch Processing: Process multiple videos with consistent trimming rules

Quick Start

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": "Trim this video to the first 30 seconds"}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max",
    "video_urls": ["https://example.com/my-video.mp4"]
  }'

Trimming Operations Reference

| Operation | Description | Example Use Case | |-----------|-------------|------------------| | Duration Trim | Cut to specific length from start | Social media clips | | Timestamp Trim | Extract between start/end times | Interview segments | | Intro Removal | Remove first N seconds | Clean up recordings | | Outro Removal | Remove last N seconds | Remove end cards | | Segment Extraction | Pull middle portion | Highlight reels | | Scene Split | Divide by visual changes | Chapter creation | | Silence Removal | Cut silent portions | Podcast editing | | Batch Trim | Process multiple videos | Content repurposing |

Use Case Examples

1. Trim Video to Specific Duration

Trim a video to a specific length from the beginning.

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": "Trim this video to exactly 60 seconds, keeping the first minute only"}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max",
    "video_urls": ["https://example.com/full-video.mp4"]
  }'

2. Cut Segment from Middle

Extract a specific portion from the middle of a video using timestamps.

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": "Cut out the segment from 1:30 to 2:45 of this video. I want just that middle portion as a standalone clip."}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max",
    "video_urls": ["https://example.com/interview.mp4"]
  }'

3. Remove Intro and Outro

Clean up a video by removing unwanted intro and outro sections.

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 first 10 seconds (intro) and last 15 seconds (outro) from this video. Keep only the main content in the middle."}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max",
    "video_urls": ["https://example.com/youtube-video.mp4"]
  }'

4. Split Video into Multiple Clips

Divide a long video into several shorter segments.

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": "Split this 5-minute video into five 1-minute clips. Each clip should be a separate output."}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max",
    "video_urls": ["https://example.com/long-video.mp4"]
  }'

5. Extract Highlight Moments

Pull out the best moments from a longer video.

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": "Extract the most engaging or action-packed moments from this video. Create a highlight reel of the best 30 seconds."}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max",
    "video_urls": ["https://example.com/sports-footage.mp4"]
  }'

6. Remove Silence and Dead Air

Automatically detect and remove silent portions from a video.

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 all silent portions and dead air from this video. Cut out any segments where there is no speaking or significant audio for more than 2 seconds."}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max",
    "video_urls": ["https://example.com/podcast-recording.mp4"]
  }'

7. Smart Scene Detection Cut

Use AI to detect scene changes and split the video accordingly.

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": "Analyze this video and split it into separate clips based on scene changes. Each time the visual scene changes significantly, create a new clip."}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max",
    "video_urls": ["https://example.com/multi-scene-video.mp4"]
  }'

8. Batch Trim Multiple Videos

Process multiple videos with the same trimming rules using session continuity.

# First video
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": "Trim this video to 30 seconds from the start. We will process multiple videos with the same rule."}],
    "model": "eachsense/beta",
    "stream": true,
    "session_id": "batch-trim-001",
    "mode": "eco",
    "video_urls": ["https://example.com/video1.mp4"]
  }'

# Second 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 30-second trim to this video"}],
    "model": "eachsense/beta",
    "stream": true,
    "session_id": "batch-trim-001",
    "mode": "eco",
    "video_urls": ["https://example.com/video2.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": "And the same for this one"}],
    "model": "eachsense/beta",
    "stream": true,
    "session_id": "batch-trim-001",
    "mode": "eco",
    "video_urls": ["https://example.com/video3.mp4"]
  }'

9. Trim to Social Media Length

Optimize videos for specific social media platform requirements.

# Instagram Reels / TikTok (15 seconds)
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": "Trim this video to exactly 15 seconds for Instagram Reels. Pick the most engaging 15-second segment."}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max",
    "video_urls": ["https://example.com/content.mp4"]
  }'

# YouTube Shorts (30 seconds)
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": "Create a 30-second clip optimized for YouTube Shorts from this video. Focus on the hook at the start."}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max",
    "video_urls": ["https://example.com/content.mp4"]
  }'

# Standard social clip (60 seconds)
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": "Trim to 60 seconds maximum for Twitter/X. Keep the most important content."}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max",
    "video_urls": ["https://example.com/content.mp4"]
  }'

10. Loop-Friendly Trim

Create seamlessly looping video clips for social media.

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": "Trim this video to create a seamless loop. Find a segment where the end flows naturally back to the beginning, ideally 5-10 seconds long for a satisfying social media loop."}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max",
    "video_urls": ["https://example.com/loopable-content.mp4"]
  }'

Best Practices

Trimming Tips

  • Be specific: Provide exact timestamps (MM:SS or HH:MM:SS) when possible
  • Describe content: If you do not know timestamps, describe what you want ("the part where they shake hands")
  • Buffer time: Allow small buffers around cuts to avoid abrupt transitions
  • Check audio: Ensure cuts do not happen mid-sentence or mid-note

Performance Optimization

  • Use eco mode for batch processing or quick iterations
  • Use max mode for final exports and quality-critical content
  • Process shorter videos first to verify settings before batch operations

Social Media Guidelines

| Platform | Recommended Length | Notes | |----------|-------------------|-------| | TikTok | 15-60 seconds | Hook in first 3 seconds | | Instagram Reels | 15-30 seconds | 90 seconds max | | YouTube Shorts | 30-60 seconds | Under 60 seconds required | | Twitter/X | 30-60 seconds | 2:20 max for standard accounts | | LinkedIn | 30-90 seconds | Professional context |

Prompt Tips for Video Trimming

When requesting video trims, include these details:

  1. Exact timing: "from 0:45 to 1:30" or "first 30 seconds"
  2. Content reference: "the interview segment" or "when the product demo starts"
  3. Output requirements: "keep audio" or "I need 3 separate clips"
  4. Platform target: "for Instagram Reels" or "YouTube Shorts optimized"
  5. Quality preference: Use mode: "max" for finals, mode: "eco" for drafts

Example Prompt Structure

"[Action] this video [timing/selection criteria].
[Additional requirements like output format, platform, etc.]"

Examples:

  • "Trim this video to 30 seconds starting at 1:00"
  • "Extract three 15-second highlights from different parts of this video"
  • "Remove the first 5 seconds and last 10 seconds"

Mode Selection

"Do you want fast & cheap, or high quality?"

| Mode | Best For | Speed | Quality | |------|----------|-------|---------| | max | Final exports, client deliverables, quality-critical | Slower | Highest | | eco | Quick previews, batch processing, draft iterations | Faster | Good |

Multi-Turn Editing Session

Use session_id to iterate on video edits:

# Initial trim
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": "Trim this video to the segment from 0:30 to 1:30"}],
    "model": "eachsense/beta",
    "stream": true,
    "session_id": "edit-session-001",
    "video_urls": ["https://example.com/raw-footage.mp4"]
  }'

# Adjust the trim
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": "Actually, extend the end by 10 more seconds to include the conclusion"}],
    "model": "eachsense/beta",
    "stream": true,
    "session_id": "edit-session-001"
  }'

# Request additional version
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": "Create a shorter 15-second version of this same segment for Instagram"}],
    "model": "eachsense/beta",
    "stream": true,
    "session_id": "edit-session-001"
  }'

Error Handling

| Error | Cause | Solution | |-------|-------|----------| | Failed to create prediction: HTTP 422 | Insufficient balance | Top up at eachlabs.ai | | Timeout | Long video processing | Set client timeout to minimum 10 minutes | | Invalid timestamp | Timestamp exceeds video length | Verify video duration first | | Unsupported format | Video codec not supported | Convert to MP4/H.264 first |

Related Skills

  • each-sense - Core API documentation
  • video-generation - Create videos from scratch
  • video-editing - Advanced video editing operations
  • video-to-video - Transform and style transfer videos