Privacy Policy
In short
- We only keep what Upisode needs to work: your account, the shows and movies you follow, what you mark as watched and your progress.
- The Android and iOS apps show ads from Unity LevelPlay or Google AdMob, and the website shows ads from Adsterra, unless you buy Uncut or Patron. We ask you first: in the apps, if you don’t give your permission, they aren’t personalised; on the website, if you don’t, Adsterra isn’t loaded. We don’t sell or share your data.
- Uncut and Patron are charged by Google Play and the App Store, through RevenueCat: we never see your payment details.
- You can delete your account from Settings at any time, and everything is erased right away.
Who is responsible
Upisode is an app for keeping track of TV shows and movies, available on the web, Android and iOS. It is developed and run by GitThreeLab, which is the controller of your personal data.
For any privacy question, write to us at upisode@gitthreelab.com.
What data we process
Your account:
- Your email address and the username you choose.
- Your password, stored as a hash (bcrypt) and never in plain text. If you sign in with Google or Apple, instead of a password we store the identifier that provider assigns to your account, and the email address it shares with us.
- The date of your last sign-in and any failed sign-in attempts, to block brute-force attacks.
- Your profile photo, if you add one. We store it cropped to 512 × 512 pixels and without the original file’s metadata (such as location or phone model). If you create a handle, the people who can see your profile see it too; otherwise, only you do. You can change or remove it at any time from your profile.
- If you create a handle to use Upisode with friends: the handle, your date of birth (to check you are 16 or over; it is never shown to anyone and can’t be changed), your profile’s privacy, who you follow and who follows you, the accounts you block, your episode reviews, your likes and the reports you make or receive. Depending on your privacy, other people see your name, your handle, your photo, the shows you follow and which episode you are on. Anyone who has watched an episode can read your reviews of it. If a review is reported, a member of the team reviews it and may hide it.
What you do in Upisode:
- The shows you follow, their status (watching, watch later or dropped) and the episodes you mark as watched, with the date you mark them.
- The movies you save, which list they are on (to watch, watched or dropped) and the dates you add them and mark them as watched.
- Your tastes, if you give them during onboarding or in Settings → My taste: platforms, genres, era, length and languages of the shows you prefer. They are only used to recommend shows. What you pick about movies during onboarding is not stored: it only decides which movies we suggest at that moment.
- Your account preferences: how many days ahead the Upcoming tab looks, whether and when you want premiere alerts, and whether you want us to tell you when movies on your To watch list come out.
- Your notifications (the bell): which episodes of your shows and which releases of your movies we announced each day, and whether you have read them. They are deleted automatically after 90 days.
- The time zone of your phone or browser, to know what “today” and “tomorrow” mean in your notifications. Your phone’s region (for example, Mexico) is also sent when you look up movies, to give you the release date in your country, and it is not stored with your account.
- Your progress: your level’s XP, which only goes up, the achievements you earn, with the day you earn them, and the frame, the title and the three showcase achievements you choose to display. It is calculated from what you mark as watched and from your ratings, and for now only you see it.
Your purchases, if you buy Uncut or Patron in the mobile app:
- What you have bought, since when and from which store (Google Play or the App Store), and the identifiers of RevenueCat’s latest notifications, so the same one isn’t applied twice. We don’t see or store your payment details: the store handles them.
- If you buy without an account, the app creates a random identifier for that phone, stored on it, which lets RevenueCat know that phone has paid. When you sign in, the purchase moves to your account.
Your devices, if you use the mobile app and allow alerts:
- The identifier Firebase Cloud Messaging assigns to your phone so we can send it alerts, together with the platform (Android or iOS), the app language and the phone’s time zone and region, so we alert you at your time, in your language and on the day a movie comes out in your country.
- A record of the alerts already sent, so they aren’t repeated. It deletes itself after 30 days.
Your session: one session token per device, of which we only keep a hash, expiring after 30 days without use. If you ask to reset your password, a single-use token, also hashed, that expires in one hour.
On your device, not on our servers, we keep your session (in the system keychain on mobile, or in the browser’s storage on the web), the theme and language you choose, and whether spoiler-free mode is on. The “Your year on Upisode” recap is calculated from your data when you open it and is not stored separately; if you share it, the image is created on your device and you send it yourself with the app you choose. The same goes for an achievement’s image.
Advertising:
- The Android and iOS apps show ads from Unity LevelPlay (a platform that brings together several ad networks, such as Unity Ads and ironSource Ads) or from Google AdMob. To serve them, their SDK collects on your phone the system advertising identifier, your IP address (from which it infers an approximate location, never your exact one), technical data about the device and the app, and how you interact with the ads. This goes straight to those networks: it doesn’t pass through our servers and we don’t link it to your account.
- The first time you open the app we ask whether you accept personalised ads and, if you say yes, on iPhone and iPad the system also asks your permission for tracking. If you say no, you still see ads, but they aren’t personalised.
- The website shows Adsterra banners. Adsterra sets cookies in your browser and receives your IP address, data about your browser and the page you are viewing, and it has no cookie-free mode, so it only loads if you accept it in the notice that appears when you arrive. If you decline, it doesn’t load, and you see ads for our other apps instead, which carry no cookies or anyone else’s scripts.
- Your answer is saved on your device. We ask you again after 24 months if you accepted and after 6 if you declined.
Beyond that, we don’t use analytics or any tool that measures your behaviour. About purchases, RevenueCat only shows us how many there are, of what and when.
Why we use it, and on what legal basis
- To provide the service: creating and keeping your account, saving your shows, episodes and movies and showing them on all your devices. The basis is the contract you accept when you create the account (Art. 6(1)(b) GDPR).
- To calculate your level and achievements from what you mark as watched, and to save what you choose to display on your profile. It is part of the service, on the same basis (Art. 6(1)(b)).
- To give you what you buy: removing ads on all your devices, giving you its frame, title and badge, and taking them away if the store refunds you. The basis is the purchase contract (Art. 6(1)(b)).
- To send you alerts about new episodes and movie releases. Only if you grant the notification permission on your phone, which you can withdraw at any time in the system settings or in Settings (consent, Art. 6(1)(a)).
- To protect accounts and the service: limiting sign-in attempts and detecting abuse. Your IP address is used briefly for those limits and is not stored against your account (legitimate interest, Art. 6(1)(f)).
- To send you the emails that are strictly necessary, such as the password reset link when you ask for it.
- To show ads, which is how Upisode is funded. Personalised ads, the use of the advertising identifier and Adsterra’s cookies are based on your consent (Art. 6(1)(a) GDPR), which you can withdraw at any time; without it, the apps’ ads aren’t personalised and the website doesn’t load Adsterra.
We don’t make automated decisions about you or build profiles. If you accept advertising, the ad networks and their partners may use that data to choose which ads to show you.
Who we share it with
We don’t sell or rent your data. It is only processed, on our behalf, by the providers that keep Upisode running:
- MongoDB Atlas: the database, hosted in the European Union.
- OVHcloud: hosts, in France (European Union), the API server and the web version’s server, which prepares its pages so they load faster. Like any web server, it receives your IP address and your browser’s language when the page loads.
- Firebase Cloud Messaging (Google): receives your phone’s identifier and the alert text, only if you turn alerts on.
- Google and Apple: if you choose to sign in with them, they confirm your identity and email address. What they process about your account is governed by their own privacy policies.
- Brevo (France): sends the password reset email. It receives your address and the message only when you ask for one.
- Microsoft (Azure Translator): translates show synopses and episode titles from English into the app’s language. It only receives those texts, never your data.
- RevenueCat (United States): checks each purchase with Google Play or the App Store and tells us what your account has. It receives your account’s identifier, or your phone’s if you buy without an account, and the store receipt, never your payment details.
- Google Play and the App Store: they charge for Uncut and Patron, and handle your payment details under their own terms and privacy policies. We never see them.
Show data and images come from TVmaze. We don’t send it any of your data, but images load straight from its servers, so TVmaze receives your IP address when showing them, as with any image hosted on another website.
Movie data comes from Wikidata and synopses from Wikipedia, both run by the Wikimedia Foundation; posters come from Fanart.tv or Wikimedia Commons. For “Trending” we use Wikipedia’s public, anonymous page-view statistics. We don’t send them any of your data, but posters load straight from their servers, so they receive your IP address when showing them.
Which platforms each show and movie is on in your country comes from Streaming Availability API (Movie of the Night). We only ask it for the title by its IMDb ID: we send it none of your data, not even which country you are in. The “Watch on…” buttons open each platform’s website or app, which is governed by its own privacy policy.
The mobile apps also use Unity (Unity LevelPlay and Unity Ads; United States), which shows the ads. It receives the advertising data described above straight from your phone and is responsible for what it does with it, under its own policy: unity.com/legal. If you accept personalised ads, it may share that data with the networks it works with. When the active network is Google AdMob (Google Ireland Limited), the same goes for Google and its policy: policies.google.com.
The website uses Adsterra (AD MARKET LIMITED, in Cyprus, and ADMEDIA LLC FZ, in the United Arab Emirates), if you accept it. It receives the data described above straight from your browser and is responsible for what it does with it, under its own policy: adsterra.com.
Some of these providers also operate outside the European Union. When your data leaves it, it does so with the safeguards the GDPR requires, such as the European Commission’s standard contractual clauses or the EU-US Data Privacy Framework.
How long we keep it
For as long as you have an account. If you delete it, your account, profile photo, shows, watched episodes, movies, tastes, progress, what we know about your purchases, sessions, devices, notifications and alert record are erased immediately and permanently. This can’t be undone.
The purchase itself belongs to your Google Play or App Store account, not to your Upisode one: if you come back, “Restore purchases” brings it back. RevenueCat and the store keep the payment record for as long as their policies and the law require, for example for invoicing.
Technical server logs, which may include IP addresses, are kept for the minimum time each provider sets to run the service.
We don’t keep the advertising data ourselves: the ad networks keep it for as long as their policies set.
Your rights
You can ask us at any time to access, correct or erase your data, to restrict or object to its processing, and for data portability. Write to upisode@gitthreelab.com from your account’s email address, and we’ll reply within one month.
To take your data with you, you don’t need to write to us: on the web, Settings → Export my shows downloads your shows and the episodes you’ve watched in a file other apps understand.
You don’t need to write to us to delete your account: it’s in Settings → Delete account.
You can change your advertising choice at any time in Settings → Ad privacy or, without an account, in the link of the same name, and on iPhone and iPad also in Settings → Privacy & Security → Tracking. The advertising identifier can be reset or deleted in your phone’s settings.
If you think we haven’t handled your data properly, you can complain to the Spanish Data Protection Agency (aepd.es) or to the authority in your country.
Security
All communication between the app and the server is encrypted with HTTPS. Passwords and tokens are stored as hashes, database access is protected with its own credentials, and sign-in is locked after several failed attempts. No system is invulnerable, but if a breach affected your data we would tell you, as the law requires.
Children
Upisode is not intended for children under 14, and they must not create an account. If we learn that someone under that age has created one, we will delete it. The social features (handle, following other accounts and reviews) are only for people aged 16 or over: we check this with the date of birth you give us.
Changes to this policy
If we change it, we’ll publish the new version here with its date. If the change significantly affects how we handle your data, we’ll also tell you in the app.