HH:MM:SS
"timestamp": "00:01:30"1 minute, 30 seconds
Extract thumbnails and frames from video files at specific timestamps.
POST /api/v1/jobs/video/thumbnail
Extract a thumbnail image from a video at a specific timestamp.
{ "source_bucket": "my-bucket", "source_key": "videos/movie.mp4", "dest_bucket": "my-bucket", "dest_key": "thumbnails/movie-thumb.jpg", "timestamp": "00:00:05", "width": 1280, "format": "jpeg"}| Parameter | Type | Required | Description |
|---|---|---|---|
source_bucket | string | ✅ | Source S3 bucket |
source_key | string | ✅ | Source S3 key (video file) |
dest_bucket | string | ✅ | Destination S3 bucket |
dest_key | string | ✅ | Destination S3 key (image file) |
timestamp | string | ❌ | Time position (format: HH:MM:SS or seconds, default: 00:00:01) |
width | integer | ❌ | Thumbnail width in pixels (maintains aspect ratio) |
format | string | ❌ | Output format: jpeg, png, webp (default: jpeg) |
{ "job_id": "550e8400-e29b-41d4-a716-446655440000", "status": "pending", "message": "Job queued for processing"}curl -X POST http://localhost:8080/api/v1/jobs/video/thumbnail \ -H "Content-Type: application/json" \ -H "X-API-Key: your_api_key_here" \ -d '{ "source_bucket": "my-bucket", "source_key": "video.mp4", "dest_bucket": "my-bucket", "dest_key": "thumbnail.jpg" }'curl -X POST http://localhost:8080/api/v1/jobs/video/thumbnail \ -H "Content-Type: application/json" \ -H "X-API-Key: your_api_key_here" \ -d '{ "source_bucket": "my-bucket", "source_key": "video.mp4", "dest_bucket": "my-bucket", "dest_key": "thumbnail-5s.jpg", "timestamp": "00:00:05", "width": 1920, "format": "webp" }'const response = await fetch('http://localhost:8080/api/v1/jobs/video/thumbnail', { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-API-Key': 'your_api_key_here' }, body: JSON.stringify({ source_bucket: 'my-bucket', source_key: 'video.mp4', dest_bucket: 'my-bucket', dest_key: 'thumbnail.jpg', timestamp: '00:00:10', width: 1280 })});const data = await response.json();You can specify timestamps in multiple formats:
HH:MM:SS
"timestamp": "00:01:30"1 minute, 30 seconds
MM:SS
"timestamp": "01:30"1 minute, 30 seconds
Seconds
"timestamp": "90"90 seconds (1:30)
Video Previews
Generate preview thumbnails for video galleries and listings
Social Media
Create Open Graph images for video content sharing
Video Players
Generate sprite sheets for video scrubbing interfaces
Content Moderation
Extract frames for automated content analysis
Generate multiple thumbnails at different timestamps using Batch Operations:
{ "jobs": [ { "type": "video_thumbnail", "source_bucket": "my-bucket", "source_key": "video.mp4", "dest_bucket": "my-bucket", "dest_key": "thumb-5s.jpg", "parameters": { "timestamp": "00:00:05" } }, { "type": "video_thumbnail", "source_bucket": "my-bucket", "source_key": "video.mp4", "dest_bucket": "my-bucket", "dest_key": "thumb-30s.jpg", "parameters": { "timestamp": "00:00:30" } } ]}Mend supports all formats that FFmpeg can decode: