### Example install command with a sample path Source: https://wayin.ai/api-docs/claude-code-integration Example of the install prompt with a sample local path to the downloaded ZIP file. Use this as a reference when entering your own path. ```text install the skill from /Users/example/Downloads/wayinvideo-video-understanding-and-ai-clipping.zip ``` -------------------------------- ### Install WayinVideo Skill in Codex Source: https://wayin.ai/api-docs/codex-integration Use these prompts in Codex to install the WayinVideo skill package. The first is a template with a placeholder for the ZIP file path; the second shows a concrete example path. After installation, you may need to reload Codex and start a new request with /wayinvideo. ```text Please install the WayinVideo skill package located at [the path of downloaded zip file]. ``` ```text Please install the WayinVideo skill package located at /Users/example/Downloads/wayinvideo-video-understanding-and-ai-clipping.zip. ``` -------------------------------- ### Install the skill manually with ClawHub CLI Source: https://wayin.ai/api-docs/skills-video-understanding-and-ai-clipping Run this command in the ClawHub CLI to manually install the skill. After installation, you will be prompted to send your API Key to the agent to complete setup. ```bash clawhub install WayinVideo/video-understanding-and-ai-clipping ``` -------------------------------- ### Install the WayinVideo/video-understanding-and-ai-clipping skill Source: https://wayin.ai/api-docs/skills-video-understanding-and-ai-clipping Use this command to install the skill in a compatible agent environment. The agent will handle the installation and prompt for your API Key when needed. ```text Install the WayinVideo/video-understanding-and-ai-clipping skill ``` -------------------------------- ### Install the WayinVideo/find-moments-in-the-video skill Source: https://wayin.ai/api-docs/skills-find-moments Command to install the skill by telling the agent. The agent will handle the installation and prompt for the API key. ```text Install the WayinVideo/find-moments-in-the-video skill ``` -------------------------------- ### Try Your First Prompt with /wayinvideo Source: https://wayin.ai/api-docs/claude-code-integration Start with this prompt after installing the WayinVideo skill. Replace [a youtube video link] with the video URL you want to process. Claude Code will use the skill to submit the video and return clip recommendations or generated clips. ```text Use /wayinvideo to clip the best moments from this video. I want to post them on TikTok: [a youtube video link] ``` -------------------------------- ### Submit Summarization Task - Python Example Source: https://wayin.ai/api-docs/video-summarization Python example using the requests library to submit a summarization task. Requires an API key and the x-wayinvideo-api-version header. ```python import requests requests.post( "https://wayinvideo-api.wayin.ai/api/v2/summaries", headers={ "Authorization": "Bearer YOUR_API_KEY", "x-wayinvideo-api-version": "v2", }, json={ "video_url": "https://www.youtube.com/watch?v=example", "target_lang": "en", }, ) ``` -------------------------------- ### Build a Clip Queue with /wayinvideo AI Clipping Source: https://wayin.ai/api-docs/codex-integration Use this prompt to request AI Clipping on a video and receive the strongest short clips with start time, end time, title, description, and score. Replace the example URL with the actual source video. ```text /wayinvideo Use AI Clipping on this video and return the strongest short clips. For each clip, include the start time, end time, title, description, and score: https://www.youtube.com/watch?v=example ``` -------------------------------- ### Submit Summarization Task - JavaScript Example Source: https://wayin.ai/api-docs/video-summarization JavaScript example using fetch to submit a summarization task. Requires an API key and the x-wayinvideo-api-version header. ```javascript await fetch("https://wayinvideo-api.wayin.ai/api/v2/summaries", { method: "POST", headers: { Authorization: "Bearer YOUR_API_KEY", "x-wayinvideo-api-version": "v2", "Content-Type": "application/json", }, body: JSON.stringify({ video_url: "https://www.youtube.com/watch?v=example", target_lang: "en", }), }); ``` -------------------------------- ### Example Request - curl GET /social-media/accounts Source: https://wayin.ai/api-docs/social-media-publishing Example request to list social media accounts with `active_only=true`. Requires an API key in the Authorization header and the API version header. ```bash curl -X GET "https://wayinvideo-api.wayin.ai/api/v2/social-media/accounts?active_only=true" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -H "x-wayinvideo-api-version: v2" ``` -------------------------------- ### Install AI Clipping skill via ClawHub CLI Source: https://wayin.ai/api-docs/skills-ai-clipping Use this command to manually install the AI Clipping skill via the ClawHub CLI. After running it, you will be prompted to send your API Key to complete setup. ```text clawhub install WayinVideo/ai-clipping ``` -------------------------------- ### Install the AI Clipping skill Source: https://wayin.ai/api-docs/skills-ai-clipping Use this command to install the AI Clipping skill in your agent environment. The agent will handle the installation and prompt for your API Key. ```text Install the WayinVideo/ai-clipping skill ``` -------------------------------- ### Submit Summarization Task - Response Example Source: https://wayin.ai/api-docs/video-summarization Example JSON response from the submit endpoint. Contains the task ID, name, and initial status CREATED. ```json { "data": { "id": "sum_proj_001", "name": "sample project name", "status": "CREATED" } } ``` -------------------------------- ### Publish endpoint example response Source: https://wayin.ai/api-docs/social-media-publishing Example response from the publish endpoint. The task_id identifies the publishing task, status is PENDING, and created_at is the creation timestamp in milliseconds. ```json { "data": { "task_id": "pubtask06ixxxxxxx", "status": "PENDING", "created_at": 1781251687210 } } ``` -------------------------------- ### Submit Summarization Task - curl Example Source: https://wayin.ai/api-docs/video-summarization Example curl command to submit a summarization task. Requires an API key and the x-wayinvideo-api-version header set to v2. ```bash curl -X POST https://wayinvideo-api.wayin.ai/api/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" }' ``` -------------------------------- ### Install the skill from a ZIP file in Claude Code Source: https://wayin.ai/api-docs/claude-code-integration Enter this prompt in Claude Code to install the WayinVideo skill from a downloaded ZIP file. Replace the placeholder with the actual local path to the ZIP file. ```text install the skill from [the path of downloaded zip file] ``` -------------------------------- ### Example response for transcription results Source: https://wayin.ai/api-docs/video-transcription Example response for a successful transcription. Shows status SUCCEEDED, cost_usage, and transcript segments with text, language, start, end, and speaker fields. ```json { "data": { "status": "SUCCEEDED", "cost_usage": 27.0, "transcript": [ { "text": "Welcome to today's presentation", "language": null, "start": 200, "end": 4500, "speaker": "Speaker 1" }, { "text": "Thanks for coming", "language": null, "start": 5000, "end": 8200, "speaker": "Speaker 2" } ] } } ``` -------------------------------- ### Submit Export Task - Response Example Source: https://wayin.ai/api-docs/clips-export Example JSON response from the export task submission, containing the export task ID, name, and status. ```json { "data": { "export_task_id": "export_task_xyz789", "name": "sample export task", "status": "CREATED" } } ``` -------------------------------- ### Example response JSON for summary results Source: https://wayin.ai/api-docs/video-summarization Example response from the results endpoint. Shows the structure with status, title, summary, tags, highlights (with start/end/desc/events), and cost_usage. The status field can be CREATED, QUEUED, ONGOING, SUCCEEDED, or FAILED. ```json { "data": { "status": "SUCCEEDED", "title": "sample title", "video_thumbnail": "https://cdn.example.com/thumb/video_001.jpg", "summary": "sample summary text", "tags": ["#topic1", "#topic2", "#topic3"], "highlights": [ { "start": 0, "end": 196000, "desc": "sample section title", "events": [ { "timestamp": 160, "desc": "sample event description" }, { "timestamp": 17920, "desc": "sample event description" } ] } ], "cost_usage": 54.0 } } ``` -------------------------------- ### Submit Export Task - Example Request (curl) Source: https://wayin.ai/api-docs/clips-export Example curl command to submit an export task with various options like resolution, captions, AI hook, and AI reframe. ```bash curl -X POST https://wayinvideo-api.wayin.ai/api/v2/clips/export \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "x-wayinvideo-api-version: v2" \ -d '{ "project_id": "proj_abc123", "clip_indices": [0, 2], "resolution": "UHD_4K", "enable_caption": true, "caption_display": "both", "cc_style_tpl": "word-focus", "enable_ai_hook": true, "ai_hook_script_style": "serious", "ai_hook_position": "beginning", "enable_ai_reframe": true, "ratio": "RATIO_9_16" }' ``` -------------------------------- ### Example request to get transcription results with curl Source: https://wayin.ai/api-docs/video-transcription Example request to retrieve results for a specific task ID (trans_proj_001). Replace YOUR_API_KEY with a key from the API Dashboard. ```bash curl -X GET https://wayinvideo-api.wayin.ai/api/v2/transcripts/results/trans_proj_001 \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "x-wayinvideo-api-version: v2" ``` -------------------------------- ### Find Product Demo Moments with /wayinvideo Source: https://wayin.ai/api-docs/claude-code-integration Find moments where the speaker explains product features. The response includes timestamps and short descriptions. ```text Use /wayinvideo to find moments where the speaker explains the product features. Return timestamps and short descriptions: https://www.youtube.com/watch?v=example ``` -------------------------------- ### Create a Summary for a CMS with /wayinvideo Source: https://wayin.ai/api-docs/codex-integration Use this prompt to find the best educational moments in a video and summarize each one with its timestamp, topic, and recommended clip title. ```text /wayinvideo Find the best educational moments in this video and summarize each one with its timestamp, topic, and recommended clip title: https://www.youtube.com/watch?v=example ``` -------------------------------- ### API Units consumption example response Source: https://wayin.ai/api-docs/pricing Example JSON response showing the cost_usage field indicating API Units consumed for a task. ```json { "data": { "id": "proj_abc123", "name": "sample project name", "status": "SUCCEEDED", "expire_at": 1775751200314, "clips": [ { ... } ], "cost_usage": 120 } } ``` -------------------------------- ### curl example for find-moments results Source: https://wayin.ai/api-docs/find-moments Example request to retrieve find-moments results. Requires the task ID returned by the submit endpoint and an API key. ```bash curl -X GET https://wayinvideo-api.wayin.ai/api/v2/clips/find-moments/results/proj_moment_456 \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "x-wayinvideo-api-version: v2" ``` -------------------------------- ### Clip a webinar recording into vertical 9:16 shorts with captions Source: https://wayin.ai/api-docs/ai-clipping Creates a vertical 9:16 short with captions and AI reframing. Sets target duration to 30-60 seconds, HD 720 resolution, and enables export. Replace YOUR_API_KEY with a valid key. ```bash curl -X POST https://wayinvideo-api.wayin.ai/api/v2/clips \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "x-wayinvideo-api-version: v2" \ -H "Content-Type: application/json" \ -d '{ "video_url": "https://www.youtube.com/watch?v=EXAMPLE", "target_duration": "DURATION_30_60", "enable_export": true, "resolution": "HD_720", "enable_caption": true, "enable_ai_reframe": true, "ratio": "RATIO_9_16" }' ``` -------------------------------- ### Submit a summarization request with curl Source: https://wayin.ai/api-docs/video-summarization Submit a summarization request. The first two examples are identical and cover YouTube videos and long podcast episodes; the third adds source_lang and target_lang to translate the summary into another language. Replace YOUR_API_KEY with a key from the API Dashboard. ```bash curl -X POST https://wayinvideo-api.wayin.ai/api/v2/summaries \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "x-wayinvideo-api-version: v2" \ -H "Content-Type: application/json" \ -d '{"video_url": "https://www.youtube.com/watch?v=EXAMPLE"}' ``` ```bash curl -X POST https://wayinvideo-api.wayin.ai/api/v2/summaries \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "x-wayinvideo-api-version: v2" \ -H "Content-Type: application/json" \ -d '{"video_url": "https://www.youtube.com/watch?v=EXAMPLE"}' ``` ```bash curl -X POST https://wayinvideo-api.wayin.ai/api/v2/summaries \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "x-wayinvideo-api-version: v2" \ -H "Content-Type: application/json" \ -d '{ "video_url": "https://www.youtube.com/watch?v=EXAMPLE", "source_lang": "en", "target_lang": "ja" }' ``` -------------------------------- ### Extract Moments for a Product Page with /wayinvideo Find Moments Source: https://wayin.ai/api-docs/codex-integration Use this prompt to locate every part where the speaker discusses product benefits or customer objections. The output should include timestamps and a one-sentence reason for each match. ```text /wayinvideo Use Find Moments to locate every part where the speaker discusses product benefits or customer objections. Return timestamps and a one-sentence reason for each match: https://www.youtube.com/watch?v=example ``` -------------------------------- ### Create clips with export enabled (curl request) Source: https://wayin.ai/api-docs/ai-clipping POST request to /api/v2/clips with enable_export set to true. This triggers immediate rendering of each clip and returns an export_link for each. Requires a valid API key and the x-wayinvideo-api-version header. ```bash curl -X POST https://wayinvideo-api.wayin.ai/api/v2/clips \ -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", "project_name": "sample project name", "target_duration": "DURATION_30_60", "enable_export": true, "resolution": "HD_720", "enable_caption": true, "enable_ai_reframe": true, "ratio": "RATIO_9_16" }' ``` -------------------------------- ### 429 Response Example Source: https://wayin.ai/api-docs/rate-limits Example JSON response returned when the rate limit or concurrency limit is exceeded. The response includes a timestamp, status code 429, error message, and the request path. ```json { "timestamp": "2026-03-10T15:52:01.610+00:00", "status": 429, "error": "Too Many Requests", "path": "/api/v2/clips/results/prjxxx" } ``` -------------------------------- ### Upload File with PUT - Using upload_url Source: https://wayin.ai/api-docs/upload Uploads the local file to the pre-signed URL using a PUT request. The @ in --data-binary is followed by the local file path. Uploading again with the same URL overwrites the previous file. ```bash curl -X PUT "https://storage.example.com/upload/presigned-url..." \ -H "Content-Type: video/mp4" \ --data-binary @/Users/me/Videos/sample-video.mp4 ``` -------------------------------- ### Get transcription results with GET /api/v2/transcripts/results/{id} Source: https://wayin.ai/api-docs/video-transcription Retrieves the transcript with word-level timestamps and speaker labels. Poll until status is SUCCEEDED. The id path parameter is the task ID returned by the submit endpoint. ```http GET https://wayinvideo-api.wayin.ai/api/v2/transcripts/results/{id} ``` -------------------------------- ### Publish a video via Wayin AI API (curl) Source: https://wayin.ai/api-docs/social-media-publishing Complete flow to publish a video: create a YouTube OAuth URL, list available accounts, then publish a clip. Requires a valid API key and an authorized account ID. ```bash curl -X POST https://wayinvideo-api.wayin.ai/api/v2/social-media/oauth/youtube \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -H "x-wayinvideo-api-version: v2" \ --data '' ``` ```bash curl -X GET "https://wayinvideo-api.wayin.ai/api/v2/social-media/accounts?active_only=true" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -H "x-wayinvideo-api-version: v2" ``` ```bash curl -sS -X POST https://wayinvideo-api.wayin.ai/api/v2/social-media/publish \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -H "x-wayinvideo-api-version: v2" \ -d '{ "project_id": "prj06ixxxxxxx", "idx": 0, "resolution": "1080p", "publish_configs": { "smacct06ixxxxxxx": { "title": "API Test Video", "description": "Posted by curl test", "tags": ["api", "test"], "visibility": "public" } }, "scheduled_at": null }' ``` -------------------------------- ### GET /api/v2/clips/results/{id} Source: https://wayin.ai/api-docs/ai-clipping Retrieves the status and clips for a given task ID. Poll this endpoint until the status is SUCCEEDED to get the complete set of clips. When the status is ONGOING, the response contains partial results generated so far. ```APIDOC ## GET /api/v2/clips/results/{id} ### Description Retrieve task status and clips. Poll this endpoint until `status` is `SUCCEEDED`. When `status` is `ONGOING`, each call returns the clips generated so far; when `status` changes to `SUCCEEDED`, the response contains the complete set of clips. ### Method GET ### Endpoint https://wayinvideo-api.wayin.ai/api/v2/clips/results/{id} ### Parameters #### Path Parameters - **id** (string) - Required - The task ID returned by the submit endpoint ### Request Example ``` curl -X GET https://wayinvideo-api.wayin.ai/api/v2/clips/results/proj_abc123 \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "x-wayinvideo-api-version: v2" ``` ### Response #### Success Response (200) - **data** (object) - Contains the task details and clips. - **id** (string) - Unique task identifier - **name** (string) - Task name - **status** (string) - `CREATED`, `QUEUED`, `ONGOING`, `SUCCEEDED`, `FAILED` - **error_message** (string) - Error reason (only present when `status` is `FAILED`) - **expire_at** (integer) - Expiration timestamp in milliseconds (epoch). After this time, the task expires and results can no longer be retrieved via the results endpoint. - **cost_usage** (number) - API units consumed for this request - **clips** (array) - List of clip objects. When `status` is `ONGOING`, this contains the clips generated so far (partial results); when `status` is `SUCCEEDED`, this contains all clips (final results). #### Clip Object - **idx** (integer) - Clip index (0-based, ranked by viral potential) - **title** (string) - AI-generated clip title - **begin_ms** (number) - Start time in milliseconds - **end_ms** (number) - End time in milliseconds - **thumbnail** (string) - Thumbnail image URL - **tags** (string[]) - AI-generated hashtags - **desc** (string) - AI-generated description - **score** (number) - Viral potential score (0–100, higher is better) - **export_link** (string) - Rendered video download URL (when `enable_export` is true). A new link is generated each time you call the results endpoint. Each link expires after 24 hours — please download the video before it expires. If the link has expired, call the results endpoint again to get a new one. #### Response Example (with export) ``` { "data": { "id": "proj_xyz789", "name": "sample project name", "status": "SUCCEEDED", "expire_at": 1741824000000, "cost_usage": 120.0, "clips": [ { "idx": 0, "title": "sample title", "begin_ms": 15000, "end_ms": 75000, "thumbnail": "https://cdn.example.com/thumb/clip_001.jpg", "tags": ["insight", "understanding"], "desc": "sample description", "score": 81, "export_link": "https://cdn.example.com/export/clip_001.mp4" }, { "idx": 1, "title": "sample title 2", "begin_ms": 120000, "end_ms": 195000, "thumbnail": "https://cdn.example.com/thumb/clip_002.jpg", "tags": ["tips", "summary"], "desc": "sample description", "score": 76, "export_link": "https://cdn.example.com/export/clip_002.mp4" } ] } } ``` #### Response Example (without export) ``` { "data": { "id": "proj_abc123", "name": "sample project name", "status": "SUCCEEDED", "expire_at": 1741824000000, "cost_usage": 120.0, "clips": [ { "idx": 0, "title": "sample title", "begin_ms": 15000, "end_ms": 75000, "thumbnail": "https://cdn.example.com/thumb/clip_001.jpg", "tags": ["insight", "understanding"], "desc": "sample description", "score": 81 }, { "idx": 1, "title": "sample title 2", "begin_ms": 120000, "end_ms": 195000, "thumbnail": "https://cdn.example.com/thumb/clip_002.jpg", "tags": ["tips", "summary"], "desc": "sample description", "score": 76 } ] } } ``` ``` -------------------------------- ### Get summary results with GET endpoint and curl Source: https://wayin.ai/api-docs/video-summarization Retrieve the summary results. The first block shows the endpoint with a path parameter {id}; the second is a concrete curl request using the task ID sum_proj_001. Poll until status is SUCCEEDED. ```http GET https://wayinvideo-api.wayin.ai/api/v2/summaries/results/{id} ``` ```bash curl -X GET https://wayinvideo-api.wayin.ai/api/v2/summaries/results/sum_proj_001 \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "x-wayinvideo-api-version: v2" ``` -------------------------------- ### Submit a Clipping Task with curl Source: https://wayin.ai/api-docs/quickstart Submit a video URL to create an AI clipping task. The response contains the project ID and status CREATED. Requires a valid API key and the x-wayinvideo-api-version header. ```bash curl -X POST https://wayinvideo-api.wayin.ai/api/v2/clips \ -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", "enable_export": false }' ``` ```json { "data": { "id": "proj_abc123", "name": "sample project name", "status": "CREATED" } } ``` -------------------------------- ### Example Request for Export Results Source: https://wayin.ai/api-docs/clips-export A cURL request to retrieve the status and results of a specific export task. ```bash curl -X GET https://wayinvideo-api.wayin.ai/api/v2/clips/export/export_task_xyz789 \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "x-wayinvideo-api-version: v2" ```