- Effective date: 19 October 2026
- App: HexCaptions (Android package
com.livecaptions.app) - Developer: The BugHex
- Contact: support@thebughex.com
This policy explains what happens to your information when you use HexCaptions. If anything is unclear, email us.
The short version
- Speech is turned into text on your phone. Your audio is never recorded, saved or uploaded.
- There is no account. We never receive, sell or share your captions or transcripts.
- If the app crashes, a crash report comes to us through Google's Firebase Crashlytics, so we can fix it: what went wrong, details of your device and the app, and the screens and actions just before it. Never your audio, captions, transcripts or files. Details.
- The app shows ads from Google AdMob and, when AdMob has none to show, from Start.io. To choose, count and pay for them, these ad networks receive information about your device, including its advertising ID, but never your audio, captions, transcripts or files. Where the law requires it, you are asked first, and you can change your answer at any time. Details.
- Google's ML Kit, which translates captions on your device, sends Google diagnostic data about how its translation feature runs.
- If you choose to connect a LibreTranslate server, caption text goes to that server and nowhere else.
Audio and captions
HexCaptions listens to one of two sources, and only while captions are running:
- Device audio: the sound other apps play, such as a video. Android shows its screen-sharing prompt for this, because capturing another app's sound uses the same system feature. HexCaptions uses only the audio. It does not record, read or store what is on your screen.
- Microphone: the sound around you, when you choose Microphone.
The audio goes straight to the speech pack on your phone and is discarded as soon as it has been turned into text. It is never written to storage and never leaves your phone.
Videos and recordings you choose in Transcribe, or share to HexCaptions from another app, are read and transcribed on your phone in the same way. They are not uploaded.
What the app stores on your phone
- Transcripts: live sessions (unless you turn off Settings → Save live transcripts) and transcribed files, with their translations, in History.
- Settings: your languages, caption style, theme and, if you use one, your LibreTranslate server address and API key.
- Language packs: speech and translation models you download.
- Your ad privacy choices: the answer you gave in Google's consent message, kept on your phone by Google's consent software so the app knows which ads it may show.
This data is in the app's private storage, which other apps cannot read. Android's own backup may include your settings and transcripts, depending on your phone and Google account settings. That backup is controlled by you and Google, not by HexCaptions, and is end-to-end encrypted when your phone has a screen lock. Language packs are left out of it.
What leaves your phone
- Ads. The ads software of Google AdMob and Start.io in the app receives information about your device to show ads. See Ads below.
- Crash reports. Sent to us through Google's Firebase Crashlytics when the app crashes or hits an error. See Crash reports below.
- Language pack downloads. When you download a language, the app fetches it over HTTPS: speech packs from Alpha Cephei (alphacephei.com, the Vosk project) and Hugging Face (huggingface.co, for Whisper), and translation models from Google. These requests carry what any download does, such as your IP address. No captions, audio or personal details are sent.
- On-device translation (Google ML Kit). Captions are translated on your phone and the text is not sent to Google. ML Kit does send Google diagnostic and usage data: device and app information (model, Android version, app version), a per-installation identifier that does not identify you, performance and error information, and which languages are translated. Google uses it to run and improve ML Kit. See Google's ML Kit data disclosure and privacy policy.
- LibreTranslate (optional, off unless you set it up). If you add a LibreTranslate server in Settings and choose it as the translation engine, the text of each caption, the two languages and your API key (if any) are sent to that server over HTTPS to be translated. Only the server you enter receives them; we do not. That server's own privacy practices apply.
- Links. "A Product of The BugHex" in Settings opens thebughex.com in your browser, and Privacy policy opens this page.
The app uses HTTPS only. Unencrypted connections are refused, including to a LibreTranslate server.
Crash reports
When HexCaptions crashes, or runs into an error it recovers from, Google's Firebase Crashlytics in the app sends a report to us so we can find and fix the problem. A report contains:
| What | Why |
|---|---|
| Where in the app's code the problem happened, and what the app's threads were doing at that moment | To find the bug |
| Phone model, Android version, app version, language, screen orientation, free memory and storage, and whether the app was open on screen | To see which phones are affected |
| A random identifier for this installation of the app, created by Firebase. It is not your advertising ID, and it is reset if you reinstall the app or clear its data | To tell one affected phone from many |
| The screens opened and the main things done just before, such as starting captions or exporting subtitles, with settings like the languages, the audio source, the speech pack, how long captions ran and how many lines a file produced | To retrace what led to the problem |
Each time the app is opened, Crashlytics also sends a short notice of that session, with the same identifier, app and device details and the time, so we can tell how often the app crashes compared with how often it is used.
Reports never contain your audio, captions, transcripts, translations, file names or anything you type. They are sent encrypted to Google, which processes them for us under the Firebase data processing terms (see Firebase privacy). Crash reports are deleted after 90 days. We use them only to fix problems: not for ads, and we do not share them.
Ads
HexCaptions is free and shows ads: a banner at the bottom of some screens, and ads shown as cards or list rows on others. Every ad is marked "Ad". The ads come from Google AdMob and, when AdMob has no ad to show, from Start.io. Your audio, captions, transcripts, translations and files are never given to either ads software and are never used to choose ads.
Google AdMob
To show ads, Google's ads software in the app collects:
| What | Why |
|---|---|
| Your device's IP address, which can indicate your approximate location (country or city, never a precise location) | To pick ads relevant to where you are, and to detect fraud |
| Your device's advertising ID and app set ID | To limit how often you see the same ad, measure ads, and, only if you allow it, personalise them |
| How you interact with ads (views, taps, video ads watched) and when the app is launched | To count and pay for ads, and to detect fraud |
| Diagnostic information, such as how quickly ads load and how they perform on your device | To keep ads working without slowing the app down |
It is sent encrypted. Google uses this information under its own privacy policy, and may share it with the ad technology providers it works with. You can read how Google uses information from apps that show its ads at policies.google.com/technologies/partner-sites. The app asks AdMob only for ads suitable for general audiences and families (rated G or PG).
Start.io
When AdMob has no ad for a spot, Start.io's ads software may show one. It collects:
| What | Why |
|---|---|
| Your device's IP address, which can indicate your approximate location (never a precise location: the app has no location permission) | To pick ads relevant to where you are |
| Your device's advertising ID | To limit how often you see the same ad, measure ads, and, only if you allow it, personalise them |
| The list of apps installed on your phone, when your advertising ID is available | To choose ads |
| Whether your phone is on Wi-Fi, and where HexCaptions was installed from | To load and measure ads |
| Diagnostic and crash information about its own software | To find and fix its bugs (Start.io does not share it) |
Start.io uses this information under its own privacy policy. Its software starts only once the consent check below allows ads. It does not run when your phone starts up, and it does not use Android's ad topics.
Your choices
Consent and personalised ads. If you are in the European Economic Area, the United Kingdom or Switzerland, the app shows Google's consent message before any ads load, and ads are personalised only if you agree. If you decline, you may still see ads from AdMob, but they are not personalised. Start.io shows ads there only if you agreed to Start.io in that message, and personalises them only if you agreed to ad profiles. In US states whose privacy laws count personalised advertising as selling or sharing personal information, Google's message lets you opt out of it, and Start.io's ads there are never personalised. Wherever these laws apply, you can change your answer at any time in Settings → Privacy choices.
Your advertising ID. You can reset or delete it at any time in your phone's settings, usually under Settings → Privacy → Ads or Settings → Google → Ads. Once it is deleted, apps cannot use it to personalise ads.
Ads need a connection. While you are offline no ads load, and the rest of the app works as usual.
Things you start yourself
- Exporting and sharing subtitles. Export saves an .srt, .vtt or .txt file where you choose, or hands it to the app you pick in Android's share sheet. Where it goes from there is up to you.
- Copy text puts a transcript on your clipboard.
Permissions and why
- Microphone (record audio): to caption speech around you. Android also requires it before any app can capture other apps' sound, so it is needed for device audio captions too.
- Screen sharing prompt (media projection): Android's way of letting an app capture other apps' sound. HexCaptions takes only the audio.
- Display over other apps: for floating captions on top of the app you are watching. Optional. Floating captions never show ads.
- Notifications: to show that captions are running, with pause and stop, and the progress of downloads and transcriptions.
- Foreground services: so captions, downloads and transcriptions keep running when you leave the app. A notification is visible whenever one runs.
- Internet and network state: to download language packs, to wait for Wi-Fi if you asked for that, to load ads, and for LibreTranslate.
- Advertising ID (
AD_ID): lets the ads software of Google and Start.io read your advertising ID, as described under Ads. - Wi-Fi state (
ACCESS_WIFI_STATE): lets Start.io's ads software see whether the phone is on Wi-Fi. Without a location permission, it cannot see network names or where you are. - Install referrer (
BIND_GET_INSTALL_REFERRER_SERVICE): lets Start.io's ads software ask Google Play where HexCaptions was installed from. - Basic phone state (
READ_BASIC_PHONE_STATE): lets Google's ads software see basic details such as the type of mobile network, so ads load efficiently. It gives no access to your calls, phone number or contacts. - List of launchable apps: so you can choose one app to caption. The app keeps the list on your phone; Start.io's ads software can see installed apps too, as described under Ads.
HexCaptions does not ask for your contacts, location, camera, photos or files. Files reach it only when you pick or share them. You can withdraw any permission in Android Settings; the rest of the app keeps working.
Children
HexCaptions is not directed to children under 13. We do not knowingly collect personal information from anyone; the only thing the app sends us is crash reports, which do not include names or contact details. Its AdMob ads are limited to content suitable for general audiences.
Deleting your data
- Delete a transcript in History, or all of them with Settings → Delete all transcripts.
- Delete language packs in Languages.
- Reset or delete your advertising ID in your phone's settings, as described under Ads.
- Uninstall HexCaptions, or use Android Settings → Apps → HexCaptions → Storage → Clear data, to remove everything, including the identifiers ML Kit and Crashlytics use and your ad privacy choices.
The only data of yours that reaches us is crash reports. They carry no name or account and are deleted automatically after 90 days. To have yours deleted sooner, email us. Data that ML Kit or the ads software has sent to Google is handled under Google's privacy policy, data Start.io's ads software has received under Start.io's, and data sent to a LibreTranslate server under that server's.
Changes
If this policy changes, we will update this page and the date at the top. If a future version sends anything else off your phone, we will say so in the app and update this policy first.