Video Summarization
Submit a video link and receive an AI-generated structured overview, hashtags, and timeline highlights. The API supports videos from major platforms, Google Drive links, and locally uploaded files, along with language settings.
Supported Video Sources
The API accepts URLs from the following platforms: YouTube, Vimeo, Dailymotion, Kick, Twitch, TikTok, Facebook, Instagram, Zoom, Rumble, Google Drive and more.
You can also use locally uploaded files. Local upload requires a Standard plan or above. See the Upload API for details.
Workflow
- Submit a summarization task from a video URL
- Poll the results until status is
SUCCEEDED
Submit Summarization Task
Submit a new summarization task. This is the entry point for all summarization features.
POST https://wayinvideo-api.wayin.ai/open/v2/summaries
Request Body
| Parameter | Type | Required | Default | Description |
|---|
video_url | string | Yes | — | The source video URL or uploaded file identifier |
target_lang | string | No | Auto-detect | Target language for the summary (see Supported Languages). When omitted, the original language is used. |
Example Request
curl -X POST https://wayinvideo-api.wayin.ai/open/v2/summaries \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "x-wayinvideo-api-version: v2" \
-d '{
"video_url": "https://www.youtube.com/watch?v=example",
"target_lang": "en"
}'
Response
{
"code": "0",
"data": {
"project_id": "sum_proj_001",
"name": "sample project name",
"status": "CREATED"
},
"message": "success"
}
| Field | Type | Description |
|---|
project_id | string | Task identifier (used in subsequent requests) |
name | string | Task name |
status | string | CREATED, QUEUED, ONGOING, SUCCEEDED, FAILED |
Get Summary Results
Retrieve the summary, highlights, and tags. Poll until status is SUCCEEDED.
GET https://wayinvideo-api.wayin.ai/open/v2/summaries/results/{project_id}
Path Parameters
| Parameter | Type | Required | Description |
|---|
project_id | string | Yes | The task ID returned by the submit endpoint |
Example Request
curl -X GET https://wayinvideo-api.wayin.ai/open/v2/summaries/results/sum_proj_001 \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "x-wayinvideo-api-version: v2"
Response
{
"code": "0",
"data": {
"summary_id": "sum_abc123",
"status": "SUCCEEDED",
"title": "sample title",
"video_thumbnail": "https://cdn.example.com/thumb/video_001.jpg",
"summary": "sample description",
"tags": ["machine learning", "AI", "tutorial"],
"api_units_usage": 60,
"highlights": [
{
"start": "00:02:30",
"end": "00:05:45",
"desc": "sample description",
"highlight_summary": "sample description",
"highlight_frame": {
"raw": "https://cdn.example.com/frame/raw_001.jpg",
"thumb": "https://cdn.example.com/frame/thumb_001.jpg"
},
"events": [
{
"timestamp": "00:03:15",
"desc": "sample description",
"event_summary": "sample description"
}
]
}
]
},
"message": "success"
}
Summary Response Fields
| Field | Type | Description |
|---|
summary_id | string | Summary identifier |
status | string | CREATED, QUEUED, ONGOING, SUCCEEDED, FAILED |
title | string | AI-generated title |
video_thumbnail | string | Video thumbnail URL |
summary | string | Full text overview |
tags | string[] | AI-generated hashtags |
highlights | array | Timeline highlight segments (see below) |
api_units_usage | integer | API units consumed for this request |
Highlight Object
| Field | Type | Description |
|---|
start | string | Start timestamp (HH:MM:SS) |
end | string | End timestamp (HH:MM:SS) |
desc | string | Description of the highlight |
highlight_summary | string | Detailed summary of the segment |
highlight_frame | object | Frame images (raw, thumb) |
events | array | Key events within the highlight |
Event Object
| Field | Type | Description |
|---|
timestamp | string | Event timestamp |
desc | string | Event description |
event_summary | string | Detailed event summary |