{
  "schema": 1,
  "doc": "privacy",
  "lang": "en",
  "title": "Privacy Policy",
  "lastUpdated": "2026-09-30",
  "authoritative": true,
  "machineTranslated": false,
  "notice": "",
  "url": "https://doevstream.com/privacy",
  "authoritativeUrl": "https://doevstream.com/legal/privacy.en.json",
  "sections": [
    {
      "id": "who-we-are",
      "heading": "1. Who we are and what this policy covers",
      "blocks": [
        {
          "type": "p",
          "text": "DoevStream (\"DoevStream\", \"we\", \"us\") makes the DoevStream apps for Android phones, tablets and Android TV / Google TV (the \"App\") and runs the website doevstream.com (the \"Site\") and the web app at app.doevstream.com (the \"Web App\"). Together they are the \"Services\". DoevStream is operated from the State of Connecticut, USA."
        },
        {
          "type": "p",
          "text": "This policy explains what personal information the Services handle, why, who else is involved, how long it is kept, and the choices and rights you have. It is written to meet US and Connecticut privacy law and also contains a section for users in the European Union, the European Economic Area and the United Kingdom (Section 13)."
        },
        {
          "type": "p",
          "text": "DoevStream is operated by an individual based in Connecticut, USA. Contact: DoevStream@protonmail.com"
        }
      ],
      "text": "DoevStream (\"DoevStream\", \"we\", \"us\") makes the DoevStream apps for Android phones, tablets and Android TV / Google TV (the \"App\") and runs the website doevstream.com (the \"Site\") and the web app at app.doevstream.com (the \"Web App\"). Together they are the \"Services\". DoevStream is operated from the State of Connecticut, USA.\n\nThis policy explains what personal information the Services handle, why, who else is involved, how long it is kept, and the choices and rights you have. It is written to meet US and Connecticut privacy law and also contains a section for users in the European Union, the European Economic Area and the United Kingdom (Section 13).\n\nDoevStream is operated by an individual based in Connecticut, USA. Contact: DoevStream@protonmail.com"
    },
    {
      "id": "summary",
      "heading": "2. The short version",
      "blocks": [
        {
          "type": "ul",
          "items": [
            "DoevStream is a player and interface. It hosts no video and provides no streams. Streams come from add-ons that you choose and install yourself.",
            "We store only what is needed to run your account and sync it across your devices: your email address, your profiles, your watch progress, My List, settings and add-on list.",
            "No advertising, no advertising ID, no third-party analytics, no crash-reporting SDKs, no tracking across apps or websites.",
            "We do not sell your personal information and we do not use it for targeted advertising or profiling.",
            "The App does not request access to your microphone, camera, contacts or location.",
            "You can delete your account and all synced data at any time from the App (Settings → Account → Delete account) or by emailing us."
          ]
        }
      ],
      "text": "• DoevStream is a player and interface. It hosts no video and provides no streams. Streams come from add-ons that you choose and install yourself.\n• We store only what is needed to run your account and sync it across your devices: your email address, your profiles, your watch progress, My List, settings and add-on list.\n• No advertising, no advertising ID, no third-party analytics, no crash-reporting SDKs, no tracking across apps or websites.\n• We do not sell your personal information and we do not use it for targeted advertising or profiling.\n• The App does not request access to your microphone, camera, contacts or location.\n• You can delete your account and all synced data at any time from the App (Settings → Account → Delete account) or by emailing us."
    },
    {
      "id": "information-we-collect",
      "heading": "3. Information we collect",
      "blocks": [
        {
          "type": "p",
          "label": "Account.",
          "text": "To create an account you give us your email address and a password. The password is stored only as a salted cryptographic hash by our authentication provider; we cannot read it. To confirm a new account or reset a password, we email you a one-time code (currently 6 digits). A code works once and expires after one hour."
        },
        {
          "type": "p",
          "label": "Profiles.",
          "text": "An account can have up to 5 profiles. For each profile we store the name you choose, its avatar (a color, an emoji or a picture chosen from TMDB's public image library), its language and whether it is a Kids profile."
        },
        {
          "type": "p",
          "label": "Kids profiles and PIN.",
          "text": "For a Kids profile you may set an age between 3 and 12, which decides which age ratings are shown. If you set a PIN to protect the account's other profiles, we store only a salted hash of it (PBKDF2), never the PIN itself."
        },
        {
          "type": "p",
          "label": "Library and sync data.",
          "text": "To make Continue Watching, My List, Up Next and your settings follow you between devices, we store per profile: which titles and episodes you watched and how far (title identifiers, position, duration, time), titles you added to My List or removed from Continue Watching, and your app settings (for example language, subtitle style, audio and playback preferences)."
        },
        {
          "type": "p",
          "label": "Your add-on list.",
          "text": "We store the list of add-ons installed on each profile (their addresses and order) so the same add-ons appear on your other devices. An add-on address can contain settings you entered on the add-on's own configuration page, which can include keys or credentials for third-party services you connected to that add-on. We store these addresses only to sync them to your devices and do not use them for anything else. We do not receive the videos, links or files that add-ons return."
        },
        {
          "type": "p",
          "label": "Trakt (optional).",
          "text": "If you connect a Trakt account to a profile, we store the access and refresh tokens Trakt issues for that profile, your Trakt user ID, and a copy of your Trakt watch history for that profile, so the connection and history work on all your devices. You can disconnect at any time in Settings."
        },
        {
          "type": "p",
          "label": "Your devices.",
          "text": "For each device signed in to your account we store a random identifier created by the App (not a hardware identifier), the device's make and model, the platform (phone, tablet or TV), the App version and when it was first and last seen. This powers the device list where you can see and sign out devices."
        },
        {
          "type": "p",
          "label": "Signing in a TV or tablet.",
          "text": "You can sign in a TV or tablet by scanning its QR code with a signed-in phone, or by entering the 8-character code it shows in the Web App at app.doevstream.com/pair. While the device waits, our servers hold a random one-time code, the device's name (for example \"Google TV Streamer\", so you can check you are approving the right device) and, once you approve, the sign-in session for that device, for up to 10 minutes. The record is deleted as soon as the device uses it; unused records expire and are removed."
        },
        {
          "type": "p",
          "label": "Pairing attempt log.",
          "text": "When you look up or approve a code in the Web App (or approve a code with the phone app), we record your account ID, the code entered, whether it matched and the time. We keep these records for 24 hours and use them only to stop code guessing by limiting wrong tries."
        },
        {
          "type": "p",
          "label": "Trailer diagnostics.",
          "text": "When a trailer cannot be played, the App sends us a short report so we can fix playback: the title's TMDB/IMDb identifiers, the YouTube video identifier, the error type and message, your device's region setting (taken from the device language settings, not from your location), the device model, the App version and the profile."
        },
        {
          "type": "p",
          "label": "Messages to us.",
          "text": "If you email us, we receive your email address and whatever you choose to write."
        },
        {
          "type": "p",
          "label": "Technical logs.",
          "text": "Like any online service, our hosting and infrastructure providers (Section 6) automatically record technical information such as IP address, time of the request, requested address and browser or app type, for security, abuse prevention and troubleshooting."
        }
      ],
      "text": "Account. To create an account you give us your email address and a password. The password is stored only as a salted cryptographic hash by our authentication provider; we cannot read it. To confirm a new account or reset a password, we email you a one-time code (currently 6 digits). A code works once and expires after one hour.\n\nProfiles. An account can have up to 5 profiles. For each profile we store the name you choose, its avatar (a color, an emoji or a picture chosen from TMDB's public image library), its language and whether it is a Kids profile.\n\nKids profiles and PIN. For a Kids profile you may set an age between 3 and 12, which decides which age ratings are shown. If you set a PIN to protect the account's other profiles, we store only a salted hash of it (PBKDF2), never the PIN itself.\n\nLibrary and sync data. To make Continue Watching, My List, Up Next and your settings follow you between devices, we store per profile: which titles and episodes you watched and how far (title identifiers, position, duration, time), titles you added to My List or removed from Continue Watching, and your app settings (for example language, subtitle style, audio and playback preferences).\n\nYour add-on list. We store the list of add-ons installed on each profile (their addresses and order) so the same add-ons appear on your other devices. An add-on address can contain settings you entered on the add-on's own configuration page, which can include keys or credentials for third-party services you connected to that add-on. We store these addresses only to sync them to your devices and do not use them for anything else. We do not receive the videos, links or files that add-ons return.\n\nTrakt (optional). If you connect a Trakt account to a profile, we store the access and refresh tokens Trakt issues for that profile, your Trakt user ID, and a copy of your Trakt watch history for that profile, so the connection and history work on all your devices. You can disconnect at any time in Settings.\n\nYour devices. For each device signed in to your account we store a random identifier created by the App (not a hardware identifier), the device's make and model, the platform (phone, tablet or TV), the App version and when it was first and last seen. This powers the device list where you can see and sign out devices.\n\nSigning in a TV or tablet. You can sign in a TV or tablet by scanning its QR code with a signed-in phone, or by entering the 8-character code it shows in the Web App at app.doevstream.com/pair. While the device waits, our servers hold a random one-time code, the device's name (for example \"Google TV Streamer\", so you can check you are approving the right device) and, once you approve, the sign-in session for that device, for up to 10 minutes. The record is deleted as soon as the device uses it; unused records expire and are removed.\n\nPairing attempt log. When you look up or approve a code in the Web App (or approve a code with the phone app), we record your account ID, the code entered, whether it matched and the time. We keep these records for 24 hours and use them only to stop code guessing by limiting wrong tries.\n\nTrailer diagnostics. When a trailer cannot be played, the App sends us a short report so we can fix playback: the title's TMDB/IMDb identifiers, the YouTube video identifier, the error type and message, your device's region setting (taken from the device language settings, not from your location), the device model, the App version and the profile.\n\nMessages to us. If you email us, we receive your email address and whatever you choose to write.\n\nTechnical logs. Like any online service, our hosting and infrastructure providers (Section 6) automatically record technical information such as IP address, time of the request, requested address and browser or app type, for security, abuse prevention and troubleshooting."
    },
    {
      "id": "what-we-do-not-collect",
      "heading": "4. What we do not collect",
      "blocks": [
        {
          "type": "ul",
          "items": [
            "No third-party analytics and no behavioral tracking.",
            "No advertising, no ad networks and no advertising ID.",
            "No crash-reporting SDKs.",
            "No device fingerprinting and no hardware identifiers.",
            "No precise or approximate location.",
            "The App does not request microphone, camera, contacts or location access. On Android it asks only for network access and the permissions needed to keep playback running."
          ]
        }
      ],
      "text": "• No third-party analytics and no behavioral tracking.\n• No advertising, no ad networks and no advertising ID.\n• No crash-reporting SDKs.\n• No device fingerprinting and no hardware identifiers.\n• No precise or approximate location.\n• The App does not request microphone, camera, contacts or location access. On Android it asks only for network access and the permissions needed to keep playback running."
    },
    {
      "id": "on-your-device",
      "heading": "5. Information kept only on your device",
      "blocks": [
        {
          "type": "p",
          "text": "The App keeps some data only on the device: your sign-in session, cached artwork and metadata, and local copies of your settings and library so the App starts quickly and works offline. Signing out, clearing the App's storage or uninstalling the App removes it from that device."
        },
        {
          "type": "p",
          "text": "The Web App keeps your sign-in session, the profile you picked and your language choice in your browser's local storage, so you stay signed in on that browser. It has no analytics, advertising or tracking and sets no cookies. Signing out in the Web App removes the session from that browser only; your TVs, tablets and phones stay signed in."
        }
      ],
      "text": "The App keeps some data only on the device: your sign-in session, cached artwork and metadata, and local copies of your settings and library so the App starts quickly and works offline. Signing out, clearing the App's storage or uninstalling the App removes it from that device.\n\nThe Web App keeps your sign-in session, the profile you picked and your language choice in your browser's local storage, so you stay signed in on that browser. It has no analytics, advertising or tracking and sets no cookies. Signing out in the Web App removes the session from that browser only; your TVs, tablets and phones stay signed in."
    },
    {
      "id": "how-we-use",
      "heading": "6. How we use information, and who else is involved",
      "blocks": [
        {
          "type": "p",
          "text": "We use the information above only to provide the Services: create and secure your account, sync your profiles, library and settings across your devices, apply Kids settings, connect Trakt when you ask, sign in devices, fix trailer playback problems, answer your messages, and keep the Services secure and working."
        },
        {
          "type": "p",
          "text": "These service providers process data for us under their own terms and, where applicable, data processing agreements:"
        },
        {
          "type": "ul",
          "items": [
            "Supabase — database and authentication. Stores your account and sync data (Section 3). Our Supabase project is located in the United States.",
            "Resend — delivers our account emails (the sign-up and password-reset codes). It receives your email address and the email content.",
            "Cloudflare — hosts the Site, the Web App and the App downloads and protects them against abuse. It processes the technical information of visitors (such as IP address) and may set strictly necessary security cookies."
          ]
        },
        {
          "type": "p",
          "text": "The App also connects directly to these services to work. They receive standard technical information from your device (such as its IP address) under their own privacy policies:"
        },
        {
          "type": "ul",
          "items": [
            "TMDB (api.themoviedb.org, image.tmdb.org) — movie and TV metadata and artwork. This product uses the TMDB API but is not endorsed or certified by TMDB.",
            "Stremio's public services — Cinemeta (v3-cinemeta.strem.io) for title lookups, Metahub (images.metahub.space) for fallback posters, and a public subtitles add-on (opensubtitles-v3.strem.io). The App comes with the metadata and subtitles add-ons already installed. They provide no video.",
            "YouTube (Google) — trailers and previews are played from YouTube. When a trailer plays, YouTube receives your device's request and may use cookies or identifiers under Google's privacy policy. Autoplay previews are off by default.",
            "Trakt — only if you connect it. The App sends your watch activity and My List changes to Trakt and reads your history from Trakt.",
            "Add-ons you install — they run on third-party servers that we do not operate. When you browse or play, the App sends requests to them (including the title being looked up). Their data practices are their own and are not covered by this policy.",
            "External players — if you choose to open a video in another player app (for example VLC, MX Player or mpv), that app handles it under its own policy.",
            "Buy Me a Coffee — donations are handled on buymeacoffee.com. Payment is handled by Buy Me a Coffee and its payment providers; we never see your card or bank details. From a donation we receive only the name you choose to show, which can be a nickname. We use it only to keep donation records and to thank you."
          ]
        },
        {
          "type": "p",
          "text": "We may also disclose information if the law requires it, to protect the rights, property or safety of users or others, or as part of a merger, acquisition or transfer of the Services, in which case this policy will continue to apply to your information."
        }
      ],
      "text": "We use the information above only to provide the Services: create and secure your account, sync your profiles, library and settings across your devices, apply Kids settings, connect Trakt when you ask, sign in devices, fix trailer playback problems, answer your messages, and keep the Services secure and working.\n\nThese service providers process data for us under their own terms and, where applicable, data processing agreements:\n\n• Supabase — database and authentication. Stores your account and sync data (Section 3). Our Supabase project is located in the United States.\n• Resend — delivers our account emails (the sign-up and password-reset codes). It receives your email address and the email content.\n• Cloudflare — hosts the Site, the Web App and the App downloads and protects them against abuse. It processes the technical information of visitors (such as IP address) and may set strictly necessary security cookies.\n\nThe App also connects directly to these services to work. They receive standard technical information from your device (such as its IP address) under their own privacy policies:\n\n• TMDB (api.themoviedb.org, image.tmdb.org) — movie and TV metadata and artwork. This product uses the TMDB API but is not endorsed or certified by TMDB.\n• Stremio's public services — Cinemeta (v3-cinemeta.strem.io) for title lookups, Metahub (images.metahub.space) for fallback posters, and a public subtitles add-on (opensubtitles-v3.strem.io). The App comes with the metadata and subtitles add-ons already installed. They provide no video.\n• YouTube (Google) — trailers and previews are played from YouTube. When a trailer plays, YouTube receives your device's request and may use cookies or identifiers under Google's privacy policy. Autoplay previews are off by default.\n• Trakt — only if you connect it. The App sends your watch activity and My List changes to Trakt and reads your history from Trakt.\n• Add-ons you install — they run on third-party servers that we do not operate. When you browse or play, the App sends requests to them (including the title being looked up). Their data practices are their own and are not covered by this policy.\n• External players — if you choose to open a video in another player app (for example VLC, MX Player or mpv), that app handles it under its own policy.\n• Buy Me a Coffee — donations are handled on buymeacoffee.com. Payment is handled by Buy Me a Coffee and its payment providers; we never see your card or bank details. From a donation we receive only the name you choose to show, which can be a nickname. We use it only to keep donation records and to thank you.\n\nWe may also disclose information if the law requires it, to protect the rights, property or safety of users or others, or as part of a merger, acquisition or transfer of the Services, in which case this policy will continue to apply to your information."
    },
    {
      "id": "no-sale",
      "heading": "7. No sale, no targeted advertising, no profiling",
      "blocks": [
        {
          "type": "p",
          "text": "We do not sell personal information, we do not share it for targeted advertising, and we do not use it for profiling that produces legal or similarly significant effects. We do not process sensitive data as defined by Connecticut law, apart from knowing that a Kids profile is meant for a child of a certain age, which the account holder sets."
        }
      ],
      "text": "We do not sell personal information, we do not share it for targeted advertising, and we do not use it for profiling that produces legal or similarly significant effects. We do not process sensitive data as defined by Connecticut law, apart from knowing that a Kids profile is meant for a child of a certain age, which the account holder sets."
    },
    {
      "id": "addons",
      "heading": "8. Add-ons and the content you access",
      "blocks": [
        {
          "type": "p",
          "text": "DoevStream hosts no content and provides no streams. Add-ons are independent software that you choose and install; we do not operate, check or control them or the content they make available. Before installing an add-on, review who runs it and what it does, and make sure your use is lawful where you live."
        }
      ],
      "text": "DoevStream hosts no content and provides no streams. Add-ons are independent software that you choose and install; we do not operate, check or control them or the content they make available. Before installing an add-on, review who runs it and what it does, and make sure your use is lawful where you live."
    },
    {
      "id": "retention",
      "heading": "9. How long we keep information",
      "blocks": [
        {
          "type": "ul",
          "items": [
            "Account, profiles, library, settings, add-on list, devices and Trakt connection: until you delete them or your account.",
            "Trakt tokens: until you disconnect Trakt from that profile, delete the profile or delete your account. The copied Trakt history: until you delete the profile or your account.",
            "Email codes: valid for one hour and usable once.",
            "TV and tablet sign-in records (QR or code): deleted when used; unused records expire after 10 minutes and are removed.",
            "Pairing attempt log: 24 hours.",
            "Trailer diagnostics: until you delete your account, and in any case for no longer than 12 months.",
            "Emails you send us: as long as needed to handle your request, and no longer than 24 months afterwards unless the law requires otherwise.",
            "Donation records: as long as tax and accounting law requires.",
            "Technical logs held by our providers: for the short periods set by those providers."
          ]
        }
      ],
      "text": "• Account, profiles, library, settings, add-on list, devices and Trakt connection: until you delete them or your account.\n• Trakt tokens: until you disconnect Trakt from that profile, delete the profile or delete your account. The copied Trakt history: until you delete the profile or your account.\n• Email codes: valid for one hour and usable once.\n• TV and tablet sign-in records (QR or code): deleted when used; unused records expire after 10 minutes and are removed.\n• Pairing attempt log: 24 hours.\n• Trailer diagnostics: until you delete your account, and in any case for no longer than 12 months.\n• Emails you send us: as long as needed to handle your request, and no longer than 24 months afterwards unless the law requires otherwise.\n• Donation records: as long as tax and accounting law requires.\n• Technical logs held by our providers: for the short periods set by those providers."
    },
    {
      "id": "deletion-and-requests",
      "heading": "10. Deleting your account and making requests",
      "blocks": [
        {
          "type": "p",
          "text": "You can delete your account in the App at any time: Settings → Account → Delete account. This permanently deletes your account and everything synced to it — profiles, Kids settings and PIN, watch progress, My List, settings, add-on list, Trakt connection and copied history, device list and trailer diagnostics. It cannot be undone. Deleting the account does not delete your Trakt account; manage that at trakt.tv."
        },
        {
          "type": "p",
          "text": "You can also email DoevStream@protonmail.com to ask for a copy of your data, a correction, or deletion. Please write from the email address of your account so we can verify the request, or tell us how we can verify it. We answer within 45 days; if we need more time (up to 45 more days) we will tell you why. Requests are free of charge."
        }
      ],
      "text": "You can delete your account in the App at any time: Settings → Account → Delete account. This permanently deletes your account and everything synced to it — profiles, Kids settings and PIN, watch progress, My List, settings, add-on list, Trakt connection and copied history, device list and trailer diagnostics. It cannot be undone. Deleting the account does not delete your Trakt account; manage that at trakt.tv.\n\nYou can also email DoevStream@protonmail.com to ask for a copy of your data, a correction, or deletion. Please write from the email address of your account so we can verify the request, or tell us how we can verify it. We answer within 45 days; if we need more time (up to 45 more days) we will tell you why. Requests are free of charge."
    },
    {
      "id": "us-rights",
      "heading": "11. Your rights in the United States, including Connecticut",
      "blocks": [
        {
          "type": "p",
          "text": "Wherever you live, we will honor these requests. If you are a Connecticut resident, the Connecticut Data Privacy Act gives you the right to:"
        },
        {
          "type": "ul",
          "items": [
            "confirm whether we process your personal data and access it;",
            "correct inaccuracies;",
            "delete personal data you provided or that we obtained about you;",
            "get a copy of your data in a portable, readily usable format;",
            "opt out of the sale of personal data, targeted advertising and profiling (we do none of these)."
          ]
        },
        {
          "type": "p",
          "text": "To use these rights, see Section 10. You may use an authorized agent; we may ask for proof that the agent may act for you. We will not treat you differently for using your rights."
        },
        {
          "type": "p",
          "text": "Appeals: if we decline your request, you can appeal by replying to our answer or emailing DoevStream@protonmail.com with the subject \"Privacy appeal\". We will respond in writing within 60 days and explain our decision. If the appeal is denied, you can contact the Connecticut Attorney General at portal.ct.gov/ag."
        }
      ],
      "text": "Wherever you live, we will honor these requests. If you are a Connecticut resident, the Connecticut Data Privacy Act gives you the right to:\n\n• confirm whether we process your personal data and access it;\n• correct inaccuracies;\n• delete personal data you provided or that we obtained about you;\n• get a copy of your data in a portable, readily usable format;\n• opt out of the sale of personal data, targeted advertising and profiling (we do none of these).\n\nTo use these rights, see Section 10. You may use an authorized agent; we may ask for proof that the agent may act for you. We will not treat you differently for using your rights.\n\nAppeals: if we decline your request, you can appeal by replying to our answer or emailing DoevStream@protonmail.com with the subject \"Privacy appeal\". We will respond in writing within 60 days and explain our decision. If the appeal is denied, you can contact the Connecticut Attorney General at portal.ct.gov/ag."
    },
    {
      "id": "children",
      "heading": "12. Children and Kids profiles",
      "blocks": [
        {
          "type": "p",
          "text": "Accounts are for adults. You must be at least 18 years old (or the age of majority where you live) to create an account."
        },
        {
          "type": "p",
          "text": "An account holder can create Kids profiles for children in their household. A Kids profile has no email address or password of its own; it is created and managed by the account holder, who chooses its name, avatar, language and age. We do not knowingly collect personal information directly from children under 13."
        },
        {
          "type": "p",
          "text": "Kids profiles show titles based on age ratings supplied by TMDB. Ratings can be missing or wrong, and add-ons may offer content outside those ratings, so the filter is a help, not a guarantee. Please supervise children's viewing."
        },
        {
          "type": "p",
          "text": "If you believe a child created an account or gave us personal information, contact us and we will delete it."
        }
      ],
      "text": "Accounts are for adults. You must be at least 18 years old (or the age of majority where you live) to create an account.\n\nAn account holder can create Kids profiles for children in their household. A Kids profile has no email address or password of its own; it is created and managed by the account holder, who chooses its name, avatar, language and age. We do not knowingly collect personal information directly from children under 13.\n\nKids profiles show titles based on age ratings supplied by TMDB. Ratings can be missing or wrong, and add-ons may offer content outside those ratings, so the filter is a help, not a guarantee. Please supervise children's viewing.\n\nIf you believe a child created an account or gave us personal information, contact us and we will delete it."
    },
    {
      "id": "eu-uk",
      "heading": "13. Users in the EU, EEA and UK",
      "blocks": [
        {
          "type": "p",
          "text": "If you use the Services from the European Union, the European Economic Area or the United Kingdom, the GDPR or UK GDPR gives you additional rights. DoevStream is the controller of your personal data."
        },
        {
          "type": "p",
          "label": "Legal bases.",
          "text": "We process account, profile, library, device and QR sign-in data to perform our contract with you (to provide the Services you asked for); Trakt data because you asked us to connect it; trailer diagnostics, technical logs and security measures on the basis of our legitimate interest in keeping the Services working and safe; and donation records to meet legal obligations."
        },
        {
          "type": "p",
          "label": "Your rights.",
          "text": "You can ask for access to your data, correction, deletion, restriction of processing, and a portable copy; you can object to processing based on legitimate interests; and where processing is based on consent, you can withdraw it at any time. Use the contact details in Section 10."
        },
        {
          "type": "p",
          "label": "Complaints.",
          "text": "You can complain to the data protection authority where you live or work (in the UK, the Information Commissioner's Office). We would appreciate the chance to address your concern first."
        },
        {
          "type": "p",
          "label": "International transfers.",
          "text": "Your data is processed in the United States. Where our providers receive EU/EEA or UK personal data, the transfer is protected by the European Commission's Standard Contractual Clauses (and the UK Addendum) in their data processing agreements, or by an adequacy decision such as the EU-US Data Privacy Framework where the provider is certified."
        }
      ],
      "text": "If you use the Services from the European Union, the European Economic Area or the United Kingdom, the GDPR or UK GDPR gives you additional rights. DoevStream is the controller of your personal data.\n\nLegal bases. We process account, profile, library, device and QR sign-in data to perform our contract with you (to provide the Services you asked for); Trakt data because you asked us to connect it; trailer diagnostics, technical logs and security measures on the basis of our legitimate interest in keeping the Services working and safe; and donation records to meet legal obligations.\n\nYour rights. You can ask for access to your data, correction, deletion, restriction of processing, and a portable copy; you can object to processing based on legitimate interests; and where processing is based on consent, you can withdraw it at any time. Use the contact details in Section 10.\n\nComplaints. You can complain to the data protection authority where you live or work (in the UK, the Information Commissioner's Office). We would appreciate the chance to address your concern first.\n\nInternational transfers. Your data is processed in the United States. Where our providers receive EU/EEA or UK personal data, the transfer is protected by the European Commission's Standard Contractual Clauses (and the UK Addendum) in their data processing agreements, or by an adequacy decision such as the EU-US Data Privacy Framework where the provider is certified."
    },
    {
      "id": "security",
      "heading": "14. Security",
      "blocks": [
        {
          "type": "p",
          "text": "Connections are encrypted (HTTPS). Each account can read and change only its own data. Passwords and Kids PINs are stored only as salted hashes, TV and tablet sign-in codes are random, single-use and protected against guessing, and access to our systems is limited. No system is perfectly secure; if a breach affects your personal information, we will notify you and the authorities as the law requires."
        }
      ],
      "text": "Connections are encrypted (HTTPS). Each account can read and change only its own data. Passwords and Kids PINs are stored only as salted hashes, TV and tablet sign-in codes are random, single-use and protected against guessing, and access to our systems is limited. No system is perfectly secure; if a breach affects your personal information, we will notify you and the authorities as the law requires."
    },
    {
      "id": "website-cookies",
      "heading": "15. The website and cookies",
      "blocks": [
        {
          "type": "p",
          "text": "The Site has no analytics, no advertising and no tracking. Its fonts and images are served from our own site. We do not set cookies; your cookie-banner choice is saved in your browser's local storage. Cloudflare, which hosts the Site, may set strictly necessary cookies to protect it from abuse. You can change your choice at any time with \"Cookie Settings\" in the footer."
        }
      ],
      "text": "The Site has no analytics, no advertising and no tracking. Its fonts and images are served from our own site. We do not set cookies; your cookie-banner choice is saved in your browser's local storage. Cloudflare, which hosts the Site, may set strictly necessary cookies to protect it from abuse. You can change your choice at any time with \"Cookie Settings\" in the footer."
    },
    {
      "id": "changes",
      "heading": "16. Changes to this policy",
      "blocks": [
        {
          "type": "p",
          "text": "We will update this policy when the Services or the law change. The \"Last updated\" date at the top shows the current version. If we make material changes, we will tell you in the App or on the Site before they take effect."
        }
      ],
      "text": "We will update this policy when the Services or the law change. The \"Last updated\" date at the top shows the current version. If we make material changes, we will tell you in the App or on the Site before they take effect."
    },
    {
      "id": "contact",
      "heading": "17. Contact",
      "blocks": [
        {
          "type": "p",
          "text": "Questions or requests about privacy: DoevStream@protonmail.com"
        }
      ],
      "text": "Questions or requests about privacy: DoevStream@protonmail.com"
    }
  ]
}