- New /admin/request/<id>/download-stems endpoint
- Parses stems_url (label: url; label: url format), fetches each stem file,
bundles them into a zip served as an attachment download
- If MusicGPT returns a single .zip bundle URL, redirects directly
- Template button now points to the zip endpoint instead of raw CDN URLs
- Radio buttons to select Version A or B MP3 as stems source
- New /api/audio-source endpoint serves single MP3 for Extraction API
- Backend reads radio selection, constructs public URL automatically
- Download Stems button appears when stems are ready
- Generate button disabled when no MP3s are available