Audio Workflow
Ichos uses an “Audio-First” approach. You upload or import raw media files independently of episodes. This ensures that only fully processed, valid audio is ever served to listeners.
Method 1: Direct Upload
Best for uploading files from a browser or client application.
1. Get Presigned URL
Request a temporary URL to upload the file.
GET /v1/audio/putResponse:
{
"uploadUrl": "https://s3.amazonaws.com/...",
"audioId": "audio_123",
"key": "temp/..."
}2. Upload File
Use a standard HTTP PUT request to send the file binary to the uploadUrl.
3. Finalize
Tell the API the upload is complete. This triggers the processing worker.
POST /v1/audio/{audioId}Method 2: Pull from URL
Best for migrating content or importing from other servers.
POST /v1/audio/pull
{
"url": "https://example.com/audio.mp3"
}This returns an audioId immediately. The download happens asynchronously.
Checking Status
You can poll the status of an audio file to see if it’s ready to be linked to an episode.
GET /v1/audio/{audioId}Statuses:
uploading: Waiting for file.processing: Transcoding, checking bitrate, calculating duration.done: Ready to use.failed: Processing error (corrupt file, etc.).
Linking
Once the status is done, you can link this audio to an episode using the PUT /v1/episodes/{id}/link-audio endpoint.
Audio can also be linked to other resources.