Files
flatrender/services/remotion/docs/AUDIO_LIBRARY.md
T
soroush.asadi a48633741e docs(remotion): audio sourcing catalog (CC0 music/SFX, Iran-aware)
From the audio-sourcing-sweep (45 sources verified). The load-bearing test —
can a paid SaaS render the audio into customers' MP4s AND vendor the file —
rules out almost all "royalty-free" libraries; only CC0/PD passes cleanly.

- USE (CC0, vendorable): FreePD (music; site dead → archive.org/details/freepd),
  Kenney.nl (SFX; the one clean-from-Iran source), Freesound-CC0, OpenGameArt-CC0.
- CAUTION: incompetech CC-BY (needs attribution pipeline), aggregators (verify
  per-track), Sonniss/Pixabay (render-input-only, never vendor raw).
- AVOID/reference-only: Mixkit/Uppbeat/Bensound/Envato/Zapsplat/… (clauses + OFAC).
- Persian = no clean CC0 bulk source → commission + self-CC0 long-term.

Real files need a VPN/non-Iran fetch (acquire-once-then-vendor makes the licence
perpetual); only the 4 self-authored ffmpeg stubs are vendored today. Firewall
rules mirror the illustration assets.json + check-assets guard (already scans audio).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 20:03:50 +03:30

343 lines
27 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# FlatRender — Curated AUDIO Library Catalog
> Synthesized from the `flatrender-audio-sweep` source set (33 source-rows surveyed →
> adversarial license + Iran-access verification per source). Mirrors the firewall
> discipline of `services/remotion/docs/ASSET_LIBRARY.md`. **Read §7 (Reality Check)
> before treating any source as "done".** Today only **4 self-authored CC0 stubs** are
> vendored (`public/audio/`); everything below is an **acquisition plan**, not a shipped
> library.
**Product context:** Persian-first paid template SaaS. Audio is **vendored into the repo**
(`services/remotion/public/audio/`) AND **rendered into customer-downloadable MP4s**
(`FlexStory.tsx` already muxes `audio/music-ambient.mp3` + `sfx-whoosh/chime` via
`staticFile()`). This dual requirement — *vendor the raw file* AND *bake it into a paid
customer output* — is the load-bearing test every source below is graded against.
---
## 0. THE LOAD-BEARING QUESTION: "Can a paid SaaS render + vendor this?"
FlatRender does two things that most "free music/SFX" licenses quietly forbid:
1. **Vendors the raw file** — commits the `.mp3`/`.wav` into the repo and serves it at render time.
2. **Bakes it into a paid customer MP4** that the customer downloads.
Only **three license classes** clear BOTH halves cleanly:
| Class | Render-into-MP4 | Vendor raw file | Attribution | Notes |
|---|---|---|---|---|
| **CC0 / Public Domain** | ✅ | ✅ | none | The only friction-free tier. Vendor + render + resell, zero conditions. |
| **CC-BY** | ✅ | ✅ | **REQUIRED, travels with file** | Legal but the credit must be auto-injected into every render + a notices file. Operational burden. |
| **MIT** (rare for audio) | ✅ | ✅ | notice file | n/a here — no audio source is MIT. |
Everything else fails on at least one of these recurring traps:
- **"No standalone-file redistribution"** (Pixabay, Mixkit, 99Sounds, Sonniss, Zapsplat, Bensound, Tunetank, Storyblocks, Patrick de Arteaga, Envato) → you may render-into-MP4 but **may NOT vendor the raw file**. Fatal under FlatRender's vendor-the-file architecture.
- **"No competing/stock-basis product"** (Mixkit, Uppbeat, Envato, Storyblocks) → a paid template SaaS *is* the competing product. Hard NO.
- **NonCommercial (-NC)** (BBC RemArc, Jamendo-via-Openverse, FMA -NC slice) → paid SaaS is commercial. Hard NO.
- **ShareAlike (-SA) / NoDerivatives (-ND)** (FMA slices) → SA forces your paid MP4 to be released CC-BY-SA (fatal); ND treats sync-to-video as a prohibited derivative (fatal).
- **Aggregator disclaimer** (FMA, Openverse, Chosic, ccMixter "Free for Commercial") → the platform licenses nothing; the per-track upstream license governs and must be verified per file.
- **Iran payment wall** (Uppbeat, Bensound, Tunetank, Envato, Storyblocks, Patrick de Arteaga paid tier, incompetech/CreatorChords no-attribution upgrade) → the *only compliant tier* requires a foreign card/contract Iran cannot execute.
**Net:** the vendorable library must be built on the **CC0 tier first** (FreePD via archive.org, Freesound-CC0, Kenney, OpenGameArt-CC0), with **CC-BY as a credit-pipeline tier** (incompetech, ccMixter-CC0/BY, FMA-CC0/BY, Chosic-CC0). Persian/traditional is the hardest gap and has **no clean CC0 bulk source** — see §3.
---
## 1. MUSIC — per-source verdicts
### 1.1 FreePD.com (Kevin MacLeod CC0 catalog) — ⭐ PRIMARY MUSIC SOURCE
- **License:** CC0 1.0 — full public-domain dedication, verified against CC legal code. Zero conditions: vendor + render + resell, no attribution. **The cleanest tier for FlatRender's exact use case.**
- **Iran-access:** **freepd.com is DEAD (closed 2025).** Catalog survives as a complete CC0 mirror at **`archive.org/details/freepd`** (1,025+ MP3, torrent + M3U). archive.org is intermittently reachable from Iran (VPN/Psiphon) — **mirror NOW, don't depend on live access.**
- **Vibe:** uplifting/corporate, calm/ambient, cinematic, playful. **WEAK on Persian/traditional.**
- **Verdict:** **USE** (CC0 clean). Rated "caution" in source only because the official host is dead and acquisition runs through a third-party archive.org mirror — license is spotless. **Vendor the FreePD/CC0 version, never the Incompetech/CC-BY twin of the same track.**
### 1.2 Freesound.org (CC0 filter) — ⭐ PRIMARY SFX + music-loop source
- **License:** per-sound; **CC0 subset only.** CC0 = "you could even sell the sound," no attribution, standalone redistribution OK. CC-BY usable with attribution. **Hard-exclude CC-BY-NC + Sampling+.**
- **Acquisition catch:** the **Freesound API is NON-COMMERCIAL** unless you sign a UPF agreement → acquire **manually** (individual downloads), governed only by the CC license, not the API TOS. Never scrape.
- **Iran-access:** UPF/Barcelona (EU, not OFAC). Cloudflare-fronted + login-to-download → acquire once via non-Iran box/VPN, then vendor (CC grant is perpetual).
- **Vibe:** best-in-class SFX (UI/whoosh/transition/ambience/foley); some thin Persian instrument samples (santoor/tar/daf).
- **Verdict:** **USE** (CC0-filtered, manual download). Mandatory: re-verify license per file at download, log CC0 proof in ledger, loudness-normalize (no upstream QC).
### 1.3 incompetech (Kevin MacLeod) — CC-BY, attribution pipeline
- **License:** CC-BY 4.0 (free tier). Commercial + redistribution OK, **but attribution travels with every file** — exact credit string must appear in each render's credits + a notices file. Paid Standard License removes attribution but needs a **foreign card (Iran-blocked)**.
- **Iran-access:** GOOD (static Cloudflare site, no login; archive.org mirror as fallback). The no-attribution *upgrade* is payment-blocked.
- **Vibe:** EXCELLENT breadth (~2,000 tracks: uplifting/corporate/ambient/cinematic/playful). No Persian.
- **Verdict:** **CAUTION / USE-with-pipeline.** **Cleaner path: pull the SAME MacLeod tracks from FreePD where they are CC0 (no attribution).** Reserve incompetech CC-BY only for tracks not on FreePD, gated behind an attribution-injection pipeline.
### 1.4 ccMixter (dig.ccMixter "Free for Commercial") — per-track CC, supplement
- **License:** per-track. **CC0 subset = vendor freely.** CC-BY = vendor + mandatory in-output attribution (title + artist + ccMixter URL + CC-BY link). **HARD-AVOID:** CC-BY-NC, ccPlus (paid), Sampling/Sampling-plus. Remix community → tracks may sample other-licensed material.
- **Iran-access:** OK via VPN; documented IP-based download rate-limiting → throttle, no bulk scrape.
- **Vibe:** electronic/ambient/cinematic, community quality varies. No reliable Persian.
- **Verdict:** **CAUTION.** Use CC0 subset for vendoring; CC-BY only with attribution pipeline. Supplement, not primary.
### 1.5 Free Music Archive (FMA) — aggregator, per-track minefield
- **License:** aggregator, licenses nothing. **Safe set = CC0 + CC-BY ONLY.** **Reject ALL -NC, -SA, -ND** (verified stricter: FMA treats sync-to-video as a derivative → ND prohibited; SA would force your paid MP4 under CC-BY-SA). Terms 6(e) bans scraping → manual per-track download.
- **Iran-access:** OK (Tribe of Noise BV, Netherlands — not US). VPN fallback.
- **Vibe:** all vibes; has a **"World" section with some Persian-adjacent material** (best of the aggregators for Persian discovery, but per-track license verification mandatory).
- **Verdict:** **CAUTION.** Discovery layer → filter to CC0/CC-BY → re-verify each track's license page → vendor.
### 1.6 Openverse — aggregator, CC0 discovery funnel only
- **License:** aggregates Jamendo/Freesound/Wikimedia; licenses nothing, disclaims verification. **CRITICAL TRAP: Jamendo free tracks are CC-BY-NC (non-commercial) → forbidden.** Only the CC0 slice (Freesound/Wikimedia) is usable, confirmed on the source page.
- **Iran-access:** portal reachable; download happens on source (Wikimedia best, Freesound login-gated, **exclude Jamendo entirely**).
- **Verdict:** **CAUTION** — CC0 discovery funnel into Freesound/Wikimedia. Never trust the Openverse tag.
### 1.7 Chosic — aggregator, CC0 "no-attribution" funnel
- **License:** not a rights holder; has restrictive in-house terms. The `?attribution=no` filter is a **discovery hint, NOT a CC0 guarantee** (mixes CC-BY where artists sell paid no-attribution licenses). Trace each track to its origin, confirm genuine CC0 there.
- **Iran-access:** GOOD (no login, direct MP3, no hard geoblock).
- **Vibe:** cinematic/ambient/uplifting/playful; thin Persian.
- **Verdict:** **CAUTION** — CC0 discovery funnel; per-track human sign-off; provenance = named upstream artist + verified CC0, never "Chosic".
### 1.8 CreatorChords (Alexander Nakarada / ex-Serpent Sound) — best CINEMATIC/EPIC
- **License:** dual. Free = CC-BY 4.0 (attribution travels + Content-ID auto-claim risk). Clean path = **paid attribution-free Single License ($20/track)** — but **USD checkout is Iran-blocked.**
- **Iran-access:** free CC-BY downloads work; the paid clean tier is **payment-blocked from Iran.**
- **Vibe:** **best cinematic/epic/fantasy** on the list; folk/medieval/calm. No Persian.
- **Verdict:** **CAUTION.** Bake into render only (the "can't redistribute music alone" clause bars bare-file vendoring). Practically blocked from Iran for the clean tier.
### 1.9 Pixabay Music — ⚠️ vendoring TRAP (best Persian vibe, wrong architecture)
- **License:** Pixabay Content License (NOT CC0). **Render-into-MP4 = permitted** (adds value). **Vendoring the raw .mp3 = PROHIBITED** ("distribution of Content as music files on a standalone basis"). ToS also bans scraping/bulk. Third-party-sample caveat bites Persian/sampled tracks hardest.
- **Iran-access:** Cloudflare-blocked from Iran (ECONNREFUSED confirmed); acquire once via non-Iran box/VPN — license is perpetual.
- **Vibe:** **best practical Persian/Middle-Eastern coverage of the free sources** (`pixabay.com/music/search/persian` → santoor/oud), plus broad corporate/ambient/cinematic/playful.
- **Verdict:** **CAUTION / AVOID for vendoring.** Usable **ONLY if architecture changes** to mux-into-MP4 with **no standalone raw-file exposed/served**. Under FlatRender's vendor-the-file requirement it effectively disqualifies — but it is the **least-bad Persian source** if you adopt the bake-only, never-serve-raw discipline (screen each Persian track for sampled-recording rights, prefer original compositions).
### 1.10 Mixkit (Envato) — ❌ AVOID
- **License:** proprietary. Bans raw-file redistribution, stock/inventory basis, AND competing products. A paid template SaaS is exactly the prohibited case. Music also barred from CDs/DVDs/games/TV.
- **Iran-access:** Envato enforces US sanctions, locks Iranian accounts. POOR.
- **Verdict:** **AVOID** — textbook "free but forbids redistribution/competition" trap.
### 1.11 Uppbeat — ❌ AVOID
- **License:** single-use, no redistribution/resell/"make available as part of a competing platform." SaaS routed to a negotiated Music Vine custom license.
- **Iran-access:** GBP/USD billing, Iranian cards declined. POOR.
- **Verdict:** **AVOID** — license is the opposite of what FlatRender needs + Iran-payment-blocked.
### 1.12 Bensound — ❌ AVOID
- **License:** all standard tiers forbid standalone distribution + stock-library inclusion. SaaS requires a mandatory **Enterprise license** (explicitly "SaaS/platform integrations").
- **Iran-access:** Enterprise = signed EUR/USD contract with a Belgian company → **hard blocker from Iran.**
- **Verdict:** **AVOID** — cleanest written SaaS guidance, but mandatory paid tier is unobtainable from Iran.
### 1.13 Tunetank — ❌ AVOID
- **License:** ToS 8.2 bars download/distribution/sublicense/derivatives except in-conjunction-with-Tunetank. Resale explicitly banned. No SaaS path.
- **Iran-access:** USD/PayPal only → blocked.
- **Verdict:** **AVOID.**
### 1.14 Patrick de Arteaga — reference-only
- **License:** raw-file redistribution **forbidden at ALL tiers** (incl. paid). Free tier requires attribution.
- **Iran-access:** free CC works via VPN; paid tiers payment-blocked (and still forbid vendoring).
- **Verdict:** **REFERENCE-ONLY** — game-leaning cinematic/fantasy/chiptune; fails the vendor-into-repo requirement.
### 1.15 Internet Archive (durable host + Persian classical) — per-item, mostly TRAP
- **License:** per-item, uploader-set; platform disclaims all rights. **Safe slice = items explicitly CC0/PD** (e.g. `archive.org/details/freepd` rehost, pre-1929 PD orchestral). **The "Iranian/Persian classical" uploads are user-uploaded COMMERCIAL recordings with NO valid PD/CC0 basis** (e.g. 1974 Nonesuch "A Persian Heritage", Smithsonian Folkways Dastgah LP — both still actively sold) → downloadable but **illegal to vendor.**
- **Iran-access:** FAVORABLE for acquisition (not Cloudflare-gated like Pixabay); but "PD-in-Iran" gives zero legal cover (Iran not in Berne/Rome → collapses the moment a customer downloads the MP4 in a Berne country).
- **Verdict:** **USE as durable host for already-cleared CC0 (FreePD mirror) + pre-1929 PD.** **REFERENCE-ONLY** for Persian classical — **the biggest Persian-license trap in the whole set.** Never equate downloadable with vendorable.
### 1.16 Envato Elements / AudioJungle — ❌ AVOID (double-blocked)
- **License:** 3-way prohibition (single-use, on-demand/build-it-yourself ban, redistribution/extraction ban). Best commercial Persian/santoor coverage, all unusable.
- **Iran-access:** **hard geo/OFAC block + foreign-card-only.**
- **Verdict:** **AVOID** — listed to rule out.
### 1.17 Storyblocks / Taketones / StockTune — ❌ AVOID
- **License:** Storyblocks = explicit standalone-audio + competing-library ban (subscription-gated). Taketones = resale ban. StockTune = AI-generated, unverifiable provenance, 403 ToS. None grant vendor-raw-file.
- **Iran-access:** paid tiers foreign-card-blocked; free tiers' licenses already forbid the use case.
- **Verdict:** **AVOID for vendoring.** Reference-only for Persian vibe-sourcing → commission original audio instead.
---
## 2. SFX — per-source verdicts
### 2.1 Kenney.nl (Audio packs) — ⭐ PRIMARY UI/SFX SOURCE
- **License:** CC0 1.0, confirmed on asset pages. No restrictions, no attribution, vendor raw OK.
- **Iran-access:** **CLEAN via kenney.nl** (Dutch host, not US/OFAC; no login). **NOT the GitHub/itch mirrors** (US, Iran-suspendable).
- **Vibe:** UI/click/pop/chime/toggle/select, playful/digital. Weak on cinematic whoosh; zero Persian.
- **Verdict:** **USE** — the spine of FlatRender's UI SFX kit. Lowest-risk source on the entire list.
### 2.2 Freesound.org (CC0) — see §1.2 (top SFX well by volume)
- **Verdict:** **USE** (CC0-filtered, manual download).
### 2.3 OpenGameArt.org (CC0 packs) — bulk CC0 supplement
- **License:** per-submission; **CC0-filtered packs only** ("100 CC0 SFX" #1/#2, "80 CC0 RPG SFX", etc.). **Reject CC-BY-SA/GPL/CC-BY/OGA-BY.** OGA disclaims credit-file accuracy → verify each file + provenance.
- **Iran-access:** no barrier (community static host, no payment).
- **Vibe:** game/UI clicks, impacts, RPG/fantasy, metal/wood foley, loops. No cinematic-premium, no Persian.
- **Verdict:** **USE** (CC0-filtered, per-file verified) — bulk supplement to Kenney.
### 2.4 Sonniss GameAudioGDC — caution (server-side render input only)
- **License:** permits "embedded into licensee project" (bake into MP4 = OK). **Bars standalone-file redistribution + competing libraries + AI/ML training.** Defensible ONLY if raw .wav never leaves the server as a downloadable asset.
- **Iran-access:** UK-based, free torrent; multi-GB size is the only friction.
- **Vibe:** premium cinematic/foley/impact/whoosh/ambience. Zero Persian.
- **Verdict:** **CAUTION****private object storage (MinIO) render-input ONLY**, never committed to a public repo, never served as raw, never fed to AI training.
### 2.5 99Sounds — caution (render input only)
- **License:** commercial use OK; **bars redistributing files "on their own / as a separate attachment."** Render-into-MP4 = OK; commit-raw-into-repo = violation.
- **Iran-access:** Gumroad $0 checkout, VPN. Achievable.
- **Vibe:** **strongest free source for premium cinematic TRANSITION/whoosh/riser/boom.** No UI-micro, no Persian.
- **Verdict:** **CAUTION** — render-time input only; enforce render-yes / commit-no boundary.
### 2.6 Pixabay (SFX) — ⚠️ vendoring trap (same as §1.9)
- **Verdict:** **AVOID for vendoring** ("no standalone redistribution"); render-input only if you never persist/serve the raw file.
### 2.7 Mixkit (SFX) — ❌ AVOID (same clauses as §1.10)
- **Verdict:** **AVOID** + Envato Iran-sanctions exposure.
### 2.8 Zapsplat — ❌ AVOID (most explicit prohibition)
- **License:** Standard tier names "sound effects app" + "apps" as **forbidden redistribution targets**; bans sharing/transfer/sub-license to any third party on free AND Gold. Free tier requires visible "ZapSplat" credit.
- **Iran-access:** UK, not OFAC-blocked, but the license is the dealbreaker.
- **Verdict:** **AVOID** — direct collision with FlatRender's model.
### 2.9 BBC Sound Effects (RemArc) — ❌ AVOID (non-commercial)
- **License:** RemArc = **non-commercial/personal/education only.** Commercial = paid Pro Sound Effects (US, Iran-closed).
- **Verdict:** **AVOID** — known "free BBC sounds" trap.
---
## 3. PERSIAN / TRADITIONAL — the honest gap
There is **no clean CC0 bulk source** for authentic Persian/Middle-Eastern music. The realistic options, worst-to-best for a vendor-the-file SaaS:
- **Internet Archive Persian classical** (Payvar santur, Dastgah LPs) — perfect vibe, **almost always wrong license** (commercial recordings, no PD/CC0 basis, still sold by Warner/Smithsonian). **REFERENCE-ONLY. The biggest Persian-license trap.**
- **Envato / Storyblocks / Taketones** ("Ambient Persian Santoor" etc.) — best commercial coverage, but license forbids the SaaS pattern AND Iran-payment-blocked. **AVOID.**
- **Pixabay Persian subset** — least-bad real option, but **only under bake-into-MP4, never-serve-raw** discipline + per-track sampled-rights screening. Not a clean vendor-the-file source.
- **Freesound-CC0 Persian instrument samples** (santoor/tar/daf) — thin but **genuinely CC0 and vendorable.** Best clean building block; needs manual curation.
- **✅ The only truly firewall-clean path: COMMISSION original santoor/tar/setar recordings (or self-author/synthesize) and self-dedicate CC0.** This mirrors how the illustration library self-authors Persian/seasonal motifs (`Nowruz3D.tsx`). For a Persian-first paid product this is the recommended long-term answer.
---
## 4. License firewall — `assets.json` ledger rules (mirrors the illustration firewall)
The CI guard (`services/remotion/scripts/check-assets.mjs`) **already scans `public/audio/`**
against `public/illustrations/assets.json`. **Every vendored audio file gets one ledger row.
No row → build fails (exit 1).** Reference-only sources are **never vendored** (no file → no row).
Ledger key convention (verified): audio rows carry the `audio/` prefix
(e.g. `"audio/freepd-epic-01.mp3"`).
```jsonc
{
"audio/freepd-cinematic-01.mp3": {
"source": "FreePD (Kevin MacLeod) via archive.org/details/freepd",
"license": "CC0-1.0", "license_class": "CC0",
"commercial_ok": true, "attribution_required": false, "ai_training_allowed": true,
"vibe": "cinematic", "url": "https://archive.org/details/freepd",
"provenance": "CC0; FreePD twin (NOT Incompetech/CC-BY)", "vendored": "2026-06-23"
},
"audio/freesound-whoosh-01.wav": {
"source": "Freesound.org (CC0 filter, manual download)",
"license": "CC0-1.0", "license_class": "CC0",
"commercial_ok": true, "attribution_required": false, "ai_training_allowed": true,
"vibe": "sfx/transition", "url": "https://freesound.org/s/<id>/",
"provenance": "license re-verified at download; NOT via commercial API", "vendored": "2026-06-23"
},
"audio/kenney-ui-click-01.wav": {
"source": "Kenney.nl Interface Sounds",
"license": "CC0-1.0", "license_class": "CC0",
"commercial_ok": true, "attribution_required": false, "ai_training_allowed": true,
"vibe": "sfx/ui", "url": "https://kenney.nl/assets/interface-sounds", "vendored": "2026-06-23"
},
"audio/incompetech-corporate-01.mp3": {
"source": "incompetech (Kevin MacLeod)",
"license": "CC-BY-4.0", "license_class": "CC-BY",
"commercial_ok": true, "attribution_required": true, "ai_training_allowed": true,
"attribution": "Title — Kevin MacLeod (incompetech.com) — Licensed under Creative Commons: By Attribution 4.0",
"vibe": "uplifting/corporate", "notice_file": "audio/CREDITS.md", "vendored": "2026-06-23"
}
}
```
**Hard rules (audio):**
1. **Only CC0/PD vendored as raw `public/audio/` files** (FreePD, Freesound-CC0, Kenney, OpenGameArt-CC0). These get `attribution_required:false`.
2. **CC-BY vendored ONLY with an attribution pipeline**`attribution_required:true` + an exact `attribution` string + a `notice_file` (`audio/CREDITS.md`) that the render bakes into the output. No pipeline → don't vendor (prefer the FreePD/CC0 twin).
3. **"Render-input-only" sources (Sonniss, 99Sounds, Pixabay-mux-only) are NEVER committed to the public repo** — store in **private MinIO**, mux into MP4 server-side, never serve/persist a standalone raw file. They get **no `public/audio/` row** (the ledger is for vendored files only).
4. **`ai_training_allowed:false`** on anything that touches FlatRender's future AI-video pipeline unless the license explicitly permits ML training (Sonniss explicitly forbids it).
5. **Never-vendored reference-only** (Mixkit, Uppbeat, Bensound, Tunetank, Zapsplat, BBC RemArc, Envato, Storyblocks, Patrick de Arteaga, IA-Persian-classical): no file, no row, design-time reference only.
6. **Persian tracks** carry an extra `provenance` note: `"vetted original-composition"` or `"CC0 instrument sample"` — never vendor sampled-commercial-recording-based tracks.
---
## 5. Vendoring manifest — concrete starter set
All under `services/remotion/public/audio/`. For Cloudflare/archive.org/Gumroad-gated
sources, acquire via a **non-Iran box / VPN once**, then commit — render-time is CDN-free.
```bash
# 0. Folder already exists (4 self-authored CC0 stubs vendored). Keep them.
# public/audio/{music-ambient,sfx-whoosh,sfx-pop,sfx-chime}.mp3 ✅ already ledgered
# 1. MUSIC — FreePD CC0 (⭐ primary). freepd.com is DEAD → pull the archive.org mirror.
# [NON-IRAN FETCH] VPN/Psiphon; mirror the whole collection, it is PD forever.
# archive.org/details/freepd → pick ~810 beds across vibes:
# uplifting/corporate ×3, calm/ambient ×3, cinematic ×2, playful ×2
# → public/audio/freepd-<vibe>-NN.mp3 (license_class:"CC0", attribution:false)
# 2. SFX — Kenney.nl CC0 (⭐ primary, CLEAN from Iran via kenney.nl, NOT GitHub mirror)
# Interface Sounds + UI Audio packs → pick click/pop/chime/toggle/select/whoosh
# → public/audio/kenney-ui-<name>.wav (CC0, no firewall concern)
# 3. SFX — Freesound CC0 (manual download, NOT the commercial API)
# [NON-IRAN FETCH] login required → VPN once. Filter license:"Creative Commons 0"
# re-verify per file → cinematic whoosh/riser + ambience beds Kenney lacks
# → public/audio/freesound-<name>.wav (CC0; log source URL + CC0 proof)
# 4. SFX — OpenGameArt CC0 packs (bulk supplement, per-file verified)
# "100 CC0 SFX" #1/#2 → extra UI/impact loops; reject any CC-BY-SA/GPL/CC-BY
# → public/audio/oga-<name>.ogg
# 5. (OPTIONAL) MUSIC — incompetech CC-BY ONLY for vibes FreePD lacks, WITH pipeline
# Build audio/CREDITS.md + render-time credit injection FIRST. Otherwise skip.
# 6. PERSIAN — no clean bulk source. Short term: curate Freesound-CC0 santoor/tar/daf
# samples (vendorable). Long term: COMMISSION original Persian recordings → self-CC0.
# Do NOT vendor Internet Archive Persian classical (commercial, illegal to vendor).
# 7. Verify firewall:
npm run check:assets # fails if any public/audio/*.mp3|wav|ogg lacks a ledger row
```
**Then add one `assets.json` row per vendored file** (§4 templates). The CI guard already
covers `public/audio/`, so an un-ledgered drop fails the build automatically.
**Iran-mirror flags:** FreePD/archive.org = VPN/Psiphon (intermittent). Freesound =
Cloudflare + login → non-Iran box once. Kenney = clean from Iran (use kenney.nl, not GitHub).
Pixabay = Cloudflare-blocked → non-Iran box, and **mux-only never vendor.** Envato/Mixkit/
Uppbeat/Bensound/Tunetank/Storyblocks = OFAC payment-blocked, don't pursue.
---
## 6. Best vendorable source per vibe
| Vibe | Best CLEAN vendorable source | License | Note |
|---|---|---|---|
| **Uplifting / corporate** | FreePD (archive.org mirror) | CC0 | incompetech CC-BY backup (w/ pipeline) |
| **Calm / ambient** | FreePD + Freesound-CC0 ambience | CC0 | self-authored `music-ambient.mp3` already vendored |
| **Cinematic** | FreePD (cinematic/epic categories) | CC0 | CreatorChords better quality but Iran-payment-blocked |
| **Playful** | FreePD playful + OpenGameArt-CC0 | CC0 | Kenney for playful UI blips |
| **UI / transition SFX** | **Kenney.nl** ⭐ | CC0 | clean from Iran; Freesound-CC0 for whoosh/riser |
| **Persian / traditional** | **Freesound-CC0 instrument samples** (thin) → **commission + self-CC0** | CC0 | Pixabay Persian = bake-only, never-vendor; IA classical = trap |
---
## 7. ⚠️ Reality Check — honest status
- **Truly USE-tier + vendorable TODAY (CC0, clean):** **4 sources**
**FreePD** (via archive.org), **Freesound-CC0**, **Kenney.nl**, **OpenGameArt-CC0**.
Plus the **4 self-authored CC0 stubs already in `public/audio/`** (these are the only
audio files actually vendored right now).
- **CAUTION (usable with friction/pipeline/architecture-constraint):** **6** — incompetech
(CC-BY pipeline), ccMixter (CC0/BY subset), FMA (CC0/BY, manual), Chosic & Openverse
(CC0 funnels), Internet Archive (CC0/PD-host only). Plus **Sonniss / 99Sounds / Pixabay**
as **render-input-only** (NOT vendorable — private MinIO, mux-only).
- **AVOID / reference-only:** **the rest** — Mixkit, Uppbeat, Bensound, Tunetank, Zapsplat,
BBC RemArc, Envato, Storyblocks, Taketones, StockTune, Patrick de Arteaga, and the
Internet Archive Persian-classical uploads (license trap).
- **Needs a NON-IRAN / VPN fetch:** FreePD (archive.org intermittent), Freesound (Cloudflare +
login), Pixabay (Cloudflare ECONNREFUSED from Iran). **Kenney is the one clean-from-Iran
source.** Acquisition-once-then-vendor makes the CC0/CC-BY grant perpetual and Iran-access
irrelevant at render time.
- **Persian honest verdict:** **NO clean CC0 bulk source exists.** Best clean path =
Freesound-CC0 instrument samples (thin) + **commission original recordings and self-dedicate
CC0** (matches the project's self-authored Persian-illustration discipline). Everything with
rich Persian vibe (Pixabay, Envato, Internet Archive) is either bake-only-never-vendor,
Iran-payment-blocked, or an outright license trap.
- **Bottom line:** Build the vendorable audio library on **FreePD + Freesound-CC0 + Kenney +
OpenGameArt-CC0**; add **incompetech CC-BY only behind an attribution pipeline**; keep
**Sonniss/99Sounds/Pixabay as private render-inputs**; **self-commission Persian audio**;
and treat **everything else as design-time reference only.** Today's true deliverable is not
"a music library downloaded" — it's the §5 starter set (≈20 CC0 files) vendored + ledgered,
growing on the proven firewall pipeline.