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.