SpectraCleanse AI strips AI provenance markers and injects SEO metadata to beat algorithmic suppression.
Upload your audio or video file, choose a platform preset, and SpectraCleanse AI will forensically wipe every embedded tag that signals AI-generated origin — then inject clean, platform-optimised metadata powered by Gemini to maximise your reach on YouTube, Spotify, Apple Music, TikTok, and beyond.
No credit card required. Free accounts include 3 files per month. Upgrade to Creator ($9.99/mo) or Studio ($24.99/mo) for unlimited processing and batch uploads.
- Upload — drag in any MP3, WAV, FLAC, M4A, or MP4 file (up to 500 MB).
- Analyse — the forensic engine reads every embedded tag and identifies provenance markers.
- Cleanse — a nuclear wipe removes all XMP, IPTC, and ID3 fields that could trigger algorithmic detection.
- Inject — Gemini generates an SEO-optimised title, description, and tag set tuned to your chosen platform.
- Download — receive a clean file with a full forensic report showing exactly what was removed.
The source code is available at github.com/ChrisAdamsdevelopment/SpectraCleanseAI and is released under the MIT License. You are free to self-host, fork, or contribute.
- Backend defaults to developer-friendly mode when
NODE_ENVis notproduction. - If Stripe env vars are missing locally,
/api/create-checkout-sessioncan return a mock checkout redirect (setENABLE_MOCK_CHECKOUT=true). - In production, Stripe variables are still required and the server will fail fast if they are missing.
For a step-by-step manual validation flow (local, API smoke, auth, billing, upload, cleanse, Docker, and production readiness), see docs/manual-qa-checklist.md.
- Browser metadata analysis uses maintained
music-metadatawith graceful fallback (parseError) when parsing fails, times out, or is skipped for very large files. - Quick Cleanse metadata writing remains local/browser-side (MP3 via
browser-id3-writer). - Full Server Cleanse runs through
/api/process; MP3 requests are rejected with HTTP422and guidance that Full Server Cleanse is best supported for MP4/M4A, while WAV/FLAC may still be rejected when ExifTool cannot safely rewrite them.
Questions, partnerships, or enterprise enquiries: hello@spectracleanse.com
- Native Render/Node deployments should use Node 20.20.2 (recommended) or a Node version within the supported engines range:
>=18 <23. - If Render defaults your service to a newer Node release, set
NODE_VERSION=20.20.2in the service environment. - Node 24 is currently not supported for native installs in validation because
better-sqlite3native compilation failed under Node 24. - Docker deployments already pin Node 18 via the repo Dockerfile.
This repository includes a multi-stage Dockerfile that builds the frontend and packages dist/ into the final runtime image so server.js can serve the SPA in production.
docker build -t spectracleanseai:latest .docker run --rm -p 3001:3001 \
-e NODE_ENV=production \
-e JWT_SECRET=your_jwt_secret \
-e STRIPE_SECRET_KEY=sk_live_xxx \
-e STRIPE_WEBHOOK_SECRET=whsec_xxx \
-e STRIPE_CREATOR_PRICE_ID=price_xxx \
-e STRIPE_STUDIO_PRICE_ID=price_xxx \
-e GEMINI_API_KEY=your_gemini_api_key \
-e FRONTEND_URL=https://your-frontend-domain.example \
-e DB_PATH=/data/spectra.db \
-v spectracleanse_data:/data \
spectracleanseai:latestNODE_ENV=productionJWT_SECRETSTRIPE_SECRET_KEYSTRIPE_WEBHOOK_SECRETSTRIPE_CREATOR_PRICE_IDSTRIPE_STUDIO_PRICE_IDGEMINI_API_KEYFRONTEND_URLDB_PATHREDIS_URL(only if your deployment still uses Redis externally)
- Local development may use
ENABLE_MOCK_CHECKOUT=truewhen Stripe variables are not set. - Production must use real Stripe configuration; do not rely on mock checkout in production.
Never commit real secrets to source control.
POST /api/process-batch(authenticated): processes up to 20 uploaded files sequentially for paid plans (Creator/Studio). Free plan returns403.GET /api/download/:token(authenticated): one-time secure download for batch outputs.- MP3 server cleanse remains unsupported (
422for single process, per-file error in batch); use Quick Cleanse Browser for MP3. Full Server Cleanse is best supported for MP4/M4A, and WAV/FLAC may be rejected if ExifTool cannot safely rewrite them. - Batch requests enforce a 2GB post-upload soft guard; production deployments should still enforce proxy/body-size/disk limits.