Venue guide
Everything a venue needs to broadcast audio straight to visitors' hearing aids — in order, from nothing to fully set up. No account needed.
- Get broadcasting — the one piece of hardware you need
- Set up & get listed — 4 easy steps, prints your sign
- Signage — make more scan-to-hear QR signs any time
- Live captions — optional, and easier than you think
- Manage your listing
1 · Get broadcasting
You need one thing: an Auracast™ transmitter — a small box that takes the sound you already have and broadcasts it over Bluetooth to everyone nearby.
- One TV or a small room (bar, gym, waiting room): a consumer Auracast TV transmitter (e.g. the Avantree C81/C82 family) plugs into the TV's optical or headphone output. Under $100, five-minute setup.
- A hall, church, theater, or terminal: commercial Auracast systems are shipping now — e.g. Auri (Ampetronic/Listen Technologies, TX2N transmitter ≈$1,889) or Williams AV Infinium (BA-T1 ≈$1,305). Your AV installer feeds it from the same mixer output as your PA.
- Already have a hearing loop (t-coil)? Keep it — Auracast runs happily alongside. Feed the transmitter from the same audio output that drives your loop amplifier, and you serve both generations of hearing aids at once.
- Loaner receivers: for guests whose devices don't do Auracast yet, venues can offer receivers (e.g. Auri RX1, ≈$335, with earphone or t-coil neckloop) — in the US this also matters for ADA assistive-listening receiver requirements.
Placement tip: the transmitter covers roughly a room. Put it near where people sit, not in the AV closet.
Once it's plugged in and broadcasting, continue to Set up & get listed — four steps, and it prints the sign your visitors scan to listen.
3 · Signage — QR generator
Fill in your broadcast details to build a standard Bluetooth SIG Broadcast Audio URI and a printable QR code. Phones that support Auracast can join your audio by scanning it.
4 · Live captions (optional)
Captions turn a good experience into a complete one: listeners see your words in the HearAura app next to the audio. Three ways, easiest first — venues with an API key can push lines; the newest 200 per broadcast are kept.
Already have captions? Don't re-transcribe them
- Caption Player — upload a
.vtt/.srtsubtitle file and stream it to your feed live, in sync with your content. Runs in this browser; nothing to install. - Live TV closed captions — TV transmissions carry real CEA-608/708
captions. Extract them with
ccextractorand relay withscripts/cc_bridge.py(HearAura repo) — exact broadcast text, zero speech recognition. - No captions at all?
scripts/source_captioner.pytranscribes your playback audio locally with Whisper and pushes the text.
Push a caption line (venue key required)
curl -X POST "https://hearaura.app/api/captions/YOUR_BROADCAST_ID" \
-H "Authorization: Bearer YOUR_VENUE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"line": "Welcome — the concert begins in five minutes."}'
Read caption lines (public)
# first fetch
curl "https://hearaura.app/api/captions/YOUR_BROADCAST_ID"
# then poll for lines newer than the last id you saw
curl "https://hearaura.app/api/captions/YOUR_BROADCAST_ID?since=42"
Response: [{"id": 43, "line": "…", "at": 1751700000000}] —
at is a Unix timestamp in milliseconds.
5 · Manage your listing
Your venue appears in the HearAura app's map with community "it worked" reports — listing is free. Coming soon: claiming (verified badge, editing your listing, self-serve API keys) and paid plans. Billing is intentionally not wired up yet. For now, email us to get a caption API key for your venue.
Prove you're on the air (optional, recommended)
Run scripts/venue_agent.py (HearAura repo) on any
Bluetooth-capable box near your transmitter — a Raspberry Pi is perfect. It listens for your
actual broadcast every minute and checks in, so your listing shows an honest
"on air now" instead of hoping the transmitter is still plugged in. Works with
any transmitter brand; needs your venue API key.
For developers — public API
GET /api/venues?lat=&lng=&q= # nearest-first venue list
POST /api/venues # suggest a venue (unverified)
GET /api/venues/:id # one venue + report counts
POST /api/venues/:id/reports # {"worked": true, "brand": "..."}
GET /api/venues/:id/stats # daily report stats, last 30 days
GET /api/alerts # venues with hearing-alert broadcasts