Introduction
The WayinVideo API enables everyone to integrate AI-powered video processing into their automation workflows. It is built to process videos of all lengths quickly, reliably, and efficiently, including hours-long videos, making it well suited for content pipelines across podcasts, gaming livestreams, webinars, tutorials, online courses, interviews, meetings, vlogs, citywalk footage, sports videos, ecommerce videos, product demos, and more. Submit a video URL or uploaded file, and receive AI-generated clips, summaries, transcripts, and more.
Key Capabilities
- AI Clipping: Submit a video of any length and receive all clips ranked by viral potential, with auto-detected start/end timestamps, AI-generated titles, descriptions, and hashtags. Optionally export rendered clip videos.
- Find Moments: Describe the moments you want in natural language — such as "funny moments" or "exciting goal moments" — and the API quickly finds and extracts matching clips with timestamps, titles, and descriptions from videos of all lengths, including hours-long videos. Optionally export rendered clip videos.
- Video Summarization: Generate a structured overview, hashtags, and timeline highlights from videos of all lengths, including hours-long long-form content, with fast and stable processing.
- Video Transcription: Extract transcripts with speaker identification from video or audio content.
Supported Video Sources
The API accepts URLs from the following platforms:
- YouTube
- Vimeo
- Dailymotion
- Kick
- Rumble
- Zoom
- Twitch
- TikTok
More platforms are coming soon.
You can also use locally uploaded files. See the Upload API for details.
Base URL
All API requests are made to:
https://wayinvideo-api.wayin.ai/api/v2
Request Format
The API is RESTful and accepts JSON-formatted request bodies. All requests must include the following headers:
Content-Type: application/json
Authorization: Bearer YOUR_API_KEY
x-wayinvideo-api-version: v2
Response Format
Success (HTTP 200)
When the request succeeds, the API returns HTTP status 200 and a JSON body containing only the payload in data:
{
"data": {
"project_id": "prj06928fdjqqaza",
"name": "Sample project name",
"status": "SUCCEEDED"
}
}
The structure of data varies by endpoint; see each API’s documentation for details. For error responses and other HTTP status codes, see Status Codes.
Status Lifecycle
Many endpoints return an asynchronous processing status. The lifecycle is:
CREATED → QUEUED → ONGOING → SUCCEEDED / FAILED
Use polling to check the status until it reaches SUCCEEDED or FAILED. When a task fails, the response data includes an error_message field describing the reason.