Media Cut Endpoint
1. Overview
The https://api.revidapi.com/paid/video/cut endpoint is part of the Flask API application and is designed to cut specified segments from a media file (video or audio) with optional encoding settings.
2. Endpoint
URL Path: https://api.revidapi.com/paid/video/cut
HTTP Method: POST
3. Request
Headers
x-api-key(required): The API key for authentication.
Body Parameters
The request body must be a JSON object with the following properties:
media_url(required, string): The URL of the media file to be cut.cuts(required, array of objects): An array of cut segments, where each object has the following properties:start(required, string): The start time of the cut segment in the formathh:mm:ss.ms.end(required, string): The end time of the cut segment in the formathh:mm:ss.ms.video_codec(optional, string): The video codec to be used for encoding the output file. Default islibx264.video_preset(optional, string): The video preset to be used for encoding the output file. Default ismedium.video_crf(optional, number): The Constant Rate Factor (CRF) value for video encoding. Must be between 0 and 51. Default is 23.audio_codec(optional, string): The audio codec to be used for encoding the output file. Default isaac.audio_bitrate(optional, string): The audio bitrate to be used for encoding the output file. Default is128k.webhook_url(optional, string): The URL to receive a webhook notification upon completion of the task.id(optional, string): A unique identifier for the request.
Example Request
{
"media_url": "https://example.com/video.mp4",
"cuts": [
{
"start": "00:00:10.000",
"end": "00:00:20.000"
},
{
"start": "00:00:30.000",
"end": "00:00:40.000"
}
],
"video_codec": "libx264",
"video_preset": "medium",
"video_crf": 23,
"audio_codec": "aac",
"audio_bitrate": "128k",
"webhook_url": "https://example.com/webhook",
"id": "unique-request-id"
}
1 |00:00:10.000| 00:00:20.000 | 10 seconds |
| 2 | 00:00:30.000 | 00:00:40.000 |10 seconds
Video Cutting Illustration
Below is the SVG illustration (embedded as Base64 image so StackEdit can display it):
curl -X POST \
https://api.revidapi.com/paid/video/cut \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"media_url": "https://example.com/video.mp4",
"cuts": [
{
"start": "00:00:10.000",
"end": "00:00:20.000"
},
{
"start": "00:00:30.000",
"end": "00:00:40.000"
}
],
"video_codec": "libx264",
"video_preset": "medium",
"video_crf": 23,
"audio_codec": "aac",
"audio_bitrate": "128k",
"webhook_url": "https://example.com/webhook",
"id": "unique-request-id"
}'
4. Response
Success Response
The success response follows the general response structure defined in the app.py file. Here's an example:
{
"code": 200,
"id": "unique-request-id",
"job_id": "a1b2c3d4-e5f6-g7h8-i9j0-k1l2m3n4o5p6",
"response": {
"file_url": "https://example.com/output.mp4"
},
"message": "success",
"run_time": 5.234,
"queue_time": 0.012,
"total_time": 5.246,
"pid": 12345,
"queue_id": 1234567890,
"queue_length": 0,
"build_number": "1.0.0"
}
Error Responses
- 400 Bad Request: Returned when the request payload is missing or invalid.
{
"code": 400,
"message": "Invalid request payload"
}
- 401 Unauthorized: Returned when the
x-api-keyheader is missing or invalid.
{
"code": 401,
"message": "Unauthorized"
}
- 500 Internal Server Error: Returned when an unexpected error occurs on the server.
{
"code": 500,
"message": "Internal Server Error"
}
5. Error Handling
The endpoint handles the following common errors:
- Missing or invalid request parameters: Returns a 400 Bad Request error.
- Authentication failure: Returns a 401 Unauthorized error if the
x-api-keyheader is missing or invalid. - Unexpected exceptions: Returns a 500 Internal Server Error if an unexpected exception occurs during the media cut process.
The main application context (app.py) also includes error handling for queue overload. If the maximum queue length is reached, the endpoint returns a 429 Too Many Requests error.
6. Usage Notes
- The
media_urlparameter must be a valid URL pointing to a media file (video or audio). - The
cutsparameter must be an array of objects, where each object specifies a start and end time for a cut segment in the formathh:mm:ss.ms. - The optional encoding parameters (
video_codec,video_preset,video_crf,audio_codec,audio_bitrate) can be used to customize the output file encoding settings. - The
webhook_urlparameter is optional and can be used to receive a webhook notification upon completion of the task. - The
idparameter is optional and can be used to uniquely identify the request.
7. Common Issues
- Providing an invalid or inaccessible
media_url. - Providing invalid or out-of-range values for the encoding parameters.
- Providing overlapping or invalid cut segments in the
cutsparameter.
8. Best Practices
- Validate the input parameters on the client-side before sending the request.
- Use the
webhook_urlparameter to receive notifications and handle the response asynchronously. - Monitor the
queue_lengthparameter in the response to manage the load on the API. - Use the
idparameter to correlate requests and responses for better tracking and debugging.