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_size
of 18-23 for optimal readability. - Center captions with a
vertical_position
near 130. - Use a
border_thickness
of 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
captions
parameter—new and improved! - API Key: Always include your key in the
Authorization
header. - Clip Retention: Generated clips are available for 24 hours before automatic deletion.
- Status Checks: Use a valid
taskID
to track progress.