How rli8145/slotify works
Slotify creates sponsor inserts for podcast or song audio, from upload and product details through placement, ad generation, synthesis, and audio export. The React app also supports a synchronous workflow for finding insertion sections, cloning a voice, previewing a merge, and exporting it; the longer end-to-end insertion runs asynchronously through Redis and a worker. The Python pipeline separates audio analysis, LLM decisions and scripts, voice synthesis, and mixing. README documents these capabilities, while sampled excerpts do not expose every route’s implementation or all queue wiring details.
Main entry points: pipeline.py Insertion orchestrator · index.mjs HTTP API · App.tsx Upload and export UI · worker.mjs Job worker
Components 17
Creator interface
- Upload and export UI
frontend/src/App.tsx
Backend services
- HTTP API
backend/index.mjs - Insertion suggestions
backend/index.mjs - Preview and merge
backend/index.mjs
Ad audio pipeline
- Audio analysis
backend/ad_inserter/analysis.py - Ad copy and placement
backend/ad_inserter/llm.py - Insertion orchestrator
backend/ad_inserter/pipeline.py - TTS and cloning client
backend/ad_inserter/tts.py - Loudness and splice
backend/ad_inserter/mix.py
Job runtime
- Queue access
backend/lib/queue.mjs - Redis job queue
backend/lib/redis.mjs - Job worker
backend/worker.mjs - Pipeline launcher
backend/jobs/adInsertJob.mjs - Shared job files
backend/lib/jobStorage.mjs
Other components
- Audio creator
- OpenAI
- ElevenLabs
Connections 21
- Audio creator → Upload and export UI: uploads audio
- Upload and export UI → HTTP API: calls API
- HTTP API → Insertion suggestions: dispatches analysis
- Insertion suggestions → Audio analysis: analyzes audio
- Upload and export UI → Preview and merge: requests preview/export
- Preview and merge → Audio creator: returns audio
- HTTP API → ElevenLabs: requests TTS/cloning
- Upload and export UI → HTTP API: requests voice clone
- HTTP API → Queue access: enqueues insertion
- Queue access → Redis job queue: writes job
- Job worker → Redis job queue: consumes jobs
- Job worker → Shared job files: accesses job files
- Job worker → Pipeline launcher: runs pipeline
- Pipeline launcher → Insertion orchestrator: launches Python
- Insertion orchestrator → Audio analysis: analyzes audio
- Insertion orchestrator → Ad copy and placement: requests copy/placement
- Ad copy and placement → OpenAI: generates ad decisions
- Insertion orchestrator → TTS and cloning client: synthesizes segments
- TTS and cloning client → HTTP API: calls TTS/clone routes
- Insertion orchestrator → Loudness and splice: prepares and splices audio
- Insertion orchestrator → Shared job files: reads input/writes output