API Reference
Access powerful APIs through our unified platform. Simple authentication, transparent pricing, and comprehensive documentation.
Important: File Retention Policy
All files hosted on our servers are automatically deleted after 24 hours. Please ensure you download your generated files within this timeframe.
Secure
Enterprise-grade security with API key authentication
Fast
Low-latency proxy with global edge network
Reliable
99.9% uptime SLA with automatic failover
Get Started
Authentication
All API requests require authentication using your API key. Include your key in the request header:
curl https://eranol.com/api/v1/endpoint \
-H "x-api-key: YOUR_API_KEY"Verify API Key
You can verify that your API key is valid and check your account details by calling the verify endpoint:
curl https://eranol.com/api/v1/verify \
-H "x-api-key: YOUR_API_KEY"Response:
{
"valid": true,
"account": {
"id": "your-account-id",
"name": "Your Account Name",
"credits": 1500
}
}Rate Limits
Rate limits vary by plan. Check your current usage in the dashboard. Rate limit headers are included in all responses:
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 999
X-RateLimit-Reset: 1640995200Available APIs
Add Intro
POSTPrepend an intro clip to a video. Both clips are re-encoded to matching parameters and concatenated using the FFmpeg concat demuxer. Example: {"url": "https://cdn.example.com/main.mp4", "intro_url": "https://cdn.example.com/intro.mp4"}
Endpoint
Send your requests to the following URL using the specified HTTP method.
POST https://eranol.com/api/v1/ffmpeg/video/add-introHeaders
Include the following headers with every request. Your API key is required for authentication.
Request Body
Send the following JSON payload in the request body. Adjust the values to match your use case.
{
"url": "https://cdn.example.com/main.mp4",
"intro_url": "https://cdn.example.com/intro.mp4"
}Parameters
All available options for this endpoint. Required parameters are marked accordingly.
| Parameter | Type | Default | Description |
|---|---|---|---|
| url | string | required | Main video file URL |
| intro_url | string | required | Intro clip URL to prepend |
Example Request
Use the following cURL command to make a request to this API endpoint. Replace YOUR_API_KEY with your actual API key from the dashboard.
curl -X POST "https://eranol.com/api/v1/ffmpeg/video/add-intro" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://cdn.example.com/main.mp4","intro_url":"https://cdn.example.com/intro.mp4"}'Example Response
Below is an example of a successful JSON response from this endpoint.
{
"job_id": "f595b9ad-1e15-4452-b7c2-8f8ff09c0a34",
"status": "pending",
"message": "Job created. Poll status_url for progress.",
"job_type": "caption",
"result_url": "https://eranol.com/api/v1/ffmpeg/result/f595b9ad-1e15-4452-b7c2-8f8ff09c0a34",
"status_url": "https://eranol.com/api/v1/ffmpeg/status/f595b9ad-1e15-4452-b7c2-8f8ff09c0a34"
}Response Status
A successful request will return one of the following HTTP status codes.
Add Outro
POSTAppend an outro clip to a video. Both clips are re-encoded to matching parameters and concatenated using the FFmpeg concat demuxer. Example: {"url": "https://cdn.example.com/main.mp4", "outro_url": "https://cdn.example.com/outro.mp4"}
Endpoint
Send your requests to the following URL using the specified HTTP method.
POST https://eranol.com/api/v1/ffmpeg/video/add-outroHeaders
Include the following headers with every request. Your API key is required for authentication.
Request Body
Send the following JSON payload in the request body. Adjust the values to match your use case.
{
"url": "https://cdn.example.com/main.mp4",
"outro_url": "https://cdn.example.com/outro.mp4"
}Parameters
All available options for this endpoint. Required parameters are marked accordingly.
| Parameter | Type | Default | Description |
|---|---|---|---|
| url | string | required | Main video file URL |
| outro_url | string | required | Outro clip URL to append |
Example Request
Use the following cURL command to make a request to this API endpoint. Replace YOUR_API_KEY with your actual API key from the dashboard.
curl -X POST "https://eranol.com/api/v1/ffmpeg/video/add-outro" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://cdn.example.com/main.mp4","outro_url":"https://cdn.example.com/outro.mp4"}'Example Response
Below is an example of a successful JSON response from this endpoint.
{
"job_id": "f595b9ad-1e15-4452-b7c2-8f8ff09c0a34",
"status": "pending",
"message": "Job created. Poll status_url for progress.",
"job_type": "caption",
"result_url": "https://eranol.com/api/v1/ffmpeg/result/f595b9ad-1e15-4452-b7c2-8f8ff09c0a34",
"status_url": "https://eranol.com/api/v1/ffmpeg/status/f595b9ad-1e15-4452-b7c2-8f8ff09c0a34"
}Response Status
A successful request will return one of the following HTTP status codes.
Background Audio
POSTAdd Background Audio
Endpoint
Send your requests to the following URL using the specified HTTP method.
POST https://eranol.com/api/v1/ffmpeg/video/add-bg-audioRequest Body
Send the following JSON payload in the request body. Adjust the values to match your use case.
{
"video_url": "https://cdn.example.com/video.mp4",
"bg_audio_url": "https://cdn.example.com/music.mp3",
"bg_audio_volume": 0.2
}Example Request
Use the following cURL command to make a request to this API endpoint. Replace YOUR_API_KEY with your actual API key from the dashboard.
curl -X POST "https://eranol.com/api/v1/ffmpeg/video/add-bg-audio" \
-H "x-api-key: YOUR_API_KEY" \
-d '{"video_url":"https://cdn.example.com/video.mp4","bg_audio_url":"https://cdn.example.com/music.mp3","bg_audio_volume":0.2}'Example Response
Below is an example of a successful JSON response from this endpoint.
[
{
"job_id": "1406c589-a1f4-45d5-8745-aae07bc4de38",
"status": "pending",
"message": "Job created. Poll status_url for progress.",
"result_url": "https://eranol.com/api/v1/ffmpeg/result/1406c589-a1f4-45d5-8745-aae07bc4de38",
"status_url": "https://eranol.com/api/v1/ffmpeg/status/1406c589-a1f4-45d5-8745-aae07bc4de38"
}
]Response Status
A successful request will return one of the following HTTP status codes.
Captions Api
POSTGenerate captions from a video's audio using Vosk speech recognition and burn them onto the video with custom styling. Returns both the captioned video file and an SRT subtitle file. The pipeline: download → extract audio → transcribe → generate subtitles → burn onto video. positions : "bottom", "top", "center"
Endpoint
Send your requests to the following URL using the specified HTTP method.
POST https://eranol.com/api/v1/ffmpeg/video/captionHeaders
Include the following headers with every request. Your API key is required for authentication.
Request Body
Send the following JSON payload in the request body. Adjust the values to match your use case.
{
"url": "https://cdn.example.com/video.mp4",
"language": "en",
"position": "bottom",
"font_size": 24,
"font_color": "white",
"padding_top": 30,
"outline_color": "black",
"outline_width": 2,
"padding_bottom": 30,
"max_words_per_line": 7,
"max_segment_duration": 3
}Parameters
All available options for this endpoint. Required parameters are marked accordingly.
| Parameter | Type | Default | Description |
|---|---|---|---|
| url | string | required | Video file URL |
| language | string | null | BCP-47 language code (e.g. en, es, zh). Omit to auto-detect |
| font_color | string | white | Subtitle color — name (white, yellow, red, etc.) or hex (#FFFF00) |
| font_size | int | 24 | Font size in pixels (8–500) |
| outline_color | string | black | Text outline color for readability |
| outline_width | int | 2 | Outline thickness in pixels (0–10, 0 disables) |
| position | string | bottom | Subtitle position: bottom, top, or center |
| padding_bottom | int | 30 | Pixel offset from bottom edge |
| padding_top | int | 30 | Pixel offset from top edge |
| max_words_per_line | int | 7 | Max words per subtitle segment (1–20) |
| max_segment_duration | float | 3.0 | Max seconds per subtitle segment (0.5–10.0) |
Supported Languages
Pass any code below as the language parameter. Omit it entirely to let the API auto-detect the language.
| Code | Language |
|---|---|
| en | English |
| zh | Chinese |
| es | Spanish |
| hi | Hindi |
| ar | Arabic |
| fr | French |
| pt | Portuguese |
| ru | Russian |
| de | German |
| ja | Japanese |
| ko | Korean |
| it | Italian |
| tr | Turkish |
| pl | Polish |
| nl | Dutch |
| vi | Vietnamese |
| id | Indonesian |
| th | Thai |
| ms | Malay |
| uk | Ukrainian |
Showing 20 most spoken — use filters or search to see all 99
Example Request— English captions (default)
Use the following cURL command to make a request to this API endpoint. Replace YOUR_API_KEY with your actual API key from the dashboard.
curl -X POST "https://eranol.com/api/v1/ffmpeg/video/caption" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://cdn.example.com/video.mp4","language":"en","position":"bottom","font_size":24,"font_color":"white","padding_top":30,"outline_color":"black","outline_width":2,"padding_bottom":30,"max_words_per_line":7,"max_segment_duration":3}'Example Response
Below is an example of a successful JSON response from this endpoint.
{
"job_id": "f595b9ad-1e15-4452-b7c2-8f8ff09c0a34",
"status": "pending",
"message": "Job created. Poll status_url for progress.",
"job_type": "caption",
"result_url": "https://eranol.com/api/v1/ffmpeg/result/f595b9ad-1e15-4452-b7c2-8f8ff09c0a34",
"status_url": "https://eranol.com/api/v1/ffmpeg/status/f595b9ad-1e15-4452-b7c2-8f8ff09c0a34"
}Response Status
A successful request will return one of the following HTTP status codes.
Compose
POSTCompose Videos in order with this api Video format we support : mp4,webm,avi,mkv,mov,flv,wmv,ts,mts,m4v,3gp,ogv
Endpoint
Send your requests to the following URL using the specified HTTP method.
POST https://eranol.com/api/v1/ffmpeg/video/composeRequest Body
Send the following JSON payload in the request body. Adjust the values to match your use case.
{
"overlays": [
{
"url": "https://drive.google.com/file/d/1m7tEpD6j6H0xc5sfdmP1_eYaSJ7f-KEn/view?usp=sharing",
"type": "video",
"end_time": 5,
"start_time": 2
},
{
"url": "https://drive.google.com/file/d/1KOiZk-hIufPfaPAA6EGsUjatX1gngHEL/view?usp=sharing",
"type": "image",
"end_time": 9,
"start_time": 7
},
{
"url": "https://drive.google.com/file/d/1qG-MU1puA97lbAGpxe73ujWHKOFBy6PC/view?usp=sharing",
"type": "image",
"end_time": 13,
"start_time": 10
},
{
"url": "https://drive.google.com/file/d/192Q3crtd78UCQBky19dlniUpcx6aMQyD/view?usp=sharing",
"type": "video",
"end_time": 17,
"start_time": 15
},
{
"url": "https://drive.google.com/file/d/1qmSrNHWtD_Xw5eLbqKy1X9SxIG6Df3sz/view?usp=sharing",
"type": "image",
"end_time": 20,
"start_time": 19
},
{
"url": "https://drive.google.com/file/d/1jARcma7U_ruvqsCpCGn2gdcHzgUIS4dE/view?usp=sharing",
"type": "image",
"end_time": 22,
"start_time": 21
},
{
"url": "https://drive.google.com/file/d/1u0CBgVwk2oEV5g-g6qt8CWgUogTbfBqM/view?usp=sharing",
"type": "video",
"end_time": 26,
"start_time": 23
},
{
"url": "https://drive.google.com/file/d/1GkxhO7z8-VDY-f9RCIOYaQmRBVDWAW7N/view?usp=sharing",
"type": "image",
"end_time": 29,
"start_time": 27
}
],
"main_video_url": "https://drive.google.com/file/d/1luBj--jqBTlCCMRcsYQYY1A3cPxkdprx/view?usp=drive_link"
}Example Request
Use the following cURL command to make a request to this API endpoint. Replace YOUR_API_KEY with your actual API key from the dashboard.
curl -X POST "https://eranol.com/api/v1/ffmpeg/video/compose" \
-H "x-api-key: YOUR_API_KEY" \
-d '{"overlays":[{"url":"https://drive.google.com/file/d/1m7tEpD6j6H0xc5sfdmP1_eYaSJ7f-KEn/view?usp=sharing","type":"video","end_time":5,"start_time":2},{"url":"https://drive.google.com/file/d/1KOiZk-hIufPfaPAA6EGsUjatX1gngHEL/view?usp=sharing","type":"image","end_time":9,"start_time":7},{"url":"https://drive.google.com/file/d/1qG-MU1puA97lbAGpxe73ujWHKOFBy6PC/view?usp=sharing","type":"image","end_time":13,"start_time":10},{"url":"https://drive.google.com/file/d/192Q3crtd78UCQBky19dlniUpcx6aMQyD/view?usp=sharing","type":"video","end_time":17,"start_time":15},{"url":"https://drive.google.com/file/d/1qmSrNHWtD_Xw5eLbqKy1X9SxIG6Df3sz/view?usp=sharing","type":"image","end_time":20,"start_time":19},{"url":"https://drive.google.com/file/d/1jARcma7U_ruvqsCpCGn2gdcHzgUIS4dE/view?usp=sharing","type":"image","end_time":22,"start_time":21},{"url":"https://drive.google.com/file/d/1u0CBgVwk2oEV5g-g6qt8CWgUogTbfBqM/view?usp=sharing","type":"video","end_time":26,"start_time":23},{"url":"https://drive.google.com/file/d/1GkxhO7z8-VDY-f9RCIOYaQmRBVDWAW7N/view?usp=sharing","type":"image","end_time":29,"start_time":27}],"main_video_url":"https://drive.google.com/file/d/1luBj--jqBTlCCMRcsYQYY1A3cPxkdprx/view?usp=drive_link"}'Example Response
Below is an example of a successful JSON response from this endpoint.
[
{
"job_id": "1406c589-a1f4-45d5-8745-aae07bc4de38",
"status": "pending",
"message": "Job created. Poll status_url for progress.",
"result_url": "https://eranol.com/api/v1/ffmpeg/result/1406c589-a1f4-45d5-8745-aae07bc4de38",
"status_url": "https://eranol.com/api/v1/ffmpeg/status/1406c589-a1f4-45d5-8745-aae07bc4de38"
}
]Response Status
A successful request will return one of the following HTTP status codes.
Concat
POSTMerge Videos in order with this api Video format we support : mp4,webm,avi,mkv,mov,flv,wmv,ts,mts,m4v,3gp,ogv
Endpoint
Send your requests to the following URL using the specified HTTP method.
POST https://eranol.com/api/v1/ffmpeg/video/concatRequest Body
Send the following JSON payload in the request body. Adjust the values to match your use case.
{
"clips": [
{
"url": "https://cdn.eranol.com/videos/intro.mp4",
"order": 1
},
{
"url": "https://cdn.eranol.com/videos/main-segment.mov",
"order": 2
},
{
"url": "https://cdn.eranol.com/videos/outro.webm",
"order": 3
}
]
}Example Request— Default
Use the following cURL command to make a request to this API endpoint. Replace YOUR_API_KEY with your actual API key from the dashboard.
curl -X POST "https://eranol.com/api/v1/ffmpeg/video/concat" \
-H "x-api-key: YOUR_API_KEY" \
-d '{"clips":[{"url":"https://cdn.eranol.com/videos/intro.mp4","order":1},{"url":"https://cdn.eranol.com/videos/main-segment.mov","order":2},{"url":"https://cdn.eranol.com/videos/outro.webm","order":3}]}'Example Response
Below is an example of a successful JSON response from this endpoint.
[
{
"job_id": "1406c589-a1f4-45d5-8745-aae07bc4de38",
"status": "pending",
"message": "Job created. Poll status_url for progress.",
"result_url": "https://eranol.com/api/v1/ffmpeg/result/1406c589-a1f4-45d5-8745-aae07bc4de38",
"status_url": "https://eranol.com/api/v1/ffmpeg/status/1406c589-a1f4-45d5-8745-aae07bc4de38"
}
]Response Status
A successful request will return one of the following HTTP status codes.
Convert a video file to MP4
POSTConvert a video file to MP4 format. Example: {"url": "https://cdn.example.com/audio.mpeg"}
Endpoint
Send your requests to the following URL using the specified HTTP method.
POST https://eranol.com/api/v1/ffmpeg/convert/video/to/mp4Headers
Include the following headers with every request. Your API key is required for authentication.
Request Body
Send the following JSON payload in the request body. Adjust the values to match your use case.
{
"url": "https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.webm"
}Example Request
Use the following cURL command to make a request to this API endpoint. Replace YOUR_API_KEY with your actual API key from the dashboard.
curl -X POST "https://eranol.com/api/v1/ffmpeg/convert/video/to/mp4" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.webm"}'Example Response
Below is an example of a successful JSON response from this endpoint.
[
{
"job_id": "1406c589-a1f4-45d5-8745-aae07bc4de38",
"status": "pending",
"message": "Job created. Poll status_url for progress.",
"result_url": "https://eranol.com/api/v1/ffmpeg/result/1406c589-a1f4-45d5-8745-aae07bc4de38",
"status_url": "https://eranol.com/api/v1/ffmpeg/status/1406c589-a1f4-45d5-8745-aae07bc4de38"
}
]Response Status
A successful request will return one of the following HTTP status codes.
Convert Audio to Mp3
POSTConvert an audio file to MP3 format. Example: {"url": "https://cdn.example.com/audio.wav"}
Endpoint
Send your requests to the following URL using the specified HTTP method.
POST https://eranol.com/api/v1/ffmpeg/convert/audio/to/mp3Headers
Include the following headers with every request. Your API key is required for authentication.
Request Body
Send the following JSON payload in the request body. Adjust the values to match your use case.
{
"url": "https://dl.espressif.com/dl/audio/ff-16b-2c-44100hz.wav"
}Example Request
Use the following cURL command to make a request to this API endpoint. Replace YOUR_API_KEY with your actual API key from the dashboard.
curl -X POST "https://eranol.com/api/v1/ffmpeg/convert/audio/to/mp3" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://dl.espressif.com/dl/audio/ff-16b-2c-44100hz.wav"}'Example Response
Below is an example of a successful JSON response from this endpoint.
[
{
"job_id": "1406c589-a1f4-45d5-8745-aae07bc4de38",
"status": "pending",
"message": "Job created. Poll status_url for progress.",
"result_url": "https://eranol.com/api/v1/ffmpeg/result/1406c589-a1f4-45d5-8745-aae07bc4de38",
"status_url": "https://eranol.com/api/v1/ffmpeg/status/1406c589-a1f4-45d5-8745-aae07bc4de38"
}
]Response Status
A successful request will return one of the following HTTP status codes.
Convert Audio to wav
POSTConvert an audio file to wav format. Example: {"url": "https://cdn.example.com/audio.mp3"}
Endpoint
Send your requests to the following URL using the specified HTTP method.
POST https://eranol.com/api/v1/ffmpeg/convert/audio/to/wavHeaders
Include the following headers with every request. Your API key is required for authentication.
Request Body
Send the following JSON payload in the request body. Adjust the values to match your use case.
{
"url": "https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.mp3"
}Example Request
Use the following cURL command to make a request to this API endpoint. Replace YOUR_API_KEY with your actual API key from the dashboard.
curl -X POST "https://eranol.com/api/v1/ffmpeg/convert/audio/to/wav" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.mp3"}'Example Response
Below is an example of a successful JSON response from this endpoint.
[
{
"job_id": "1406c589-a1f4-45d5-8745-aae07bc4de38",
"status": "pending",
"message": "Job created. Poll status_url for progress.",
"result_url": "https://eranol.com/api/v1/ffmpeg/result/1406c589-a1f4-45d5-8745-aae07bc4de38",
"status_url": "https://eranol.com/api/v1/ffmpeg/status/1406c589-a1f4-45d5-8745-aae07bc4de38"
}
]Response Status
A successful request will return one of the following HTTP status codes.
Convert to JPG
POSTConvert an image file to JPG format. Example: {"url": "https://cdn.example.com/photo.png"}
Endpoint
Send your requests to the following URL using the specified HTTP method.
POST https://eranol.com/api/v1/ffmpeg/convert/image/to/jpgHeaders
Include the following headers with every request. Your API key is required for authentication.
Request Body
Send the following JSON payload in the request body. Adjust the values to match your use case.
{
"url": "https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.png"
}Example Request
Use the following cURL command to make a request to this API endpoint. Replace YOUR_API_KEY with your actual API key from the dashboard.
curl -X POST "https://eranol.com/api/v1/ffmpeg/convert/image/to/jpg" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.png"}'Example Response
Below is an example of a successful JSON response from this endpoint.
[
{
"job_id": "1406c589-a1f4-45d5-8745-aae07bc4de38",
"status": "pending",
"message": "Job created. Poll status_url for progress.",
"result_url": "https://eranol.com/api/v1/ffmpeg/result/1406c589-a1f4-45d5-8745-aae07bc4de38",
"status_url": "https://eranol.com/api/v1/ffmpeg/status/1406c589-a1f4-45d5-8745-aae07bc4de38"
}
]Response Status
A successful request will return one of the following HTTP status codes.
Convert to WebM
POSTConvert a video file to WebM format (VP9 + Opus). Example: {"url": "https://cdn.example.com/video.mp4"}
Endpoint
Send your requests to the following URL using the specified HTTP method.
POST https://eranol.com/api/v1/ffmpeg/convert/video/to/webmHeaders
Include the following headers with every request. Your API key is required for authentication.
Request Body
Send the following JSON payload in the request body. Adjust the values to match your use case.
{
"url": "https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.mp4"
}Example Request
Use the following cURL command to make a request to this API endpoint. Replace YOUR_API_KEY with your actual API key from the dashboard.
curl -X POST "https://eranol.com/api/v1/ffmpeg/convert/video/to/webm" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.mp4"}'Example Response
Below is an example of a successful JSON response from this endpoint.
[
{
"job_id": "1406c589-a1f4-45d5-8745-aae07bc4de38",
"status": "pending",
"message": "Job created. Poll status_url for progress.",
"result_url": "https://eranol.com/api/v1/ffmpeg/result/1406c589-a1f4-45d5-8745-aae07bc4de38",
"status_url": "https://eranol.com/api/v1/ffmpeg/status/1406c589-a1f4-45d5-8745-aae07bc4de38"
}
]Response Status
A successful request will return one of the following HTTP status codes.
Convert to WebP
POSTConvert an image file to WebP format. Example: {"url": "https://cdn.example.com/photo.png"}
Endpoint
Send your requests to the following URL using the specified HTTP method.
POST https://eranol.com/api/v1/ffmpeg/convert/image/to/webpHeaders
Include the following headers with every request. Your API key is required for authentication.
Request Body
Send the following JSON payload in the request body. Adjust the values to match your use case.
{
"url": "https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.png"
}Example Request
Use the following cURL command to make a request to this API endpoint. Replace YOUR_API_KEY with your actual API key from the dashboard.
curl -X POST "https://eranol.com/api/v1/ffmpeg/convert/image/to/webp" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.png"}'Example Response
Below is an example of a successful JSON response from this endpoint.
[
{
"job_id": "1406c589-a1f4-45d5-8745-aae07bc4de38",
"status": "pending",
"message": "Job created. Poll status_url for progress.",
"result_url": "https://eranol.com/api/v1/ffmpeg/result/1406c589-a1f4-45d5-8745-aae07bc4de38",
"status_url": "https://eranol.com/api/v1/ffmpeg/status/1406c589-a1f4-45d5-8745-aae07bc4de38"
}
]Response Status
A successful request will return one of the following HTTP status codes.
Delete
DELETEDelete a job and its associated output file (if any).
Endpoint
Send your requests to the following URL using the specified HTTP method.
DELETE https://eranol.com/api/v1/ffmpeg/jobs/{job_id}Headers
Include the following headers with every request. Your API key is required for authentication.
Example Request
Use the following cURL command to make a request to this API endpoint. Replace YOUR_API_KEY with your actual API key from the dashboard.
curl -X DELETE "https://eranol.com/api/v1/ffmpeg/jobs/{job_id}" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json"Example Response
Below is an example of a successful JSON response from this endpoint.
{
"success": true,
"data": {
"message": "Request processed successfully"
}
}Response Status
A successful request will return one of the following HTTP status codes.
Denoise
POSTClean audio by removing background noise. Supports two methods: 'afftdn': FFT-based denoising with adjustable noise reduction (dB) 'arnndn': RNN-based denoising (requires model file in container) Example: {"url": "https://cdn.example.com/noisy-audio.mp4", "method": "afftdn", "noise_reduction": 15}
Endpoint
Send your requests to the following URL using the specified HTTP method.
POST https://eranol.com/api/v1/ffmpeg/audio/denoiseHeaders
Include the following headers with every request. Your API key is required for authentication.
Request Body
Send the following JSON payload in the request body. Adjust the values to match your use case.
{
"url": "https://cdn.example.com/noisy-audio.mp4",
"method": "afftdn",
"noise_reduction": 15
}Parameters
All available options for this endpoint. Required parameters are marked accordingly.
| Parameter | Type | Default | Description |
|---|---|---|---|
| url | string | required | Audio or video file URL |
| method | string | fft | Denoise method: fft (afftdn) or rnn (arnndn) |
| noise_reduction | float | 12 | Noise reduction amount in dB (fft method only) |
Example Request
Use the following cURL command to make a request to this API endpoint. Replace YOUR_API_KEY with your actual API key from the dashboard.
curl -X POST "https://eranol.com/api/v1/ffmpeg/audio/denoise" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://cdn.example.com/noisy-audio.mp4","method":"afftdn","noise_reduction":15}'Example Response
Below is an example of a successful JSON response from this endpoint.
{
"job_id": "f595b9ad-1e15-4452-b7c2-8f8ff09c0a34",
"status": "pending",
"message": "Job created. Poll status_url for progress.",
"job_type": "caption",
"result_url": "https://eranol.com/api/v1/ffmpeg/result/f595b9ad-1e15-4452-b7c2-8f8ff09c0a34",
"status_url": "https://eranol.com/api/v1/ffmpeg/status/f595b9ad-1e15-4452-b7c2-8f8ff09c0a34"
}Response Status
A successful request will return one of the following HTTP status codes.
Extract audio track from a video
POSTExtract audio track from a video file as WAV. Default: mono (1 channel). Set "mono": false to keep all channels. Example: {"url": "https://cdn.example.com/video.mp4", "mono": true}
Endpoint
Send your requests to the following URL using the specified HTTP method.
POST https://eranol.com/api/v1/ffmpeg/video/extract/audioHeaders
Include the following headers with every request. Your API key is required for authentication.
Request Body
Send the following JSON payload in the request body. Adjust the values to match your use case.
{
"url": "https://www.soundhelix.com/examples/mp3/SoundHelix-Song.mp4",
"mono": true
}Example Request
Use the following cURL command to make a request to this API endpoint. Replace YOUR_API_KEY with your actual API key from the dashboard.
curl -X POST "https://eranol.com/api/v1/ffmpeg/video/extract/audio" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://www.soundhelix.com/examples/mp3/SoundHelix-Song.mp4","mono":true}'Example Response
Below is an example of a successful JSON response from this endpoint.
[
{
"job_id": "1406c589-a1f4-45d5-8745-aae07bc4de38",
"status": "pending",
"message": "Job created. Poll status_url for progress.",
"result_url": "https://eranol.com/api/v1/ffmpeg/result/1406c589-a1f4-45d5-8745-aae07bc4de38",
"status_url": "https://eranol.com/api/v1/ffmpeg/status/1406c589-a1f4-45d5-8745-aae07bc4de38"
}
]Response Status
A successful request will return one of the following HTTP status codes.
Extract images from a video
POSTExtract frames from a video as PNG images. Requires start_sec and end_sec to specify the time range. Default FPS is 1 (one frame per second). Returns JSON with download links. Example: {"url": "https://cdn.example.com/video.mp4", "start_sec": 10, "end_sec": 30, "fps": 2}
Endpoint
Send your requests to the following URL using the specified HTTP method.
POST https://eranol.com/api/v1/ffmpeg/video/extract/imagesHeaders
Include the following headers with every request. Your API key is required for authentication.
Request Body
Send the following JSON payload in the request body. Adjust the values to match your use case.
{
"fps": 1,
"url": "https://www.soundhelix.com/examples/mp3/SoundHelix-Song.mp4",
"end_sec": 0,
"start_sec": 0
}Example Request
Use the following cURL command to make a request to this API endpoint. Replace YOUR_API_KEY with your actual API key from the dashboard.
curl -X POST "https://eranol.com/api/v1/ffmpeg/video/extract/images" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"fps":1,"url":"https://www.soundhelix.com/examples/mp3/SoundHelix-Song.mp4","end_sec":0,"start_sec":0}'Example Response
Below is an example of a successful JSON response from this endpoint.
[
{
"job_id": "1406c589-a1f4-45d5-8745-aae07bc4de38",
"status": "pending",
"message": "Job created. Poll status_url for progress.",
"result_url": "https://eranol.com/api/v1/ffmpeg/result/1406c589-a1f4-45d5-8745-aae07bc4de38",
"status_url": "https://eranol.com/api/v1/ffmpeg/status/1406c589-a1f4-45d5-8745-aae07bc4de38"
}
]Response Status
A successful request will return one of the following HTTP status codes.
Generate a GIF from a video
POSTGenerate a GIF from a video segment. Requires start_sec and end_sec (max 60s duration). Uses a two-pass palette method for high-quality output. Example: {"url": "https://cdn.example.com/video.mp4", "start_sec": 5, "end_sec": 15, "fps": 10, "width": 480}
Endpoint
Send your requests to the following URL using the specified HTTP method.
POST https://eranol.com/api/v1/ffmpeg/video/extract/gifHeaders
Include the following headers with every request. Your API key is required for authentication.
Request Body
Send the following JSON payload in the request body. Adjust the values to match your use case.
{
"fps": 10,
"url": "https://www.soundhelix.com/examples/mp3/SoundHelix-Song.mp4",
"width": 480,
"end_sec": 0,
"start_sec": 0
}Example Request
Use the following cURL command to make a request to this API endpoint. Replace YOUR_API_KEY with your actual API key from the dashboard.
curl -X POST "https://eranol.com/api/v1/ffmpeg/video/extract/gif" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"fps":10,"url":"https://www.soundhelix.com/examples/mp3/SoundHelix-Song.mp4","width":480,"end_sec":0,"start_sec":0}'Example Response
Below is an example of a successful JSON response from this endpoint.
{
"job_id": "1406c589-a1f4-45d5-8745-aae07bc4de38",
"status": "pending",
"message": "Job created. Poll status_url for progress.",
"result_url": "https://eranol.com/api/v1/ffmpeg/result/1406c589-a1f4-45d5-8745-aae07bc4de38",
"status_url": "https://eranol.com/api/v1/ffmpeg/status/1406c589-a1f4-45d5-8745-aae07bc4de38"
}Response Status
A successful request will return one of the following HTTP status codes.
Highlights
POSTExtract highlight segments from audio or video based on energy peaks. Analyses audio RMS energy to find the loudest moments and extracts them as a concatenated highlight reel. Example: {"url": "https://cdn.example.com/podcast.mp4", "top_n": 5, "segment_duration": 5}
Endpoint
Send your requests to the following URL using the specified HTTP method.
POST https://eranol.com/api/v1/ffmpeg/audio/highlightsHeaders
Include the following headers with every request. Your API key is required for authentication.
Request Body
Send the following JSON payload in the request body. Adjust the values to match your use case.
{
"url": "https://cdn.example.com/podcast.mp4",
"top_n": 5,
"segment_duration": 5
}Parameters
All available options for this endpoint. Required parameters are marked accordingly.
| Parameter | Type | Default | Description |
|---|---|---|---|
| url | string | required | Audio or video file URL |
| top_n | int | 5 | Number of loudest moments to extract |
| clip_duration | float | 5.0 | Duration of each highlight clip in seconds |
Example Request
Use the following cURL command to make a request to this API endpoint. Replace YOUR_API_KEY with your actual API key from the dashboard.
curl -X POST "https://eranol.com/api/v1/ffmpeg/audio/highlights" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://cdn.example.com/podcast.mp4","top_n":5,"segment_duration":5}'Example Response
Below is an example of a successful JSON response from this endpoint.
{
"job_id": "f595b9ad-1e15-4452-b7c2-8f8ff09c0a34",
"status": "pending",
"message": "Job created. Poll status_url for progress.",
"job_type": "caption",
"result_url": "https://eranol.com/api/v1/ffmpeg/result/f595b9ad-1e15-4452-b7c2-8f8ff09c0a34",
"status_url": "https://eranol.com/api/v1/ffmpeg/status/f595b9ad-1e15-4452-b7c2-8f8ff09c0a34"
}Response Status
A successful request will return one of the following HTTP status codes.
Image
POSTGenerate Image With AI
Endpoint
Send your requests to the following URL using the specified HTTP method.
POST https://eranol.com/api/v1/imageHeaders
Include the following headers with every request. Your API key is required for authentication.
Request Body
Send the following JSON payload in the request body. Adjust the values to match your use case.
{
"seed": 42,
"width": 512,
"height": 768,
"prompt": "a red apple on a white table, photorealistic, 4k",
"negative_prompt": "blurry, low quality, distorted"
}Example Request
Use the following cURL command to make a request to this API endpoint. Replace YOUR_API_KEY with your actual API key from the dashboard.
curl -X POST "https://eranol.com/api/v1/image" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"seed":42,"width":512,"height":768,"prompt":"a red apple on a white table, photorealistic, 4k","negative_prompt":"blurry, low quality, distorted"}'Example Response
Below is an example of a successful JSON response from this endpoint.
{
"job_id": "6b1d93ee-7988-49ed-8794-6e72a7b24123-e2",
"status": "processing"
}Response Status
A successful request will return one of the following HTTP status codes.
Image Status
GETGet the Status of the generated image and final response
Endpoint
Send your requests to the following URL using the specified HTTP method.
GET https://eranol.com/api/v1/image/status/{job_id}Headers
Include the following headers with every request. Your API key is required for authentication.
Request Body
Send the following JSON payload in the request body. Adjust the values to match your use case.
{}Example Request
Use the following cURL command to make a request to this API endpoint. Replace YOUR_API_KEY with your actual API key from the dashboard.
curl -X GET "https://eranol.com/api/v1/image/status/{job_id}" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json"Example Response
Below is an example of a successful JSON response from this endpoint.
{
"job_id": "68d8df-a174-45ca-93ea-3738c1d",
"status": "completed",
"result_url": "https://eranol.com/api/image/file/6cc8d8df-a174-45ca-93ea-23424.png"
}Response Status
A successful request will return one of the following HTTP status codes.
Merge
POSTVideo merging api with images
Endpoint
Send your requests to the following URL using the specified HTTP method.
POST https://eranol.com/api/v1/ffmpeg/mergeRequest Body
Send the following JSON payload in the request body. Adjust the values to match your use case.
{
"width": 1280,
"height": 720,
"images": [
{
"url": "https://picsum.photos/1920/1080.jpg?random=1",
"duration": 3
},
{
"url": "https://picsum.photos/1920/1080.jpg?random=2",
"duration": 3
},
{
"url": "https://picsum.photos/1920/1080.jpg?random=1",
"duration": 3
},
{
"url": "https://picsum.photos/1920/1080.jpg?random=2",
"duration": 3
},
{
"url": "https://picsum.photos/1920/1080.jpg?random=1",
"duration": 3
},
{
"url": "https://picsum.photos/1920/1080.jpg?random=2",
"duration": 3
}
],
"audio_url": "https://example.com/xY9BCIBv5iBWPFJb9e-ai_tmpsvdc8waw.wav",
"audio_mode": "video_length",
"transition": "fade",
"bg_audio_url": "https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.mp3",
"bg_audio_volume": 0.2
}Parameters
All available options for this endpoint. Required parameters are marked accordingly.
| Parameter | Type | Default | Description |
|---|---|---|---|
| images | array | required | List of image slides |
| images[].url | string | required | Image URL (jpg, png, webp, gif) |
| images[].duration | float | required | Display duration in seconds |
| audio_url | string | required | Main audio file URL (mp3, wav, ogg, flac, aac) — plays at 100% volume |
| bg_audio_url | string | null | Optional background music URL — mixed under the main audio |
| bg_audio_volume | float | 0.2 | Background music volume (0.0–1.0). Default 0.2 = 20% |
| width | int | 1280 | Output width (16-7680) |
| height | int | 720 | Output height (16-4320) |
| fps | int | 24 | Frames per second (1-120) |
| fit | string | contain | contain (letterbox) or cover (crop to fill) |
| transition | string | none | none (hard cut) or fade (dissolve) |
| fade_secs | float | 0.5 | Fade duration (only when transition=fade) |
| video_codec | string | libx264 | Video encoder |
| audio_codec | string | aac | Audio encoder |
| format | string | mp4 | Output container format |
| audio_mode | string | shortest | shortest or video_length |
Example Request
Use the following cURL command to make a request to this API endpoint. Replace YOUR_API_KEY with your actual API key from the dashboard.
curl -X POST "https://eranol.com/api/v1/ffmpeg/merge" \
-H "x-api-key: YOUR_API_KEY" \
-d '{"width":1280,"height":720,"images":[{"url":"https://picsum.photos/1920/1080.jpg?random=1","duration":3},{"url":"https://picsum.photos/1920/1080.jpg?random=2","duration":3},{"url":"https://picsum.photos/1920/1080.jpg?random=1","duration":3},{"url":"https://picsum.photos/1920/1080.jpg?random=2","duration":3},{"url":"https://picsum.photos/1920/1080.jpg?random=1","duration":3},{"url":"https://picsum.photos/1920/1080.jpg?random=2","duration":3}],"audio_url":"https://example.com/xY9BCIBv5iBWPFJb9e-ai_tmpsvdc8waw.wav","audio_mode":"video_length","transition":"fade","bg_audio_url":"https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.mp3","bg_audio_volume":0.2}'Example Response
Below is an example of a successful JSON response from this endpoint.
[
{
"job_id": "1406c589-a1f4-45d5-8745-aae07bc4de38",
"status": "pending",
"message": "Job created. Poll status_url for progress.",
"result_url": "https://eranol.com/api/v1/ffmpeg/result/1406c589-a1f4-45d5-8745-aae07bc4de38",
"status_url": "https://eranol.com/api/v1/ffmpeg/status/1406c589-a1f4-45d5-8745-aae07bc4de38"
}
]Response Status
A successful request will return one of the following HTTP status codes.
Notify
POSTemail notification api endpoint 400 — Missing fields: { "error": "Missing required fields: to, subject, message" } 500 — Send failure: { "error": "Failed to send email" }
Endpoint
Send your requests to the following URL using the specified HTTP method.
POST https://eranol.com/api/v1/notifications/emailHeaders
Include the following headers with every request. Your API key is required for authentication.
Request Body
Send the following JSON payload in the request body. Adjust the values to match your use case.
{
"to": "user@example.com",
"message": "<p>Your HTML email body</p>",
"subject": "Your email subject"
}Example Request
Use the following cURL command to make a request to this API endpoint. Replace YOUR_API_KEY with your actual API key from the dashboard.
curl -X POST "https://eranol.com/api/v1/notifications/email" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"to":"user@example.com","message":"<p>Your HTML email body</p>","subject":"Your email subject"}'Example Response
Below is an example of a successful JSON response from this endpoint.
{
"job_id": "a1b2c3d4-...",
"message_id": "SES-message-id"
}Response Status
A successful request will return one of the following HTTP status codes.
Overlay
POSTOverlay text or an image on a video with per-frame rendering. Supports: Text overlay using drawtext (with font, colour, position control) Image overlay using the overlay filter (PNG recommended) Time-range control (start_sec / end_sec) Opacity control Example (text): {"url": "https://cdn.example.com/video.mp4", "text": "LIVE", "position": "top_right", "font_color": "red"} Example (image): {"url": "https://cdn.example.com/video.mp4", "overlay_url": "https://cdn.example.com/badge.png", "position": "bottom_left"}
Endpoint
Send your requests to the following URL using the specified HTTP method.
POST https://eranol.com/api/v1/ffmpeg/video/overlayHeaders
Include the following headers with every request. Your API key is required for authentication.
Request Body
Send the following JSON payload in the request body. Adjust the values to match your use case.
{
"url": "https://cdn.example.com/video.mp4",
"type": "text",
"margin": 15,
"content": "LIVE",
"end_sec": 10,
"position": "top_right",
"font_size": 32,
"start_sec": 0,
"font_color": "#ff0000"
}Parameters
All available options for this endpoint. Required parameters are marked accordingly.
| Parameter | Type | Default | Description |
|---|---|---|---|
| url | string | required | Video file URL |
| overlays | array | required | Array of overlay objects to apply |
| overlays[].type | string | required | Overlay type: text or image |
| overlays[].content | string | required | Text string or image URL |
| overlays[].x | int | 0 | X position in pixels from left |
| overlays[].y | int | 0 | Y position in pixels from top |
| overlays[].start_sec | float | 0 | Start time in seconds |
| overlays[].end_sec | float | null | End time in seconds (null = until end) |
| overlays[].font_size | int | 24 | Font size (text overlays only) |
| overlays[].font_color | string | white | Font color (text overlays only) |
| overlays[].scale | float | 0.2 | Scale relative to video width (image overlays only) |
| overlays[].opacity | float | 1.0 | Overlay opacity (0.0–1.0) |
Example Request— Live badge text (top-right, timed)
Use the following cURL command to make a request to this API endpoint. Replace YOUR_API_KEY with your actual API key from the dashboard.
curl -X POST "https://eranol.com/api/v1/ffmpeg/video/overlay" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://cdn.example.com/video.mp4","type":"text","margin":15,"content":"LIVE","end_sec":10,"position":"top_right","font_size":32,"start_sec":0,"font_color":"#ff0000"}'Example Response
Below is an example of a successful JSON response from this endpoint.
{
"job_id": "f595b9ad-1e15-4452-b7c2-8f8ff09c0a34",
"status": "pending",
"message": "Job created. Poll status_url for progress.",
"job_type": "caption",
"result_url": "https://eranol.com/api/v1/ffmpeg/result/f595b9ad-1e15-4452-b7c2-8f8ff09c0a34",
"status_url": "https://eranol.com/api/v1/ffmpeg/status/f595b9ad-1e15-4452-b7c2-8f8ff09c0a34"
}Response Status
A successful request will return one of the following HTTP status codes.
Progress Bar
POSTAdd an animated progress bar to a video. Supports two styles: 'grow': bar fills left-to-right over the video duration 'shrink': bar starts full and shrinks (countdown, like social media stories) Example: {"url": "https://cdn.example.com/video.mp4", "style": "shrink", "color": "00ff00", "position": "top"}
Endpoint
Send your requests to the following URL using the specified HTTP method.
POST https://eranol.com/api/v1/ffmpeg/video/progress-barHeaders
Include the following headers with every request. Your API key is required for authentication.
Request Body
Send the following JSON payload in the request body. Adjust the values to match your use case.
{
"url": "https://cdn.example.com/video.mp4"
}Parameters
All available options for this endpoint. Required parameters are marked accordingly.
| Parameter | Type | Default | Description |
|---|---|---|---|
| url | string | required | Video file URL |
| style | string | grow | Bar style: grow (left→right) or shrink (countdown like stories) |
| color | string | white | Bar color — name or hex |
| height | int | 4 | Bar height in pixels |
| position | string | bottom | Bar position: top or bottom |
| opacity | float | 0.8 | Bar opacity (0.0–1.0) |
Example Request— Bar fills left to right
Use the following cURL command to make a request to this API endpoint. Replace YOUR_API_KEY with your actual API key from the dashboard.
curl -X POST "https://eranol.com/api/v1/ffmpeg/video/progress-bar" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://cdn.example.com/video.mp4"}'Example Response
Below is an example of a successful JSON response from this endpoint.
{
"job_id": "f595b9ad-1e15-4452-b7c2-8f8ff09c0a34",
"status": "pending",
"message": "Job created. Poll status_url for progress.",
"job_type": "caption",
"result_url": "https://eranol.com/api/v1/ffmpeg/result/f595b9ad-1e15-4452-b7c2-8f8ff09c0a34",
"status_url": "https://eranol.com/api/v1/ffmpeg/status/f595b9ad-1e15-4452-b7c2-8f8ff09c0a34"
}Response Status
A successful request will return one of the following HTTP status codes.
Reframe
POSTChange video aspect ratio / resolution with coloured padding. Takes a video and reframes it to the target width x height. The original video is scaled to fit inside the new dimensions (maintaining aspect ratio) and the remaining space is filled with the chosen background colour. Example — landscape 1280x720 → portrait 1080x1920 with white bars: {"url": "https://cdn.example.com/video.mp4", "width": 1080, "height": 1920, "bg_color": "#ffffff"}
Endpoint
Send your requests to the following URL using the specified HTTP method.
POST https://eranol.com/api/v1/ffmpeg/video/reframeHeaders
Include the following headers with every request. Your API key is required for authentication.
Request Body
Send the following JSON payload in the request body. Adjust the values to match your use case.
{
"url": "https://example.com/",
"width": 0,
"height": 0,
"bg_color": "#000000"
}Example Request
Use the following cURL command to make a request to this API endpoint. Replace YOUR_API_KEY with your actual API key from the dashboard.
curl -X POST "https://eranol.com/api/v1/ffmpeg/video/reframe" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com/","width":0,"height":0,"bg_color":"#000000"}'Example Response
Below is an example of a successful JSON response from this endpoint.
{
"job_id": "f595b9ad-1e15-4452-b7c2-8f8ff09c0a34",
"status": "pending",
"message": "Job created. Poll status_url for progress.",
"job_type": "caption",
"result_url": "https://eranol.com/api/v1/ffmpeg/result/f595b9ad-1e15-4452-b7c2-8f8ff09c0a34",
"status_url": "https://eranol.com/api/v1/ffmpeg/status/f595b9ad-1e15-4452-b7c2-8f8ff09c0a34"
}Response Status
A successful request will return one of the following HTTP status codes.
Remove Silence
POSTRemove silent gaps from audio or video. Uses FFmpeg silencedetect to find quiet intervals, then trims and concatenates the non-silent segments together. Example: {"url": "https://cdn.example.com/podcast.mp4", "silence_thresh_db": -30, "min_silence_duration": 0.5}
Endpoint
Send your requests to the following URL using the specified HTTP method.
POST https://eranol.com/api/v1/ffmpeg/audio/remove-silenceHeaders
Include the following headers with every request. Your API key is required for authentication.
Request Body
Send the following JSON payload in the request body. Adjust the values to match your use case.
{
"url": "https://cdn.example.com/podcast.mp4",
"padding": 0.1,
"silence_thresh_db": -30,
"min_silence_duration": 0.5
}Parameters
All available options for this endpoint. Required parameters are marked accordingly.
| Parameter | Type | Default | Description |
|---|---|---|---|
| url | string | required | Audio or video file URL |
| silence_thresh | float | -30 | Silence threshold in dB (e.g. -30) |
| min_silence_dur | float | 0.5 | Minimum silence duration in seconds to detect |
Example Request
Use the following cURL command to make a request to this API endpoint. Replace YOUR_API_KEY with your actual API key from the dashboard.
curl -X POST "https://eranol.com/api/v1/ffmpeg/audio/remove-silence" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://cdn.example.com/podcast.mp4","padding":0.1,"silence_thresh_db":-30,"min_silence_duration":0.5}'Example Response
Below is an example of a successful JSON response from this endpoint.
{
"job_id": "f595b9ad-1e15-4452-b7c2-8f8ff09c0a34",
"status": "pending",
"message": "Job created. Poll status_url for progress.",
"job_type": "caption",
"result_url": "https://eranol.com/api/v1/ffmpeg/result/f595b9ad-1e15-4452-b7c2-8f8ff09c0a34",
"status_url": "https://eranol.com/api/v1/ffmpeg/status/f595b9ad-1e15-4452-b7c2-8f8ff09c0a34"
}Response Status
A successful request will return one of the following HTTP status codes.
Status
GETGet the current status of a job. Returns job status, progress, timestamps, and result data if completed. Works for all job types (merge, convert, extract, etc.).
Endpoint
Send your requests to the following URL using the specified HTTP method.
GET https://eranol.com/api/v1/ffmpeg/status/{job_id}Example Request
Use the following cURL command to make a request to this API endpoint. Replace YOUR_API_KEY with your actual API key from the dashboard.
curl -X GET "https://eranol.com/api/v1/ffmpeg/status/{job_id}" \
-H "x-api-key: YOUR_API_KEY"Example Response
Below is an example of a successful JSON response from this endpoint.
[
{
"job_id": "37a8d929-1bb1-40b8-bd81-1a4a633b834b",
"status": "completed",
"duration": 58.875,
"progress": null,
"created_at": 1770492104.6935267,
"resolution": "1280x720",
"result_url": "https://eranol.com/api/v1/ffmpeg/file/af390718-7794-4b36-b9c3-2693e922cf18.mp4",
"started_at": 1770492104.6968493,
"completed_at": 1770492127.4626331
}
]Response Status
A successful request will return one of the following HTTP status codes.
Thumbnail
POSTGenerate a thumbnail from a video frame with text overlay. Extracts the frame at the given timestamp and uses drawtext to render text with a background box. Example: {"url": "https://cdn.example.com/video.mp4", "text": "Episode 1", "timestamp": 5.0, "position": "center"}
Endpoint
Send your requests to the following URL using the specified HTTP method.
POST https://eranol.com/api/v1/ffmpeg/video/thumbnailHeaders
Include the following headers with every request. Your API key is required for authentication.
Request Body
Send the following JSON payload in the request body. Adjust the values to match your use case.
{
"url": "https://cdn.example.com/video.mp4",
"text": "Episode 1",
"bg_color": "black@0.5",
"position": "center",
"font_size": 48,
"timestamp": 5,
"font_color": "white"
}Parameters
All available options for this endpoint. Required parameters are marked accordingly.
| Parameter | Type | Default | Description |
|---|---|---|---|
| url | string | required | Video file URL |
| time_sec | float | 0 | Time in seconds to capture the frame |
| width | int | 1280 | Thumbnail width in pixels |
| height | int | 720 | Thumbnail height in pixels |
| text | string | null | Optional text to overlay on the thumbnail |
| font_size | int | 48 | Font size for overlay text |
| font_color | string | white | Font color for overlay text |
Example Request
Use the following cURL command to make a request to this API endpoint. Replace YOUR_API_KEY with your actual API key from the dashboard.
curl -X POST "https://eranol.com/api/v1/ffmpeg/video/thumbnail" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://cdn.example.com/video.mp4","text":"Episode 1","bg_color":"black@0.5","position":"center","font_size":48,"timestamp":5,"font_color":"white"}'Example Response
Below is an example of a successful JSON response from this endpoint.
{
"job_id": "f595b9ad-1e15-4452-b7c2-8f8ff09c0a34",
"status": "pending",
"message": "Job created. Poll status_url for progress.",
"job_type": "caption",
"result_url": "https://eranol.com/api/v1/ffmpeg/result/f595b9ad-1e15-4452-b7c2-8f8ff09c0a34",
"status_url": "https://eranol.com/api/v1/ffmpeg/status/f595b9ad-1e15-4452-b7c2-8f8ff09c0a34"
}Response Status
A successful request will return one of the following HTTP status codes.
TikTok
POSTTikTok Content Posting API Privacy levels: SELF_ONLY | FOLLOWER_OF_CREATOR | MUTUAL_FOLLOW_FRIENDS | PUBLIC_TO_EVERYONE
Endpoint
Send your requests to the following URL using the specified HTTP method.
POST https://eranol.com/api/v1/social/tiktok/publishHeaders
Include the following headers with every request. Your API key is required for authentication.
Request Body
Send the following JSON payload in the request body. Adjust the values to match your use case.
{
"title": "Check this out! #fyp",
"video_url": "https://your-r2-or-cdn-url/video.mp4",
"disable_duet": false,
"privacy_level": "PUBLIC_TO_EVERYONE",
"disable_stitch": false,
"disable_comment": false,
"scheduled_publish_time": null
}Example Request
Use the following cURL command to make a request to this API endpoint. Replace YOUR_API_KEY with your actual API key from the dashboard.
curl -X POST "https://eranol.com/api/v1/social/tiktok/publish" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"title":"Check this out! #fyp","video_url":"https://your-r2-or-cdn-url/video.mp4","disable_duet":false,"privacy_level":"PUBLIC_TO_EVERYONE","disable_stitch":false,"disable_comment":false,"scheduled_publish_time":null}'Example Response
Below is an example of a successful JSON response from this endpoint.
{
"publish_id": "sdfger345-34-dfhgrt-3453sdgfg-34234"
}Response Status
A successful request will return one of the following HTTP status codes.
TikTok Status
GETTikTok pulls the video from the URL asynchronously and delivers it to the user's TikTok inbox as a draft (TikTok's sandbox/unverified app behaviour) or publishes it directly. Poll this endpoint until status is SEND_TO_USER_INBOX, PUBLISH_COMPLETE, or FAILED. Query param: ?publish_id=xxx
Endpoint
Send your requests to the following URL using the specified HTTP method.
GET https://eranol.com/api/v1/social/tiktok/statusHeaders
Include the following headers with every request. Your API key is required for authentication.
Request Body
Send the following JSON payload in the request body. Adjust the values to match your use case.
{}Parameters
All available options for this endpoint. Required parameters are marked accordingly.
| Parameter | Type | Default | Description |
|---|---|---|---|
| publish_id | | The publish_id returned from the TikTok publish endpoint |
Example Request
Use the following cURL command to make a request to this API endpoint. Replace YOUR_API_KEY with your actual API key from the dashboard.
curl -X GET "https://eranol.com/api/v1/social/tiktok/status" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json"Example Response
Below is an example of a successful JSON response from this endpoint.
{
"status": "SEND_TO_USER_INBOX, PUBLISH_COMPLETE, or FAILED",
"fail_reason": ""
}Response Status
A successful request will return one of the following HTTP status codes.
Trim
POSTTrim a video by start and end time. Cuts the video between start_sec and end_sec using stream copy (no re-encoding) for fast, lossless trimming. Example: {"url": "https://cdn.example.com/video.mp4", "start_sec": 10, "end_sec": 30}
Endpoint
Send your requests to the following URL using the specified HTTP method.
POST https://eranol.com/api/v1/ffmpeg/video/trimHeaders
Include the following headers with every request. Your API key is required for authentication.
Request Body
Send the following JSON payload in the request body. Adjust the values to match your use case.
{
"url": "https://example.com/",
"end_sec": 0,
"start_sec": 0
}Parameters
All available options for this endpoint. Required parameters are marked accordingly.
| Parameter | Type | Default | Description |
|---|---|---|---|
| url | string | required | Video file URL |
| start_sec | float | required | Start time in seconds |
| end_sec | float | required | End time in seconds (must be greater than start_sec) |
Example Request
Use the following cURL command to make a request to this API endpoint. Replace YOUR_API_KEY with your actual API key from the dashboard.
curl -X POST "https://eranol.com/api/v1/ffmpeg/video/trim" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com/","end_sec":0,"start_sec":0}'Example Response
Below is an example of a successful JSON response from this endpoint.
{
"job_id": "f595b9ad-1e15-4452-b7c2-8f8ff09c0a34",
"status": "pending",
"message": "Job created. Poll status_url for progress.",
"job_type": "caption",
"result_url": "https://eranol.com/api/v1/ffmpeg/result/f595b9ad-1e15-4452-b7c2-8f8ff09c0a34",
"status_url": "https://eranol.com/api/v1/ffmpeg/status/f595b9ad-1e15-4452-b7c2-8f8ff09c0a34"
}Response Status
A successful request will return one of the following HTTP status codes.
Verify
GETVerify your api key Case Status Body Valid key 200 { success: true, message: "API key is valid." } Missing key 401 { success: false, message: "API key required..." } Invalid/inactive key 401 { success: false, message: "Invalid or inactive API key" }
Endpoint
Send your requests to the following URL using the specified HTTP method.
GET https://eranol.com/api/v1/verifyHeaders
Include the following headers with every request. Your API key is required for authentication.
Request Body
Send the following JSON payload in the request body. Adjust the values to match your use case.
{}Example Request
Use the following cURL command to make a request to this API endpoint. Replace YOUR_API_KEY with your actual API key from the dashboard.
curl -X GET "https://eranol.com/api/v1/verify" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json"Example Response
Below is an example of a successful JSON response from this endpoint.
{
"message": "API key is valid.",
"success": "true"
}Response Status
A successful request will return one of the following HTTP status codes.
Watermark
POSTOverlay a logo/watermark on a video. Scales the watermark image relative to video width and positions it at the chosen corner or center. Supports opacity control. Example: {"url": "https://cdn.example.com/video.mp4", "watermark_url": "https://cdn.example.com/logo.png", "position": "bottom_right"}
Endpoint
Send your requests to the following URL using the specified HTTP method.
POST https://eranol.com/api/v1/ffmpeg/video/watermarkHeaders
Include the following headers with every request. Your API key is required for authentication.
Request Body
Send the following JSON payload in the request body. Adjust the values to match your use case.
{
"url": "https://cdn.example.com/video.mp4",
"scale": 0.15,
"margin": 10,
"opacity": 0.8,
"position": "bottom_right",
"watermark_url": "https://cdn.example.com/logo.png"
}Parameters
All available options for this endpoint. Required parameters are marked accordingly.
| Parameter | Type | Default | Description |
|---|---|---|---|
| url | string | required | Video file URL |
| watermark_url | string | required | Watermark image URL (png recommended for transparency) |
| position | string | bottom-right | Position: top-left, top-right, bottom-left, bottom-right, or center |
| scale | float | 0.15 | Watermark size relative to video width (0.01–1.0) |
| opacity | float | 0.8 | Watermark opacity (0.0–1.0) |
Example Request
Use the following cURL command to make a request to this API endpoint. Replace YOUR_API_KEY with your actual API key from the dashboard.
curl -X POST "https://eranol.com/api/v1/ffmpeg/video/watermark" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://cdn.example.com/video.mp4","scale":0.15,"margin":10,"opacity":0.8,"position":"bottom_right","watermark_url":"https://cdn.example.com/logo.png"}'Example Response
Below is an example of a successful JSON response from this endpoint.
{
"job_id": "f595b9ad-1e15-4452-b7c2-8f8ff09c0a34",
"status": "pending",
"message": "Job created. Poll status_url for progress.",
"job_type": "caption",
"result_url": "https://eranol.com/api/v1/ffmpeg/result/f595b9ad-1e15-4452-b7c2-8f8ff09c0a34",
"status_url": "https://eranol.com/api/v1/ffmpeg/status/f595b9ad-1e15-4452-b7c2-8f8ff09c0a34"
}Response Status
A successful request will return one of the following HTTP status codes.
FFmpeg Results
GETGet the result of a completed job. Returns 202 if still processing, 200 with result data if completed, or 400 if the job failed. Works for all job types.
Endpoint
Send your requests to the following URL using the specified HTTP method.
GET https://eranol.com/api/v1/ffmpeg/result/{job_id}Example Request
Use the following cURL command to make a request to this API endpoint. Replace YOUR_API_KEY with your actual API key from the dashboard.
curl -X GET "https://eranol.com/api/v1/ffmpeg/result/{job_id}" \
-H "x-api-key: YOUR_API_KEY"Example Response
Below is an example of a successful JSON response from this endpoint.
[
{
"url": "https://eranol.com/api/v1/ffmpeg/file/af390718-7794-4b36-b9c3-2693e922cf18.mp4",
"job_id": "37a8d929-1bb1-40b8-bd81-1a4a633b834b",
"duration": 58.875,
"filename": "af390718-7794-4b36-b9c3-2693e922cf18.mp4",
"resolution": "1280x720"
}
]Response Status
A successful request will return one of the following HTTP status codes.