Audio & Video Processing API ● LIVE
A lightweight API for uploading, storing, and processing audio and video files. All uploads are automatically converted to MP3 format for downstream use.
All API endpoints require a bearer token. Include the token in the Authorization header:
Authorization: Bearer YOUR_TOKEN_HERE
/api/v1/media
List all media files (supports filtering and pagination)
/api/v1/media
Upload a new media file (multipart/form-data)
/api/v1/media/:id
Get details for a specific media file
/api/v1/media/:id/download
Get download URL (original or MP3 variant)
/api/v1/media/stats
Get counts by status (pending/processing/done/failed)
Import audio from podcast RSS/Atom feeds. The system will automatically parse the feed, download all audio enclosures, and create MediaAssets that go through the standard MP3 conversion pipeline.
/api/v1/feeds
Import an RSS/Atom feed (parses all episodes and downloads audio)
/api/v1/feeds
List all imported feeds with their status and progress
/api/v1/feeds/:id
Get details for a specific feed including import status and item counts
# Upload a file
curl -X POST https://media.spooler.fm/api/v1/media \
-H "Authorization: Bearer YOUR_TOKEN_HERE" \
-F "file=@/path/to/audio.wav"
# Get stats
curl https://media.spooler.fm/api/v1/media/stats \
-H "Authorization: Bearer YOUR_TOKEN_HERE"
# List all files
curl https://media.spooler.fm/api/v1/media \
-H "Authorization: Bearer YOUR_TOKEN_HERE"
# Import RSS feed
curl -X POST https://media.spooler.fm/api/v1/feeds \
-H "Authorization: Bearer YOUR_TOKEN_HERE" \
-H "Content-Type: application/json" \
-d '{"feed": {"url": "https://example.com/podcast.xml"}}'
# Check feed import status
curl https://media.spooler.fm/api/v1/feeds/1 \
-H "Authorization: Bearer YOUR_TOKEN_HERE"