Privacy Policy
Last updated: 18 June 2026 · applies to all Sidstuga versions distributed via Google Play.
One-line summary
Everything you add to the player — credentials, URLs, favourites, settings — stays on your device by default. No ads, no sign-up required to use the app. Three opt-in features send data to our servers and are described below: anonymous diagnostics, Cloud Sync (encrypted backup), and the Source manager (web pairing for your playlists / sources).
Cloud Sync (Premium) is an optional feature. If you choose to enable it, we collect your email address and use it only to identify your account. Your password never leaves the device — keys are derived locally via Argon2id. Favourites and watch history are end-to-end encrypted before leaving the device; we cannot read them. The sync backend runs on Cloudflare Workers (region: Western Europe) at sync.sidstuga.app. Sign out from the app to remove local sync data; the encrypted vault on the server is removed when you delete the account.
Source manager (web pairing)
Optional. If you open sidstuga.app/cloudsync and pair it with your device, the device sends — and the web page later reads — a list of source URLs you have added (M3U playlist URLs and Xtream Codes provider URLs). Pairing is anonymous: there is no account, only a randomly generated 6-character code that exchanges for an opaque group token.
- What we store, per group: a device label, device model, app version, and an SHA-256 hash of the IP that requested pairing. M3U URLs are stored in plaintext. Xtream Codes URL + username + password are stored AES-256-GCM encrypted at rest under a key derived from the group token (the server can decrypt while the token is in transit; the encryption defends against database dumps, not against compromised server code).
- Region: Cloudflare D1, Western Europe.
- Retention: rows stay until you tap "Unpair" on the web manager or in the app. Unpair tombstones the row and the server hard-deletes it after a 7-day grace window.
- What we never store: stream content, channel lists pulled from your provider, watch progress, or anything outside what is needed to manage source URLs.
What we DO NOT do
- We don't run our own server collecting your data by default — the only data that leaves the device automatically is the anonymous Firebase diagnostics described below. Cloud Sync is opt-in and end-to-end encrypted.
- No advertising or attribution SDKs — no AppsFlyer, Adjust or Branch.
- No ads — no advertising SDKs are bundled.
- No account or sign-up required to use the app — you only create an account if you opt in to Cloud Sync.
- We don't access your calendar, contacts, photos, or microphone — the app doesn't request those permissions.
What the app stores on your device
Sidstuga stores locally, encrypted where applicable:
- The Xtream Codes credentials or M3U URL/file you add (encrypted via
EncryptedSharedPreferences, native Android keystore). - App preferences (language, channel order, favourites, reminders, parental PIN hashed with SHA-256 + salt).
- "Last channel watched" history to resume on reopen.
This data never leaves the device. When you uninstall the app or clear data via Settings → Apps → Sidstuga → Storage → Clear data, it's all gone. We have no copy anywhere.
Diagnostics & anonymous metrics we collect
To keep the app stable and understand how it's used, Sidstuga sends a small amount of anonymous diagnostic data. None of it can identify you, and it never includes your playlists, credentials, or what you watch.
- Firebase Crashlytics (Google Play build only) — on a crash, an anonymous report: stack trace, device model, Android version, app version. No credentials, no playlist URLs, no personal identifiers.
- Firebase Analytics (Google Play build only) — basic aggregate usage events tied to an anonymous, app-generated instance ID.
- Sidstuga anonymous metrics (all builds) — the app sends
coarse operational and product metrics to our own server
(
metrics.sidstuga.app): a random install ID generated on your device (not your Advertising ID, no fingerprinting), the device type (TV / phone / tablet), app version, an approximate country (from your IP at the network edge — the IP itself is never stored), app-open / session / heartbeat liveness pings, a fixed set of product events (e.g. "playlist added", "trial started"), coarse error codes, and — once verified with Google or Amazon — your subscription status (trial / active / expired). We never receive your card or billing details. Install counts are approximate; the official figures are in Google Play / Amazon.
Google processes the Firebase data as a data processor — see Firebase's privacy documentation. The Sidstuga metrics are processed by Cloudflare on our behalf and stored in the EU. All of it is anonymous. Crash data is retained by Firebase for up to 90 days; raw Sidstuga metrics are deleted automatically (heartbeats after 7 days, events after 30 days, error logs after 90 days) and only anonymous daily aggregates are kept longer.
Network traffic
The app talks directly to whichever IPTV server you configure. That traffic is between your device and your provider — we are not intermediaries, we don't see or log anything.
Optional exceptions:
- Update checks — the public version uses Google Play's official In-App Updates API; the Android system makes the call, not us.
- EPG / catch-up / VOD — when you browse, the app asks your IPTV server for those resources. Traffic strictly between your device and your provider.
- Purchases & subscriptions — handled entirely by Google Play Billing. Google processes the payment; we never see your card details or billing address.
- Diagnostics & metrics — the anonymous Firebase
reports (Google Play build) and the anonymous Sidstuga metrics described
above, sent to
metrics.sidstuga.app. - Subscription verification — after a purchase, the app asks our server to confirm the subscription with Google/Amazon so your access survives network or store outages. Only the purchase token and your anonymous install ID are sent — never card or billing data.
Permissions
INTERNET— to play streams.ACCESS_NETWORK_STATE— to detect connection drops and auto-reconnect.POST_NOTIFICATIONS(Android 13+) — only if you enable reminders.SCHEDULE_EXACT_ALARM— only for exact-time reminders.RECEIVE_BOOT_COMPLETED— only if you have reminders, so the app can re-arm them after a device reboot.SYSTEM_ALERT_WINDOW— held only as a background-activity-launch exemption for the optional "auto-start on boot" feature (Android TV). The app draws no overlay windows.com.android.vending.BILLING— required by Google Play to process subscription purchases.- Camera — When you choose to link a TV, the app uses your device's camera only to scan the pairing QR code shown on your TV. The image is processed on your device and is never stored, uploaded, or shared.
We don't request the contacts, calendar, location, photos, or microphone permissions. Firebase Analytics and our metrics server infer your approximate country from your IP address (see Diagnostics above) — that's all the location information we ever see, and only if you haven't opted out.
Data deletion
Almost everything stays on your device. To wipe it:
- Go to Settings → Apps → Sidstuga → Storage.
- Tap Clear data.
- (Optional) Uninstall the app.
For the anonymous Firebase diagnostics, email support@sidstuga.app and we'll delete your records from the Firebase console; otherwise crash data expires automatically after 90 days.
For the anonymous Sidstuga metrics, e-mail support@sidstuga.app with the anonymous install ID shown in Settings → About and we'll erase those rows; otherwise the raw data expires automatically as described above.
Third-party content & user responsibility
Sidstuga is a media player. It is not a content provider, host, distributor or aggregator. The app does not include, recommend, index or distribute any IPTV streams, channel lists or media files of any kind.
To use the app you supply your own credentials (Xtream Codes) or playlist (M3U/M3U8) of a service you are independently authorised to access. You are solely responsible for ensuring such use complies with applicable law, the terms of your IPTV provider, and any relevant copyright. To the extent permitted by law, the developer disclaims all liability for any third-party content streamed via user-supplied sources.
Children
The app is not directed at children under 13. We don't collect personal data, and the Firebase diagnostics described above are anonymous.
Changes to this policy
If we change this policy, the date at the top changes. For a copy of a previous version, email support@sidstuga.app.
