How we handle your data
Last updated: October 26, 2026. This version adds the feedback form built into the app and explains what a report contains and where it is kept. The October 22 version added the usage-statistics consent that the app asks for in the EU, the UK and Switzerland, and removed mentions of advertising networks the app no longer contains.
LocalCast is free to download and completely ad-free. Browsing your files, IPTV playlists and the web is free; casting to your TV is part of LocalCast Pro. Start with a free trial, then pick a weekly or yearly plan — or buy Lifetime once.
LocalCast works with what is on your phone and in your home network: your videos, music and photos, IPTV playlists, DLNA and Plex servers, network shares (SMB), cloud storage you connect, the pages you open in the built-in browser, and your settings. All of this is stored only on your device. Passwords for network shares live in the phone's secure storage; Plex and cloud tokens are kept in the app's settings on the device. None of it is transmitted to me.
When you cast, the app runs a small media server on your phone and the TV fetches the video from it over your local network. Web videos found by the browser are fetched by your phone from the site that hosts them and passed on to the TV. So that the TV can use an encrypted (HTTPS) connection to your phone, the app resolves a hostname under a domain I operate (p.becomerich.app) to your phone's local address. That lookup carries no media and no personal data.
To learn which features matter and where casting fails, the app can send usage events to Google Analytics for Firebase (Google Ireland Ltd., Gordon House, Barrow Street, Dublin 4, Ireland). Google stores a random installation ID on your device for this. The events are pseudonymous: they describe what the app did, not who you are.
What is sent: which screens and features you use; whether a cast started and finished, the type of receiver (for example Chromecast, DLNA, AirPlay) and the kind of media (video, audio, photo); the app version and your device's operating system and model; the registrable domain of pages you open in the built-in browser, of sites you cast a web video from and of IPTV playlists you add (for example example.com, never the full address, page title, file name or query); purchase events with product and price; anonymous error events with a short error message; and the A/B-test variant your installation was assigned to.
What is not sent: no advertising identifier (the app does not request one and shows no ads), no names, e-mail addresses or account data, no file names, full URLs, search terms or playlist contents, and nothing that lets me follow you across other apps or websites. Google does not use this data for its own advertising, and I do not sell it.
Your choice. If your device's region is in the EU, the EEA, the United Kingdom or Switzerland, the app asks for your permission before any usage statistics are collected, and nothing is collected until you say yes. Tapping outside the question or "No thanks" leaves collection off; the app does not become any less useful. Everywhere else, collection is on by default. In every country you can turn it off or on at any time under Settings → Privacy → Share usage statistics; the change takes effect immediately and your installation's existing statistics are wiped from the device.
Legal basis: your consent (Art. 6(1)(a) GDPR, § 25(1) TDDDG) where the app asks; otherwise my legitimate interest in understanding how the app is used (Art. 6(1)(f) GDPR). Google keeps user-level event data for at most 14 months. More in Google's privacy policy.
If the app crashes or hits an unexpected error, Firebase Crashlytics (Google) sends me a report: the stack trace, the app version, the operating system version and device model, free memory and storage, whether the device was rooted or jailbroken, the time of the crash, and a random installation ID. This is how I find and fix bugs; it contains no usage profile and is independent of the usage-statistics switch. Legal basis: my legitimate interest in keeping the app working (Art. 6(1)(f) GDPR).
When you open Settings → About & Support, the app attaches your anonymous support ID (a random ID generated by RevenueCat, see below) to crash reports so I can match a bug report you send me to its crash. If you ask me for help with a problem, I may enable technical diagnostic logging for your installation only; those logs describe what the app did (device discovery, connections, playback) and are sent to Crashlytics until I turn it off again.
Under Settings → About & Support → Send feedback, through Report after a failed cast, or when the app asks whether you enjoy it, you can send me feedback. Nothing is sent until you tap Send. I then receive the category you picked, the message you wrote, and your e-mail address only if you entered one so that I can reply.
If you leave Include diagnostics switched on, the report also carries technical details that help me reproduce the problem: the app version, your phone's operating system and model, its language, whether LocalCast Pro is active, your anonymous support ID (the RevenueCat ID described below), the type and model of the TV you were connected to, details of the last failed cast, and a short excerpt of the app's own log. Before that log leaves your phone, the app removes tokens, cookies and passwords from it. Switch diagnostics off and only your message is sent.
Reports are stored in Google Cloud Firestore (Google Ireland Ltd.; the data is kept in the United States under the EU–US Data Privacy Framework) for at most twelve months and are deleted automatically after that. Each report is also delivered to me as an e-mail through Resend, Inc. (San Francisco, USA), which processes it only for that purpose. I do not store your IP address. Legal basis: my legitimate interest in answering your report and fixing the problem (Art. 6(1)(f) GDPR); your e-mail address is used only to reply. Sending feedback is voluntary and independent of the usage-statistics choice above.
The app fetches settings such as feature switches and the certificate for HTTPS casting from Firebase Remote Config (Google). For this it transmits a random Firebase installation ID, the app version and the device's language. Legal basis: Art. 6(1)(f) GDPR.
Subscriptions and the Lifetime purchase are handled by the App Store or Google Play; Apple or Google see your payment details, I do not. RevenueCat (RevenueCat, Inc., 300 Pine St, San Francisco, CA 94104, USA) checks the purchase receipt and tells the app whether LocalCast Pro is active. RevenueCat receives a random user ID, the purchase receipt, the product bought, its price and currency, the store country and the app version, plus the A/B-test variant of your installation. Legal basis: performance of the contract (Art. 6(1)(b) GDPR). RevenueCat processes data in the USA under the EU–US Data Privacy Framework and standard contractual clauses. See the RevenueCat privacy policy.
Pages you open in the app's browser are loaded directly from those websites, which see your IP address and may set cookies, exactly as in any browser. Those sites are not operated by me; please read their privacy policies. The ad blocker fetches public filter lists from their publishers' servers. Your browsing history, tabs and bookmarks are stored only on your device. When usage statistics are on, Google Analytics receives the registrable domain of each page you open in the browser (for example example.com) and the number of ad requests blocked on it — never the full address, the page content or what you typed. Turn usage statistics off under Settings → Privacy and nothing about your browsing leaves the phone.
LocalCast shows no ads and contains no advertising SDK. It does not request the advertising identifier of your phone (Android Advertising ID or Apple IDFA) and does not show Apple's tracking request, because it does not track.
The website uses Google Analytics in consent mode: in the EU, the EEA, the UK and Switzerland it stays off unless you accept it; elsewhere it collects pseudonymous visit statistics. The contact form transmits your name, e-mail address, selected topic and message to Formspree, Inc., which forwards them to me by e-mail and processes them only for that purpose (Art. 6(1)(b) and (f) GDPR; Formspree privacy policy).
You can withdraw your consent to usage statistics at any time in the app (Settings → Privacy), which also deletes the statistics stored on your device. Under the GDPR you can ask me for access to, correction or deletion of personal data, object to processing based on legitimate interest, and complain to a supervisory authority; for me that is the Bavarian Data Protection Authority (BayLDA). Because the app stores no account and I hold only pseudonymous data, I usually cannot identify which data is yours; the section Delete your data explains what you can delete yourself and how to send me your support ID for the rest.
LocalCast (by Stefan Hurzlmeier) has no user accounts, so there is nothing to delete on a server for most people. What exists, and how to get rid of it:
What is kept: purchase and subscription records at Apple or Google, which they hold under their own policies and which I cannot delete; and anonymous aggregate statistics that no longer refer to any installation.
LocalCast is not directed at children under 13 and I do not knowingly collect personal information from them. If you believe a child has provided me with personal information, contact me and I will delete it.
I may update this policy from time to time; the current version is always on this page, with the date of the last change at the top.
Questions or requests about this policy: stefan@localcast.app.