🎵 Spooler Media Library

Audio & Video Processing API ● LIVE

What is this?

A lightweight API for uploading, storing, and processing audio and video files. All uploads are automatically converted to MP3 format for downstream use.

🔐 Authentication Required

All API endpoints require a bearer token. Include the token in the Authorization header:

Authorization: Bearer YOUR_TOKEN_HERE

Key Endpoints

GET /api/v1/media

List all media files (supports filtering and pagination)

POST /api/v1/media

Upload a new media file (multipart/form-data)

GET /api/v1/media/:id

Get details for a specific media file

GET /api/v1/media/:id/download

Get download URL (original or MP3 variant)

GET /api/v1/media/stats

Get counts by status (pending/processing/done/failed)

📡 RSS Feed Ingestion

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.

POST /api/v1/feeds

Import an RSS/Atom feed (parses all episodes and downloads audio)

GET /api/v1/feeds

List all imported feeds with their status and progress

GET /api/v1/feeds/:id

Get details for a specific feed including import status and item counts

Quick Links

Example Usage

# 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"