# ReleaseBridge · local release sample 1.0.0

Open **index.html** for the original fictional English/Spanish product. Use the demo-step menu to reproduce all ten states, or create a task, change its status, filter, check the example release list and download its JSON. The UI stores only in-memory synthetic data. Refresh resets it.

The two-minute film is an **illustrated interface generated from the same labels and canonical states**, not a browser recording. Text is an unreviewed Latin American Spanish draft (**es-419**); the optional synthetic voice is **Spain Spanish, es-ES**. That regional voice mismatch is deliberate and disclosed, not a completed Latin American voice service.

## Actual files

- Captioned and caption-free MP4: 1920 × 1080, 24 fps, H.264/AAC, 120 seconds each. “Caption-free” keeps UI labels and the sample/voice disclosure, but removes narration captions.
- `narration-es-ES-spain.wav`: real local synthesis, mono PCM16 at 16 kHz, 120 seconds with deliberate reading pauses. Individual clips are in `audio-clips/`.
- `captions-es-419.srt` / `.vtt`: 20 cues aligned to each synthesized clip's actual start/end; no word-level alignment claim.
- `project.json`: canonical bilingual script, 10 scenes, 30 term/UI pairs, locale and review status. `glossary.json` is the derived glossary.
- `release-inventory.json`, `manifest.json`, `review-report.md`: version, hashes, completed checks and remaining approval gaps.
- `releasebridge.py`: standard-library validation, WAV assembly, subtitle export, FFmpeg render, package tool. No network calls.
- `synthesize_local.py`: optional adapter; uses separately installed Piper only when new narration is needed. Core rebuild uses the supplied WAVs and does not need Piper.
- `demo-engine.js`: original dependency-free state machine. `test_demo.js` runs its checks with Node.

## Rebuild without buying anything

Install/use Python 3.10+ and a separately licensed FFmpeg build with `drawtext`, `libx264` and AAC. Supply a local font you have permission to render. Neither the font, FFmpeg, Piper, nor voice-model binary is included in this ZIP. The actual sample used Python 3.12.14, FFmpeg 7.1 and the locally installed Arial font, which is not redistributed.

Run from the extracted package directory:

```text
python releasebridge.py validate
python releasebridge.py test
python releasebridge.py captions
python releasebridge.py render --ffmpeg /absolute/path/to/ffmpeg --font /absolute/path/to/font.ttf
node test_demo.js .
See customer-mode/README.md for the authorized-input delivery ZIP command.
```

On Windows, pass the full `ffmpeg.exe` path and a font such as `C:/Windows/Fonts/arial.ttf` if licensed on that machine. Rendering may take several minutes. `render-cache/` contains temporary segment media and a font copy; it is excluded from the download package. Delete that cache using your normal file manager when no longer needed. No system configuration or access-control changes are required.

The original `releasebridge.py` command is a fixed 120-second fictional illustration renderer. The separate **`customer-mode/customer_release.py`** production command accepts supplied authorized reference video, approved Spanish UI recording, script/timeline and narration for **1–10 segments totaling up to 20 minutes**. See `customer-mode/README.md`. Its 36-second actual acceptance fixture proves a non-120-second input path; the fixture remains explicitly original illustrated footage, not customer recordings. Native Latin American voice and language review remain open.

## Changing the script or narration

The tool rejects changed narration text with old clips, changed WAV bytes, more than 50 glossary entries, inconsistent UI labels, unsafe cue IDs, overlapping cues, overlong audio slots and a package whose source changed after rendering. It does not determine whether a translation is idiomatic or an approved product statement is true.

To synthesize this exact optional fallback locally, obtain **piper-tts 1.8.0** separately and the official **es_ES-carlfm-x_low.onnx** plus its `.onnx.json`, following `license-review.md`. Then:

```text
python synthesize_local.py --project project.json --model /path/es_ES-carlfm-x_low.onnx --out audio-clips
```

Optional `--deps /path/to/piper-install` supports an isolated install. The command produces a clip manifest with text/audio hashes. Do not edit hashes to conceal changed or unreviewed audio. Changing to another voice requires a fresh rights review, explicit locale metadata, new clips and listening review. No voice cloning is implemented.

## Distribution

The ZIP contains original source/content and generated media. It excludes engine/model/font binaries and installed dependencies. `LICENSE.txt` covers our original code and fictional source; third-party rules stay separate in `license-review.md`. No customer, model provider or language reviewer has endorsed this sample. No platform upload, purchase, customer-data processing or native-speaker review took place.
