Datenschutzerklärung

ENTWURF, rechtlich prüfen lassen. Stand: 27.10.2026. Platzhalter in eckigen Klammern ergänzen. Belege und offene Fragen: docs/legal/README.md.

Verantwortlicher

Christian Maag
Gleißelstetten 129/1, 89081 Ulm
E-Mail: support@cinesofa.de

Diese Erklärung gilt für die Android-App CineSofa (Handy, Tablet, Android TV).

Grundsätzliches

CineSofa ist ein Mediaplayer für Playlists, die du selbst einbindest. Die App enthält keine Werbung, keine Analyse- oder Tracking-Werkzeuge und keine Crash-Reporting-Dienste von Drittanbietern. Wir verkaufen keine Daten. Ein Nutzerkonto mit E-Mail oder Passwort gibt es nicht.

Ohne Gerätekopplung bleiben die meisten Daten ausschließlich auf deinem Gerät, darunter Playlists, Anbieter-Zugänge, Profile, Kinderfreigaben, Wiedergabeverlauf und Einstellungen. Eine Sicherung über das Android-Backup findet nicht statt. Nur die unten genannten Funktionen übertragen Daten.

Deine Anbieter-Zugangsdaten (Benutzername und Passwort) speichert die App lokal in ihrer eigenen Datenbank auf dem Gerät. Dort werden sie nicht verschlüsselt gespeichert, das Passwort steht im Klartext. Zusätzlich liegt eine Kopie des Zugangs im verschlüsselten Speicher der App (Android EncryptedSharedPreferences). Die Datenbank ist ohne Root nur für die App zugänglich und wird nicht gesichert. Zugangsdaten werden nicht synchronisiert. Sie verlassen das Gerät nur bei einer Anbieter-Übertragung auf Wunsch (siehe unten): dann verschlüsselt über die Firebase Realtime Database, höchstens 5 Minuten.

Verarbeitete Daten je Funktion

Wiedergabe deiner Playlists

Wenn du eine M3U-Playlist oder einen Xtream-Zugang nutzt, verbindet sich die App direkt mit den Servern deines Anbieters. Dabei laufen Streams, Senderlisten und Bilder über diese Server. Der Anbieter erhält dabei technisch deine IP-Adresse und deine Zugangsdaten. Auf diese Server und deren Datenverarbeitung haben wir keinen Einfluss. Wir erhalten diese Daten nicht.

Testphase und Lizenzprüfung

Beim ersten Start erzeugt die App eine zufällige Geräte-Kennung (z. B. „dev_…“). Diese Kennung ist keine Hardware- oder Werbe-ID. Sie wird lokal gespeichert und bei jedem App-Start an unseren Server-Dienst (Google Cloud Functions) gesendet. Der Dienst prüft damit, ob die kostenlose Testphase von 6 Tagen läuft oder eine Freischaltung besteht. Ist das Gerät gekoppelt, sendet die App zusätzlich die Raum-Kennung; der Dienst prüft damit, ob das Gerät zum Raum gehört, und trägt ein Gerät, das schon vor der Umstellung gekoppelt war, bei Bedarf in die Geräteliste des Raums ein (siehe „Geräte koppeln und synchronisieren“). Gespeichert werden die Geräte-Kennung und der Zeitpunkt des ersten Starts.

Käufe (Google Play)

Käufe (Jahres-Abo oder einmaliger Kauf) werden ausschließlich über Google Play abgewickelt. Zahlungsdaten verarbeitet nur Google; wir erhalten sie nicht. Beim Kauf übergibt die App an Google statt der Raum-Kennung nur einen Prüfwert (SHA-256) davon. Danach sendet sie das Kauf-Token von Google, das Produkt, die Raum-Kennung und die Geräte-Kennung an unseren Server-Dienst. Dieser prüft den Kauf über die Google-Play-Developer-API, bestätigt ihn bei Google und bindet ihn an den Raum, wenn das Gerät zum Raum gehört. Beim App-Start gleicht die App außerdem die zu deinem Google-Konto gehörenden Käufe bei Google Play ab und meldet sie auf dieselbe Weise.

Bei uns gespeichert werden in Cloud Firestore je Kauf: ein Prüfwert (SHA-256) des Kauf-Tokens (das Token selbst steht dort nicht), die Kennung des Raums, den der Kauf freischaltet, der Prüfwert der Raum-Kennung aus dem Kauf, Produkt, Art (Abo oder einmalig), Kaufstatus, bei Abos das Ablaufdatum, die Bestellnummer, ob es ein Testkauf ist, ob der Kauf bestätigt wurde sowie Zeitpunkte von Anlage, Änderung, Bindung und Umbindung. Google meldet uns Änderungen (Verlängerung, Kündigung, Erstattung) per Benachrichtigung; die Nachrichten-Kennung dieser Benachrichtigungen speichern wir etwa 8 Tage, um sie nicht doppelt zu verarbeiten. Erstattet Google einen Kauf, der bei uns noch keinem Raum zugeordnet ist, merken wir uns nur den Prüfwert des Kauf-Tokens und den Zeitpunkt (etwa 40 Tage), damit der Kauf nach einer Erstattung nicht mehr freischaltet. Das Kauf-Token selbst speichern wir nur vorübergehend: Muss ein Kauf noch bei Google bestätigt werden, liegt das Token serverseitig in einer Warteliste (kein Zugriff aus der App), bis Google die Bestätigung angenommen hat, höchstens 4 Tage, und wird danach gelöscht.

Der Kauf gilt für den Raum, nicht für eine Person. Ein Kauf lässt sich in einen anderen Raum übernehmen, höchstens einmal in 30 Tagen. Führst du „Sync-Daten löschen“ aus, wird die Raum-Kennung aus dem Kaufeintrag entfernt; der übrige Eintrag bleibt bestehen und kann an einen neuen Raum gebunden werden.

Anmeldung beim Synchronisationsdienst und Geräteprüfung

Für die Funktionen Kopplung, Synchronisation und Anbieter-Übertragung meldet sich die App anonym bei Google Firebase Authentication an. Dabei entsteht eine zufällige Nutzer-Kennung ohne Bezug zu Name oder E-Mail.

Läuft die Anmeldung ab, prüft die App über die Google Play Integrity API, ob sie unverändert aus Google Play stammt und auf einem echten Gerät läuft. Dazu erzeugt Google Play auf deinem Gerät ein Prüf-Token. Unser Server-Dienst lässt dieses Token von Google auswerten und erhält nur das Ergebnis, nämlich ob die App lizenziert ist und ob das Gerät die Integritätsprüfung besteht. Das Ergebnis wird nicht dauerhaft gespeichert. Zum Schutz vor Wiederholungsangriffen speichern wir einen Prüfwert der Einmal-Nummer für höchstens etwa 70 Minuten.

Geräte koppeln und synchronisieren

Wenn du Geräte koppelst (per Code oder QR-Code), legt die App einen gemeinsamen „Raum“ in der Google Firebase Realtime Database an (Standort: Belgien, EU). Im Raum werden gespeichert:

Die Eltern-PIN und die Anbieter-Zugänge werden nicht synchronisiert; die PIN gilt nur auf dem jeweiligen Gerät.

Profile und Kinderfreigaben gleicht die App ab, wenn du ein Gerät beim ersten Start koppelst (nur Profile), wenn du die Startseite oder die Profilauswahl öffnest, ein Profil anlegst oder löschst und wenn du die Kinderauswahl öffnest oder speicherst. Einen ständigen Live-Abgleich gibt es nicht. Beim ersten Abgleich lädt die App die vorhandenen Profile bzw. die bisherigen Freigaben des Kinderprofils hoch, danach nur Änderungen.

Der Raum ist nur mit seiner zufälligen, nicht erratbaren Raum-Kennung erreichbar. Pro Raum sind höchstens 3 Geräte möglich; Räume, die schon vorher 4 Geräte hatten, behalten diese. Nach den ersten 3 Geräten kommen höchstens 2 neue Geräte je 30 Tage hinzu.

Diese Grenzen prüft unser Server-Dienst. Dazu speichert er in Cloud Firestore je Raum die Geräte-Kennung, die Gerätebezeichnung und den Beitrittszeitpunkt jedes Geräts, die Zahl der bisher beigetretenen Geräte und für 30 Tage, welches Gerät wann den Raum verlassen hat oder neu hinzugekommen ist. Ältere Einträge entfernt er bei der nächsten Änderung des Raums. Je Gerät speichert er außerdem, zu welchem Raum es gehört; dieser Eintrag wird beim Entfernen des Geräts gelöscht. Für Räume, die vor der Umstellung bestanden, hält er eine Stichtagliste mit Raum- und Geräte-Kennungen vor, damit diese Geräte ihren Raum behalten, bis alle diese Geräte umgestellt sind, spätestens zwölf Monate nach dem Stand dieser Erklärung. Speicherort: EU (Firestore-Multiregion eur3).

Der Kopplungscode selbst wird verschlüsselt für 5 Minuten gespeichert. Er wird beim Einlösen sofort gelöscht, ein nicht eingelöster Code spätestens etwa eine Stunde nach Ablauf durch automatische Bereinigung.

Gekoppelt wird nur im selben Heimnetz. Dazu speichert der Server beim Anzeigen des Codes die Geräte-Kennung des anzeigenden Geräts und einen Prüfwert (SHA-256) aus der Raum-Kennung und dem Netzanteil deiner öffentlichen IP-Adresse (IPv4 die ersten drei Blöcke, IPv6 die ersten 56 Bit), nie die Adresse selbst, und vergleicht ihn beim Einlösen mit dem Prüfwert des einlösenden Geräts. Beides wird nach erfolgreichem Einlösen sofort gelöscht, sonst spätestens etwa zweieinhalb Stunden nach Anzeige des Codes. Zweck: Die Lizenz gilt für einen Haushalt (Art. 6 Abs. 1 lit. b DSGVO). Speicherort: EU (Firestore-Multiregion eur3).

Anbieter auf ein anderes Gerät übertragen

Auf Wunsch kannst du einen Anbieter-Zugang (Name, Typ, Adresse, Benutzername, Passwort) per Code an ein anderes Gerät senden. Die Daten werden mit einem aus dem Code abgeleiteten Schlüssel verschlüsselt und für höchstens 5 Minuten in der Firebase Realtime Database abgelegt. Beim Abruf werden sie sofort gelöscht, sonst spätestens etwa eine Stunde nach Ablauf. Eine dauerhafte Synchronisation von Anbieter-Zugängen findet nicht statt.

Bewertungen (MDBList)

Öffnest du die Detailseite eines Films oder einer Serie, fragt die App bei MDBList (mdblist.com) Bewertungen an. Übertragen werden die öffentliche Film-Kennung (TMDB- oder IMDb-ID), der Medientyp, unser App-Schlüssel und technisch bedingt deine IP-Adresse. Andere Angaben zu dir oder deinem Konto gehen dabei nicht an MDBList. Die Ergebnisse werden auf deinem Gerät zwischengespeichert.

Mitgelieferte Film-Fakten

Die App enthält eine Liste mit Fakten zu Filmen (Genres, Laufzeit, Regie, Besetzung, Erscheinungsjahr, Titel). Die Liste stammt aus Wikidata (wikidata.org, gemeinfrei nach CC0 1.0) und wird mit der App ausgeliefert. Die App gleicht sie nur auf deinem Gerät mit deinem Katalog ab. Dabei wird nichts übertragen, und es entstehen keine Daten über dich.

Übersetzung von Beschreibungen (Google ML Kit)

Englische Beschreibungen kann die App auf deinem Gerät ins Deutsche übersetzen. Die Texte verlassen dein Gerät dabei nicht. Das dafür nötige Sprachmodell (ca. 30 MB) lädt die App erst, wenn die Übersetzung eingeschaltet ist und eine Beschreibung übersetzt werden soll, einmalig und nur über WLAN von Google-Servern. Dabei erhält Google technisch deine IP-Adresse. Bei ausgeschalteter Übersetzung wird nichts geladen. Nach Angaben von Google kann ML Kit außerdem technische Nutzungs- und Leistungsdaten an Google senden.

Empfehlungen

Die Empfehlungen, etwa unter „Für dich“, berechnet die App ausschließlich auf deinem Gerät. Grundlage sind je Profil der Wiedergabeverlauf, die Favoriten und deine Daumen-Bewertungen, aus denen die App Vorlieben für Genres, Darsteller, Regie und Jahrzehnte ableitet. Die Daumen-Bewertungen bleiben auf dem Gerät und werden nicht übertragen, auch nicht beim Synchronisieren; die Vorlieben werden nur für die Anzeige berechnet. Wir erhalten diese Daten nicht.

Kamera (QR-Code-Scanner)

Die Kamera wird nur verwendet, wenn du einen QR-Code scannst, etwa zum Koppeln. Die Bilder werden ausschließlich auf dem Gerät ausgewertet und weder gespeichert noch übertragen. Die Berechtigung kannst du in den Android-Einstellungen jederzeit entziehen.

Hilfe und Problem melden

Unter Einstellungen > Support & Feedback > Hilfe kannst du dein Gerät prüfen und ein Problem melden. Stürzt die App ab, speichert sie dazu lokal auf deinem Gerät einen Absturzbericht (App-Version, Gerätemodell, Android-Version, Zeitpunkt, technischer Fehlerverlauf; Zugangsdaten werden unkenntlich gemacht).

Verbindung prüfen: Die App prüft auf deinem Gerät Netz, Uhrzeit, Anbieter-Zugang und Lizenz und zeigt passende Hinweise. Dabei fragt sie bei unserem Server-Dienst nur die Serverzeit ab und ruft deinen Anbieter mit deinen Zugangsdaten auf, um den Zugang zu testen. Antwortest du bei einem Hinweis mit „Ja“ oder „Nein“, zählen wir nur, welcher Hinweis geholfen hat (Zähler je Hinweis und Tag, ohne Geräte-Kennung). Zur Begrenzung der Anfragen speichert der Server kurzzeitig einen Zähler mit einem Hashwert deiner anonymen Anmeldung.

Problem melden: Wählst du „Problem melden“, siehst du vor dem Absenden eine Zusammenfassung dessen, was mitgeschickt wird (Diagnosepaket). Erst mit „Absenden“ übertragen wir es an unseren Server-Dienst in Belgien (europe-west1). Das Paket enthält App-Version, Gerätebezeichnung, Android-Version, Geräte-Kennung, Kennung des Sync-Raums (falls gekoppelt), Lizenzstatus, das Ergebnis der Selbstdiagnose, die letzten technischen Fehlerereignisse sowie Kopf und Fehlerverlauf eines Absturzes (die Vorschau zeigt davon nur eine Kurzfassung). Web-Adressen und Zugangsdaten werden vorher so weit erkennbar unkenntlich gemacht; Playlist-Adressen, Sendernamen, Wiedergabeverlauf, Profile und Kinderfreigaben sind nicht vorgesehen. Freitext und Fehlermeldungen können trotzdem Namen oder Angaben enthalten, die wir nicht erkennen. Den Server-Namen deines Anbieters übertragen wir getrennt und nur verschlüsselt (TLS); der Server bildet daraus sofort einen gekürzten Hash-Prüfwert (HMAC) und verwirft den Namen. Der Prüfwert dient nur dazu, Störungen bei einem Anbieter über mehrere Geräte zu erkennen. Dazu kommen die Kategorie und der Text, den du selbst schreibst. Schreib bitte keine Zugangsdaten und keine Adressen in den Text. Nach erfolgreichem Anlegen der Meldung wird der lokal gespeicherte Absturzbericht gelöscht.

Am Handy weiterschreiben: Statt am Fernseher zu tippen, kannst du einen QR-Code scannen. Dazu wird die Meldung mit dem Diagnosepaket schon beim Erzeugen des Codes angelegt; kommt innerhalb von 30 Minuten kein Text, wird sie ohne deinen Text bearbeitet. Der QR-Code führt zu cinesofa.de/hilfe. Der einmalige Code steht im Teil der Adresse nach dem „#“ und wird dadurch nicht an den Webserver übertragen; er ist 30 Minuten gültig. Dein Text geht von dort an denselben Server-Dienst. Die Seite wird über Firebase Hosting (Google) ausgeliefert. Falsche Codes begrenzen wir je Netzwerk; dazu speichern wir höchstens eine Stunde lang einen gekürzten Hash-Prüfwert der IP-Adresse.

Bearbeitung durch uns und mit KI-Unterstützung: Dein Ticket sehen wir in unserer Steuerzentrale. Zusätzlich erstellt ein KI-Dienst einen Antwortentwurf: Claude-Modelle von Anthropic (Claude Haiku 5.5 zum Einsortieren, Claude Sonnet 5.5 für den Entwurf) über Google Cloud Vertex AI, Verarbeitung in der EU (Multiregion eu). An die KI gehen dein Text, der bisherige Verlauf des Tickets, kurze Angaben zu bis zu 5 früheren Meldungen deines Geräts (Kategorie, Status, Anfang des Textes), die bereinigte Diagnose einschließlich der Gerätebezeichnung (Hersteller und Modell), ob deine Testphase schon verlängert wurde, und eine Zusammenfassung der Einsortierung. Geräte- und Raum-Kennungen, von dir vergebene Gerätenamen, Anbieter-Namen und Web-Adressen gehen nicht an die KI; andere Geräte deines Raums erscheinen nur als „Gerät A/B/C“. Die KI entscheidet nichts allein: Ein Mensch liest jeden Entwurf, ändert ihn bei Bedarf und sendet die Antwort. Maßnahmen wie eine Testverlängerung führt nur ein Mensch aus, und sie wirken nur zu deinen Gunsten. Antworten des Supports kennzeichnen wir in der App als „Mit KI-Unterstützung erstellt“.

Meine Anfragen: Unter Einstellungen > Hilfe > Meine Anfragen liest die App die Tickets ab, die zu deiner Anmeldung und deinem Gerät gehören, und zeigt unsere Antworten. Du kannst dort ergänzend antworten und angeben, ob die Antwort geholfen hat.

Je Gerät und je Anmeldung sind höchstens 3 Meldungen am Tag und 10 im Monat möglich; zusätzlich gibt es eine Tagesgrenze für Geräte ohne bestandene Geräteprüfung. Die Zähler dazu enthalten die Geräte-Kennung im Klartext und werden nach etwa einem Monat gelöscht.

Trailer (YouTube)

Tippst du auf „Trailer“, öffnet die App die YouTube-App oder deinen Browser mit einer Suche nach dem Titel. Ab dann gelten die Bedingungen und die Datenschutzerklärung von Google/YouTube.

Empfänger und Dienstleister

Eine Weitergabe zu Werbezwecken findet nicht statt.

Übermittlung in Drittländer

Einige Google-Dienste (Cloud Functions, Firebase Authentication, Play Integrity, ML Kit) können Daten in den USA verarbeiten. Google LLC ist nach dem EU-US Data Privacy Framework zertifiziert (Angemessenheitsbeschluss der EU-Kommission vom 10.07.2023). Zusätzlich gelten die EU-Standardvertragsklauseln der Google-Auftragsverarbeitungsbedingungen. Bei MDBList werden nur die Titel-Kennung (TMDB/IMDb) und technisch bedingt deine IP-Adresse übermittelt, möglicherweise in die USA; eine Garantie nach Art. 46 DSGVO liegt dafür nicht vor. Der E-Mail-Dienst IONOS verarbeitet die Mails in der EU.

Speicherdauer

Löschung deiner Daten

Deine Rechte

Du hast das Recht auf:

Erteilte Einwilligungen kannst du jederzeit mit Wirkung für die Zukunft widerrufen. Außerdem kannst du dich bei einer Datenschutz-Aufsichtsbehörde beschweren, insbesondere in deinem Wohnsitzland, z. B. beim Landesbeauftragten für den Datenschutz und die Informationsfreiheit Baden-Württemberg (LfDI BW).

Kinder

Die App richtet sich nicht an Kinder unter 16 Jahren. Kinderprofile sind eine Funktion für Erwachsene, um Inhalte einzuschränken. Wird Synchronisation genutzt, gehen Name, Freigaben, Wiedergabestände und Favoriten eines Kinderprofils verschlüsselt in den Sync-Raum (siehe oben).

Änderungen

Wir passen diese Erklärung an, wenn sich die App oder die Rechtslage ändert. Es gilt die jeweils in der App und unter https://cinesofa.de/datenschutz veröffentlichte Fassung.

Kontakt

Fragen zum Datenschutz: support@cinesofa.de
Christian Maag, Gleißelstetten 129/1, 89081 Ulm