Split by Duration
Duration-based splitting breaks an audio file into segments of equal length. This is ideal for podcasts, audiobooks, or any content where you need consistent segment sizes.
How It Works
When you set splitMode to "duration", AudioSpliter divides your audio at the specified interval. The last segment may be shorter if the total duration is not evenly divisible.
For example, a 23-minute file split into 10-minute segments produces three segments: 10 min, 10 min, and 3 min.
Basic Example
curl -X POST https://api.audiospliter.com/api/v1/splits \
-H "X-API-Key: as_live_abc123" \
-H "Content-Type: application/json" \
-d '{
"sourceUrl": "https://example.com/episode.mp3",
"splitMode": "duration",
"segmentDuration": 600,
"outputFormat": "mp3"
}'
The segmentDuration is in seconds. Common values:
| Duration | Seconds | Use Case |
|---|---|---|
| 1 minute | 60 | Short clips |
| 5 minutes | 300 | Social media segments |
| 10 minutes | 600 | Podcast chapters |
| 30 minutes | 1800 | Audiobook chapters |
Node.js Example
async function splitByDuration(sourceUrl, minutes) {
const response = await fetch('https://api.audiospliter.com/api/v1/splits', {
method: 'POST',
headers: {
'X-API-Key': process.env.AUDIOSPLITER_API_KEY,
'Content-Type': 'application/json',
},
body: JSON.stringify({
sourceUrl,
splitMode: 'duration',
segmentDuration: minutes * 60,
outputFormat: 'mp3',
}),
});
const job = await response.json();
console.log(`Job ${job.id} created with status: ${job.status}`);
return job;
}
// Split into 10-minute segments
await splitByDuration('https://example.com/episode.mp3', 10);
Python Example
import requests
import os
def split_by_duration(source_url: str, minutes: int):
response = requests.post(
'https://api.audiospliter.com/api/v1/splits',
headers={
'X-API-Key': os.environ['AUDIOSPLITER_API_KEY'],
'Content-Type': 'application/json',
},
json={
'sourceUrl': source_url,
'splitMode': 'duration',
'segmentDuration': minutes * 60,
'outputFormat': 'mp3',
},
)
job = response.json()
print(f"Job {job['id']} created with status: {job['status']}")
return job
# Split into 10-minute segments
split_by_duration('https://example.com/episode.mp3', 10)
Tips
- Minimum segment duration is 1 second. There is no maximum, but segments longer than the source file produce a single segment identical to the original.
- Combine with format conversion by setting
outputFormatto convert during the split. - Use webhooks for long files so you do not need to poll. See Using Webhooks.