The short version: Dual IRL Stream does not collect, store, or transmit your personal data to us. Your camera and microphone are sent only to the streaming server you configure. There is no analytics, no telemetry, no advertising, and no account with us. Your settings and credentials stay on your device and are kept out of Android’s cloud backup and device transfer. Optional features you turn on — live chat and channel-status badges — connect to the platforms involved (Twitch, Kick, Rumble, and the services they rely on, such as Pusher), as detailed below; none of that data goes to us. (The website itself uses a little privacy-friendly, cookieless analytics on its marketing pages — see This website below.)
Who this covers
This policy applies to the Dual IRL Stream Android application (“the app”), distributed under the Dual IRL brand. It explains what the app does and does not do with information when you use it.
It also covers Dual IRL Bro, the free companion monitor app. Bro
captures no camera or microphone and never broadcasts — it only watches. It plays the
public live video of the channels you choose to monitor
locally on your device: Kick and Twitch via their HLS streams, and YouTube through
YouTube’s own embedded player (requests to youtube.com). It also merges those
channels’ public chat — Kick (via Pusher) and Twitch (via Twitch’s IRC service), the
same connections described below; YouTube is video-only (no chat). It can additionally play
audio-only web sources you add, locally. Like the main app, its settings stay on your device, it
has no in-app updater (it cannot install anything and does not request permission to — new builds are downloaded from the Bro page). Opening
Settings → App updates does ask dualirl.com for a small file listing the latest published version number, so it can tell you whether a newer build exists. Opening that screen is the only thing that triggers it, and nothing else in the app contacts us. The request is not cancelled if you navigate away, so it can complete a few seconds after you leave. The request sends no account, no device identifier, no advertising id, and nothing about how you use the app — just a request for that one file, with a generic client identifier (the HTTP library’s own, not a browser profile). Like any web request it necessarily reveals your IP address to the server, and we make no claim that a fixed IP couldn’t be correlated across visits; if that matters to you, skip the screen and check the download page in a browser instead. Beyond that one file, none of your data goes to us. The
streaming-specific sections below (camera, microphone, stream keys) apply to Dual IRL Stream
only; Bro’s own permissions are listed separately in the permissions section.
What the app sends, and where
The app is a live-streaming tool. When you go live, it captures your camera and microphone and encodes them into a video stream, which is sent only to the streaming server (ingest) you enter yourself — for example your own RTMP/RTMPS, SRT, or SRTLA server, or a platform endpoint you choose. We (the developer) never receive, see, store, or have access to that audio or video. We operate no ingest server and no backend that your stream passes through.
What stays on your device
Your settings — including stream keys, server URLs, and passphrases — are stored on your device. We never receive them, and we operate no account or backend that holds them. Your stream credentials (keys/passphrases) are only ever sent to the streaming destination you choose. If you sign in to Twitch, the resulting login token is also stored on your device and is sent only to Twitch’s own API (to read channel status — see the next section); it is never sent to us or to your stream destination. If you enter a Rumble Live Stream API URL (which contains a secret key for your own Rumble channel), it too is stored only on your device and is sent only to Rumble’s own API to read your channel’s status — never to us or to your stream. These stored credentials are excluded from Android’s cloud backup and device-to-device transfer, so they are not copied off your device. Uninstalling the app removes them.
Optional third-party connections
Some features are optional and only contact third parties if you turn them on:
- Twitch sign-in (optional). If you sign in to Twitch, the app uses Twitch’s standard device-authorization flow and stores the resulting access token on your device. The token authorizes the channel-status requests below (Twitch’s Get Streams returns public data and needs no special permissions). Governed by Twitch’s Privacy Notice.
- Channel status badge (optional). If you enter a Twitch or Kick channel name, the app periodically requests that configured channel’s public live/viewer status (Twitch’s Helix API; Kick’s public channel API) to show the viewer-count and uptime badge. This runs whenever the preview screen is open and a channel is configured — independently of whether the chat overlay is shown. The channel can be any public channel you enter, not necessarily your own. Governed by the respective platform’s privacy policy.
- Rumble channel badge (optional). Rumble works differently from Twitch/Kick: there is no public any-channel lookup, so to show your own Rumble channel’s status you paste your Rumble Live Stream API URL (which embeds a secret key for your channel). The app stores it only on your device and periodically requests that URL from Rumble’s own Live Stream API to read your channel’s live status, viewer count, and likes/dislikes for the badge. It runs only while the preview screen is open and at least one Rumble badge item is enabled. The URL/key is never shown in your stream and never sent to us. Governed by Rumble’s Privacy Policy.
- Live chat overlay (optional). If you enable the chat overlay, the app
fetches public chat messages and emote images from Twitch and/or Kick to display them to you,
the operator. Twitch chat connects to Twitch’s IRC service; Kick chat connects
through Pusher (
pusher.com— the third-party real-time messaging service Kick uses for live chat) in addition to Kick’s own API. If you also enable Rumble chat, your own channel’s chat is read from Rumble’s own Live Stream API (the same URL as the Rumble badge above — no extra connection) and merged into the same overlay. Governed by the respective providers’ privacy policies (Twitch, Kick, Pusher, Rumble). - Weather & time overlay tool (website, optional). The free
weather overlay on this site is a browser source you can add
to your own streaming software. When loaded it makes keyless requests to
open-meteo.com(weather + time zone),openstreetmap.orgNominatim (turning coordinates into a coarse place name), and — only if you supply an RTIRL pull key —rtirl.com. By default the displayed place is coarsened to state + country so it doesn’t reveal your city; you can opt into a finer level (county or city) in the builder, which then shows more precise location. Your coordinates and any RTIRL key live in the overlay URL’s#fragment, which browsers don’t send to a server, and no analytics or trackers are involved. Weather & time data is by Open-Meteo (CC BY 4.0) and place names are © OpenStreetMap contributors; governed by Open-Meteo and the OpenStreetMap Foundation. - Platform-stats widget (website, optional) — preview. The platform-stats widget is currently a preview that renders example tiles locally in your browser; it makes no external requests and sends nothing to us or to any platform. When its live view ships (reading your own channels), this section will be updated to describe those direct-from-your-browser requests.
- Location tracker overlay tool (website, optional). The
location tracker overlay is a browser source that shows a label-free
minimap following your device’s live GPS. When loaded it makes keyless map-tile
requests to
basemaps.cartocdn.com(CARTO), which necessarily reveals your device’s IP address and the map area you are in — i.e. your live route — to that tile host, the same way the weather overlay’s requests do. Because it broadcasts live location, it is the most location-sensitive tool here and is built to fail hidden: it renders nothing until you set a private home point, blacks the whole map out near home, and hides when GPS is unavailable or denied, when a location fix goes stale, or if the map fails to load. Your home point and any RTIRL key live in the overlay URL’s#fragment, which browsers don’t send to a server, are compared only in your browser, and are never transmitted or drawn. No analytics or trackers are involved. Map tiles are © OpenStreetMap contributors and © CARTO; governed by CARTO and the OpenStreetMap Foundation.
The in-app operator overlays (chat, stats, viewer count drawn inside the Dual IRL Stream app) are shown only to you and are never part of your broadcast video. The website browser-source tools above (the weather overlay, the platform-stats widget, and the location tracker) are different: you deliberately add them to your own scene, so they appear in your broadcast if you choose to include them.
What the app does not do
- No analytics, usage tracking, or telemetry sent to us or to any third-party SDK.
- No crash/error reporting services.
- No advertising and no advertising identifiers.
- No selling or sharing of personal data — we collect none to begin with.
- No account, sign-up, or profile with us.
- No access to your contacts, photos, or files.
- No background location, and no location tracking or storage by the app itself. The app requests only approximate (coarse) location, foreground-only, and solely to hand to an operator-added web-source overlay that asks for it (e.g. the weather or location-tracker overlay) — see the permissions table below.
This website
The sections above cover the apps. The dualirl.com website itself uses a small amount of privacy-friendly, cookieless analytics on its marketing pages (the home, the Stream app, the Bro app, and the tools index pages) — self-hosted GoatCounter running on our own server, not Google. It records page views, referrers, browser, operating system, language, screen size, and — derived from your IP address, which is not stored — a rough country and, for some larger countries such as the US, an approximate region (e.g. state/province, never a precise location). There are no cookies, no cross-site tracking, and no personal identifiers — we cannot tie a visit back to you. It is not present on the browser-source overlay endpoints (the weather, stats, and location-tracker widgets you embed in a live scene) or anywhere in the app, both of which remain analytics-free.
Permissions and why they’re needed
These are Dual IRL Stream’s permissions:
| Permission | Why |
|---|---|
| Camera | Capture the video you stream. |
| Microphone | Capture the audio you stream, and — while the preview is open before you go live — measure the input level for the on-screen mic meter. Audio is never written to a file or sent anywhere except your stream. |
| Internet & network access | Send your stream to the server you choose, and — for forced-network or SRTLA bonding — request, hold, and bind the stream to specific Wi-Fi and cellular networks. Bonding can keep mobile data active alongside Wi-Fi so both carry the stream (this may use cellular data even while Wi-Fi is connected). |
| Foreground service | Keep streaming reliably while the app is backgrounded or the screen is off. |
| Wake lock | Prevent the device from sleeping mid-stream. |
| Notifications | Show the ongoing “streaming” status notification. |
| Approximate location (coarse, optional) | Requested only so that a web-source overlay you deliberately add can use your location (e.g. the weather or location-tracker overlay). The app holds no location itself — the browser Geolocation grant is passed to the overlay you chose. It is approximate (coarse), foreground-only (never background), and can be denied — with it denied, those overlays simply don’t get a location. |
Dual IRL Bro is a monitor, so it asks for far less — no camera, microphone, or location:
| Permission | Why |
|---|---|
| Internet & network access | Fetch the public live video and chat of the channels you choose to monitor, and, when you open Settings → App updates, ask dualirl.com for the latest published version number (that request can finish shortly after you leave the screen). Bro never broadcasts. |
| Foreground service (media playback) | Keep an audio-only web source playing while Bro is in the background, if you add one. |
| Notifications | Show the ongoing notification required by that audio-playback service while it runs. |
Children
The app is not directed to children, and we do not knowingly collect information from anyone — including children — because we do not collect personal information at all.
Changes to this policy
If this policy changes, the updated version will be posted on this page with a new “Last updated” date.
Contact
Questions about privacy? Email privacy@dualirl.com.