Skip to main content

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:

DurationSecondsUse Case
1 minute60Short clips
5 minutes300Social media segments
10 minutes600Podcast chapters
30 minutes1800Audiobook 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 outputFormat to convert during the split.
  • Use webhooks for long files so you do not need to poll. See Using Webhooks.