Getting Started
Welcome to the Clipping Software API! This powerful tool lets you create viral video clips from longer videos with ease. Submit a request to generate clips and track their progress—all through a simple, intuitive API.
Base URL
https://api.clipping.software
Authentication
Secure your API requests by including your API key in the Authorization header of every call.
How to Use Your API Key
Authorization: Bearer YOUR_API_KEY
Generate Clip
Use this endpoint to kick off a clip generation task, turning your long-form videos into short, shareable clips.
Generate Clip
Submits a new clip generation request.
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| api_key | string | Yes | Your API key (via Authorization header) |
| finalVideo_type | string | Yes | Output format: "Wide", "Vertical", or "Fit" |
| numberOfClips | integer | No | Number of clips to generate(Default: 1 clip per 5 minute limited to 10 max clips) You can manually set this to any value. |
| captions | boolean | No | Enable captions (default: false) |
| captionStyle | object | No | Customize caption appearance (see Styling Captions) |
| ai_clipping | boolean | No | Enable AI-powered clipping for Vertical videos (default: false) |
| videoUrl | string | Yes* | URL of the source video (use this or yt_link) |
| yt_link | string | Yes* | YouTube link of the source video (use this or videoUrl) |
*Either videoUrl or yt_link is required.
Response Example
{
"taskID": "abc123",
"status": "PROCESSING",
"message": "Task is processing"
}
Code Examples
curl -X POST "https://api.clipping.software/generate" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"finalVideo_type": "Wide",
"numberOfClips": 3,
"captions": true,
"videoUrl": "https://cdn.clipping.software/video.mp4"
}'
import requests
url = "https://api.clipping.software/generate"
headers = {"Authorization": "Bearer YOUR_API_KEY", "Content-Type": "application/json"}
data = {
"finalVideo_type": "Wide",
"numberOfClips": 3,
"captions": True,
"videoUrl": "https://cdn.clipping.software/video.mp4"
}
response = requests.post(url, json=data, headers=headers)
print(response.json())
fetch("https://api.clipping.software/generate", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_KEY"
},
body: JSON.stringify({
finalVideo_type: "Wide",
numberOfClips: 3,
captions: true,
videoUrl: "https://cdn.clipping.software/video.mp4"
})
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error("Error:", error));
Check Task Status
Monitor the progress of your clip generation tasks with this endpoint.
Check Status
Retrieves the current status of a task.
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| api_key | string | Yes | Your API key (via Authorization header) |
| taskID | string | Yes | Task ID returned from the /generate endpoint |
Response Examples
{
"taskID": "abc123",
"status": "PROCESSING",
"message": "Task is processing"
}
{
"taskID": "abc123",
"status": "COMPLETED",
"videoUrls": [
"https://cdn.clipping.software/clip1.mp4",
"https://cdn.clipping.software/clip2.mp4"
],
"videoLength":43244.32,
"finalVideoType":"Wide",
"numberOfClips":"2"
"description": "Task completed successfully"
}
Code Examples
curl -X GET "https://api.clipping.software/status?taskID=abc123" \
-H "Authorization: Bearer YOUR_API_KEY"
import requests
url = "https://api.clipping.software/status"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
params = {"taskID": "abc123"}
response = requests.get(url, headers=headers, params=params)
print(response.json())
fetch("https://api.clipping.software/status?taskID=abc123", {
headers: {"Authorization": "Bearer YOUR_API_KEY"}
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error("Error:", error));
Styling Captions
Personalize your video clips with custom captions. Adjust their size, position, and border to match your style.
Overview
The captionStyle parameter lets you tweak caption appearance. If omitted, defaults apply.
Default Values
font_size: 26 (suggested: 18-23)vertical_position: 130 (centered)border_thickness: 1 (subtle border)
Properties
| Parameter | Type | Range | Default | Description |
|---|---|---|---|---|
| font_size | int | 5 to 30 | 26 | Sets text size (5 = smallest, 30 = largest) |
| vertical_position | int | 0 to 260 | 130 | Positions captions (0 = bottom, 260 = top) |
| border_thickness | int | 0 to 6 | 1 | Sets border width (0 = none, 6 = thickest) |
Example Request Body
{
"captionStyle": {
"font_size": 22,
"vertical_position": 100,
"border_thickness": 2
}
}
Response Examples
{
"message": "Video generated successfully with custom captions"
}
{
"detail": "Invalid font_size. Expected an integer between 5 and 30."
}
Full Example Request
Endpoint: https://api.clipping.software/generate
curl -X POST "https://api.clipping.software/generate" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"finalVideo_type": "Wide",
"numberOfClips": 3,
"captions": true,
"videoUrl": "https://cdn.clipping.software/video.mp4",
"captionStyle": {
"font_size": 26,
"vertical_position": 30,
"border_thickness": 2
}
}'
import requests
url = "https://api.clipping.software/generate"
headers = {"Authorization": "Bearer YOUR_API_KEY", "Content-Type": "application/json"}
data = {
"finalVideo_type": "Wide",
"numberOfClips": 3,
"captions": True,
"videoUrl": "https://cdn.clipping.software/video.mp4",
"captionStyle": {
"font_size": 26,
"vertical_position": 30,
"border_thickness": 2
}
}
response = requests.post(url, json=data, headers=headers)
print(response.json())
fetch("https://api.clipping.software/generate", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_KEY"
},
body: JSON.stringify({
finalVideo_type: "Wide",
numberOfClips: 3,
captions: true,
videoUrl: "https://cdn.clipping.software/video.mp4",
captionStyle: {
font_size: 26,
vertical_position: 30,
border_thickness: 2
}
})
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error("Error:", error));
Best Practices
- Opt for a
font_sizeof 18-23 for optimal readability. - Center captions with a
vertical_positionnear 130. - Use a
border_thicknessof 1 or 2 for subtle contrast.
Wrap-Up
With caption styling, you can make your clips stand out. Experiment with these options to find the perfect look—just ensure your values stay within the specified ranges!
Billing and Cost
We’ve designed our pricing to be transparent and flexible, so you only pay for what you use. Costs are calculated based on two key factors: the length of your source video and the number of clips you request. Plus, we’ve added a small surcharge for captions if you choose to enable them.
How Costs Are Calculated
The base cost for generating clips is determined by this formula:
Cost = 0.00443 * (videoLength / 60) + 0.124 * (numberOfClips)
- videoLength: Duration of the source video in seconds
- numberOfClips: Number of clips requested
Captions Add-On: If you enable captions, an additional $0.005 per clip is added to the total cost.
Example Scenarios
Let’s break it down with a couple of examples:
- Scenario 1: A 300-second video, 3 clips, no captions
- Cost = 0.00443 * (300 / 60) + 0.124 * 3
- = 0.00443 * 5 + 0.124 * 3 = 0.02215 + 0.372 = $0.39415
- Scenario 2: A 600-second video, 5 clips, with captions
- Base Cost = 0.00443 * (600 / 60) + 0.124 * 5
- = 0.00443 * 10 + 0.124 * 5 = 0.0443 + 0.62 = $0.6643
- Captions Cost = 0.005 * 5 = $0.025
- Total = 0.6643 + 0.025 = $0.6893
Billing Process
Here’s how it works:
- Upfront Deduction: The estimated cost is deducted from your account when you start a task.
- Fair Refunds: If an error occurs or fewer clips are generated than requested, we’ll refund the difference automatically. You’re only charged for what’s successfully delivered.
Why This Model?
Our pricing reflects the resources needed to process your videos while keeping things affordable. Whether you’re clipping a short promo or a lengthy stream, you’ll always know what to expect.
Error Handling
We use standard HTTP status codes to signal the outcome of your requests. Here’s what to watch for:
| HTTP Status Code | Meaning |
|---|---|
| 400 Bad Request | Invalid parameters or malformed request |
| 403 Forbidden | Missing or invalid API key |
| 404 Not Found | Task ID not found |
Check the response body for detailed error messages to troubleshoot issues quickly.
Notes
A few key details to keep in mind when using the Clipping Software API:
Key Highlights
- Captions: Add captions to your clips with the
captionsparameter—new and improved! - API Key: Always include your key in the
Authorizationheader. - Clip Retention: Generated clips are available for 24 hours before automatic deletion.
- Status Checks: Use a valid
taskIDto track progress.