Privacy by architecture

Bytes never leave your LAN.

Privacy here isn't a policy you have to trust. It's how the protocol is wired.

Streamed, not uploaded

The TV reads HTTP byte-ranges over your Wi-Fi. Nothing is copied to disk on the TV — when you stop, the buffer is gone.

LAN-only by design

SSDP discovery is link-local multicast. The phone won't be reachable outside your Wi-Fi — even if your router is compromised remotely.

No accounts, no telemetry

Nothing to sign up for. Nothing logged. Nothing phoned home. The app doesn't ask for the network — Wi-Fi is the only one it needs.

One file. Read-only. Revoked on stop.

Each share exposes exactly the file you pick. Read-only. The Android system grant is released the moment you tap stop.

Privacy Policy

The full version, in plain English.

Effective May 4, 2026v0.1.0 — Open Beta

watch witch is a phone-to-TV streaming app that runs entirely on your local network. There is no cloud, no account system, and no third party in the middle of the bytes. This document describes — in concrete terms — what that means for your data.

Where the four tiles above give you the headline, this is the long form: which bits stay on your phone, which bits cross the LAN, and which bits never exist at all.

01Information we don't collect

We don't collect any of these because we don't run the servers that would receive them. There is no watch witch backend.

  • Personal information (name, email address, phone number).
  • Account credentials — there are no accounts.
  • Usage analytics or telemetry — no SDKs, no event pipeline, no “phone-home” on launch or use.
  • Crash reports routed to a third party.
  • Advertising identifiers, device fingerprints, or behavioural data.
  • The content of the videos you stream — they travel directly from your phone to your TV over your local network.

The only network destinations the app talks to are on your own LAN. It does not contact a remote server we control during normal operation.

02Information that stays on your device

Some data is stored on the phone itself and never leaves it:

  • The list of files you've recently shared, so the UI can re-offer them.
  • Your DLNA-friendly device name, defaulted from the phone's hostname so clients on the LAN can recognise it.
  • App preferences (which subtitle track you last picked, layout state, etc.).

This data lives in the app's private Android storage. Uninstalling the app removes it. Clearing the app's data from system settings removes it. We have no way of accessing it.

03Information that touches the network

While a share is active:

  • The phone broadcasts an SSDP advertisement to the link-local multicast group 239.255.255.250 so DLNA clients on the same Wi-Fi can discover it.
  • DLNA clients on the same LAN can request the share's metadata as DIDL-Lite XML over HTTP.
  • The TV (or other client you select) reads the file's bytes via HTTP byte-range requests over the LAN.

None of this leaves your local network. SSDP is link-local and does not traverse a router. The HTTP server only listens on the phone's Wi-Fi interface. There is no NAT-traversal, STUN, TURN, relay server, or remote bridge.

04Permissions we request, and why

Android requires explicit grants for the system surfaces we touch. Each one is requested for a single, narrow reason:

  • READ_MEDIA_VIDEO (or its predecessor on older Android) — so you can pick the file you want to share. We read only the file you select; we don't enumerate your library in the background.
  • INTERNET + ACCESS_WIFI_STATE — so the in-app HTTP server can bind to your Wi-Fi interface and SSDP can multicast.
  • FOREGROUND_SERVICE_MEDIA_PLAYBACK — so the share keeps running when you lock the phone or switch apps.
  • POST_NOTIFICATIONS (Android 13+) — to show the persistent “sharing now” notification, which doubles as the kill-switch.

We do not request location, contacts, microphone, camera, calendars, or any background sync permissions.

05Children's privacy

watch witch isn't directed at children under 13, and we don't knowingly collect data about them — because we don't collect data about anyone. The app behaves identically regardless of who is holding the phone.

06Open source and third parties

watch witch is open source. The full source is on GitHub, so you can audit exactly which network calls the app makes and which permissions it touches.

We don't bundle third-party analytics, crash-reporting, or advertising SDKs. The app links against system Android libraries and a small set of upstream open-source components, all listed alongside their licenses in the repository.

07Updates to this policy

Because we're in open beta, this document will evolve. When something material changes — a new permission, a new network endpoint, a behavioural shift — we bump the effective date at the top, call out what changed in the GitHub release notes, and keep the full revision history of this page in the repository alongside the code.

Questions, takedown requests, or anything else policy-shaped — write to hello@watch-witch.app. We treat email and GitHub issues equally.