Privacy Policy

Last updated: 1 November 2026

This policy explains what personal data Utopia Dreams VFX collects, what it is used for, who processes it and what your rights are. It also explains exactly how the app handles data from your Google Account, including Google Photos.

1. Who is responsible for your data

The data controller is Raúl Bellmunt Tabero (tax ID 52408413S), Calle Ciudad Real, 12, 08227 Terrassa (Barcelona), España, who runs Utopia Dreams VFX (the «app», available at https://app.utopiadreams-vfx.com). For any question about your data, write to hello@utopiadreams-vfx.com.

When a company, school or other organisation accepts our Data Processing Agreement for its account or team, it is the controller of the personal data of other people in its stories (the faces, voices and names of its employees, students or clients), and we process them on its behalf, as that agreement says. This policy still covers your own account's data.

2. Data we collect

  • Account data: your name, email address, company (optional) and password when you request access. The password is only stored as a secure hash (bcrypt), never in readable form. We also store your interface language and whether our team has approved your account.
  • Sign in with Google: if you sign in with Google, Google shares your name, email address, profile picture and Google account ID with us. We only use them to identify you and sign you in. Only accounts approved by our team can sign in.
  • Your content: the stories you create and everything in them: ideas, scripts, characters, settings, props, scenes and prompts, the images and files you upload, the photos you import from Google Photos, the files you import from Google Drive, and the images, videos, voiceovers, music and edits you generate with the app. When you add a photo of a person to a character, the AI checks whether it is a good reference and whether the person looks under 18; the app keeps that last answer on the character, only to warn you, and it is deleted with the story. Also the LED wall plates you make: the place you describe, their keyframes and their videos.
  • Movies you share with a link: a copy of the movie at 1080p (earlier links, and those made on a device that can't encode 1080p, are at 720p) and a preview image made from its first scene. Our servers make it from your clips; if they can't, your browser makes it and sends it to us. Anyone who has the link can watch the movie without signing in, and messaging apps such as WhatsApp or Telegram show its title and preview image. The links aren't listed anywhere and search engines are asked not to index them.
  • Reviews with the client: when you ask for a review, the movie is shared as in a link and we keep which shot plays at each second. Whoever reviews it types their name and email, and we keep them with each comment they leave (its text and the second of the movie) and with each decision they take on each version (approved or changes requested, and their note), kept as the record of the review. You see their name and email; the others with the link only see their name. Their browser keeps their name, email and a random token, so they don't type them again and can delete their comments; we keep only a scrambled form of the token. We email you each decision, from our address, with their comments; replies go to the reviewer.
  • Stories our team shares with you: our team can give your account its own copy of one of its stories, with its files, marked in Your Stories as shared by the team. We keep which story was shared, when, and the emails of the accounts that got a copy. The copy is yours to edit, and the AI you use in it is paid with your credits. When we share a story with you, we email you its title, its first image, the name and email of who shared it and a link to your copy.
  • Reference videos: if you start a story from an example video, its YouTube link or the file you upload is sent to Google Cloud (Vertex AI, Gemini), which watches up to its first 3 minutes and proposes story ideas. An uploaded video goes to our private storage only for that and is deleted as soon as Gemini answers; we don't keep the link either. Only use videos you are allowed to share; the ideas never copy the video's plot, characters or people.
  • Cloned voices: if you clone a character's voice, the two recordings you make or upload (the consent sentence and a voice sample of up to 30 seconds) are sent to Google Cloud (Vertex AI, Gemini voice replication), which checks the consent and makes a synthetic voice from them. Google keeps that voice in our Google Cloud project, not the recordings, and deletes it if it goes a year unused. If you upload a video, only its sound is used. When your browser can't open a file, our server turns it into the recording and deletes the file straight away. We don't keep the recordings either; we store the voice's identifier on our servers, linked to your account and story, and only use it in your stories: to narrate them when you choose that voice, and to dub that character's lines into your clips. The lines to dub are kept only until the clip is ready. Only clone your own voice, or the voice of someone who has given you permission and reads the consent sentence themselves.
  • Spoken orders in the production office: in its real mode you can give the crew an order by speaking. Your browser records it (up to a minute) only while you hold the microphone on, and sends it once to Google Cloud (Vertex AI, Gemini), which writes it down; you read the text before sending it. We don't keep the recording. The crew's lines said aloud are made with Gemini's voices and kept in our private storage like the narrations.
  • Consent and provenance records: before you use a real person's photos for a character or clone their voice, you confirm you have their consent; we keep on the character the email of whoever confirmed it and when, and add both to the provenance file you can export. For each image and clip you generate we also record which model made it, when, with which settings and for how many credits, so you can see it in the shot's details and export it. In your account we keep whether you chose «Google models only» and «Data in the EU».
  • Unreal Engine and Unity: if you connect the Utopia Dreams plugins, the access tokens you create (we only keep a scrambled form of each one, its name, when it was created, when it expires, when and from which engine it was last used and, if the app revoked it, when and why), the orders you give the engines in your own words and the actions prepared for them, and what the engines send back to your stories: changes to the edit, notes and rendered images and clips. With your token, the Unreal Engine plugin also lists your finished LED plates and downloads the ones you pick to your computer, as it does with your stories' files. When you check a shot against its storyboard, the plugin sends a frame through the shot's camera, which Gemini compares with the storyboard image; we delete the frame once it is compared.
  • AI assistants (MCP): if you connect an AI assistant such as Claude or Gemini CLI to the app with one of those access tokens, it can read your stories (their texts, shots, characters and links to their files) and send back changes to the edit, notes and renders, as the plugins do. It can also create stories, write their characters, settings, props and shots, restore an earlier version, export the movie and ask the app to draw a picture, which uses your credits only after it passes the cost you agreed to; the picture is made by the same AI providers as in the app. The same applies to an assistant you connect to Unreal Engine 5.8's own MCP server while the Utopia Dreams plugin is installed: it reads the story open in the editor and runs the plugin's actions, which the app records with your other orders. You choose the assistant: what it reads goes to its provider under that provider's own terms. We only record its use of the token and the changes it sends, as for the plugins.
  • AI assistants connected with your account (OAuth): assistants such as Claude.ai, Claude Desktop or ChatGPT can also connect without a token: they send you to sign in to Utopia Dreams, a page tells you which assistant asks, where you will return and what it will be able to do, and nothing is shared unless you allow it. The assistant then gets the same access as with a token, for as long as you keep it connected. We keep the connection (your account, the assistant's name and address, when you connected it and when it was last used) and a scrambled form of its access tokens, which last an hour and renew by themselves. You see and disconnect your assistants in the app, next to your access tokens; disconnecting one, or deleting your account, deletes the connection and its tokens at once. What the assistant reads goes to its provider under that provider's own terms.
  • Plugin downloads and installations: each time you download a plugin, when, which plugin and version, and whether you had the Engines add-on; the zip carries an ID of that download. Each installation of a plugin sends with its calls a random installation ID it keeps on the computer, the ID of the download it came from, the plugin and engine versions and the operating system's name and version; we keep them with your account, when it was first and last seen and whether its latest call was allowed. Whether you have the Engines add-on, until when, and whether it renews by itself, is kept on your account.
  • Subscriptions and purchases: when you subscribe to a plan or buy usage credits, Stripe collects your payment details, billing address and, if you give it, your tax ID, and issues the invoice. We receive and keep your plan, its billing period and status, the amount, the date and Stripe's references of the customer, the subscription and the payment, never your card details. For the free trial we also keep its plan, start and end dates, how it ended and when we sent its reminder, and, so each person has only one trial, a one-way hash (SHA-256) of your email and of the fingerprint Stripe gives your card: neither can be turned back into the email or the card. If you turn on the automatic top-up, Stripe keeps the card you save for it, and we keep its settings (threshold, amount and monthly cap), Stripe's references of the customer and the card, the card's brand and last four digits to name it, what was charged this month and when the last top-up was.
  • Withdrawals: if you withdraw from a contract with «Withdraw from the contract», we keep which payment it is for, when you asked, what you wrote and the confirmation we emailed you. Before paying for usage credits, a pass or the add-on, the payment keeps that you asked for them at once and acknowledged losing the right of withdrawal once you use them.
  • Agency add-on: the client name you give each of your reviews. It is deleted with the review, its story or your account; the approval record is built from the review when you open it and isn't kept apart.
  • Referral programme: if you invite people, your invitation code, how many times your link was opened and, for each person who asks for access with it, their email, the dates of their request, trial and first payment, the plan they paid, the reward and the result of the checks against inviting oneself; if someone invited you, who it was. The person who invited you sees only part of your email (for example ev•••@estudio.com) and how far you went, never your stories or your payments. So nobody gets the reward for being invited twice, we keep a one-way hash (SHA-256) of the email of each person who got it.
  • Discount for education and non-profits: if you ask for it, the sector, the organisation, the detail you give us to check it (a website, a role or a registry number), the date and our team's decision; once approved, the discount and until when the payment page applies it. Stripe receives the discount or the promotion code applied to your payment.
  • Loyalty gift: since when you pay your plan without a break, which plan, and the gifts already given.
  • Paid support: if you have a support package, we keep which one and its Stripe subscription with your account or team, and the requests you open from the help chat with our answers, to help you and to follow up. With each request we send the team the help chat that led to it and a summary of your account's activity (your plan, credits, number of stories and how many generations you made and how many failed in the last 30 days), so you don't have to explain it again. The requests live in our help desk, Chatwoot, open-source software that we run ourselves on our Google Cloud project. To help us answer sooner, Google Cloud (Vertex AI, Gemini) reads the request, its conversation, the help chat and that activity summary, and drafts an answer that a person on our team reviews, corrects and sends: nobody is answered automatically. The draft is kept with the request until we answer. We also get each new request, and send you each answer, by email. We keep them while you have the package and for up to a year after, unless the law requires longer for invoices; deleting your account deletes them.
  • Companies: if you accept the Data Processing Agreement for your account or team, your company's name, tax ID and address, your name and role in it, the version of the agreement and when you accepted it; our team also gets a copy by email. If you write to us from the companies' page, your name, your work email, your company, your role if you give it, its size, what you are interested in and your message, which reach our help desk and our email.
  • Billing details: if you fill them in Credits, the company's legal name, tax ID and address and the email the invoices go to. We keep them with your account or team and send them to Stripe, which puts them on your invoices.
  • Teams: if you create or join a team, its name, its owner, the emails of its members and of the people invited, and its wallet of credits with its history, which says which member spent or bought. Every member sees the team's name, the emails of its members and of the people invited, and the team's stories, including the ones a member brings from their personal space; if its maker takes one back to their personal space, the others stop seeing it. When the owner invites someone, we email that person the team's name and the owner's name and email. The owner may also invite reviewers, who see the team's reviews (their titles and movies) and comment and approve there, but not its stories or its wallet; the team keeps their emails, and its members see them. The owner may set each member a monthly limit of credits: we keep that limit and what each member spent from the team's wallet this month, which the owner sees, and each member sees their own.
  • Suggestions and feedback: what you write in Suggestions and feedback, whether it's a suggestion or feedback, when you sent it and your app language, linked to your name and email, and the files you attach to it if you do (up to five: screenshots, short screen recordings, PDFs or text files), kept in our private storage, where only you and our team can open them. Our team reads it in the admin panel, notes whether a suggestion was approved and may answer you: the answer, its date and any files it carries are kept with your message, you read them in the app, and we email you that there is an answer. Who in our team answered is kept for us but not shown to you. To decide what to build, Google Cloud (Vertex AI, Gemini) reads the text of a suggestion, without your name or email, and says whether the app already does it, whether it fits and whether it respects Google's policies; that review is kept with your suggestion. When we decide to build an idea, a summary of it written without your name, email or any other personal data goes to our private code repository on GitHub as the description of the work.
  • Requests for more credits: when you ask for more free credits, the date, what you had left and whether our team approved the request and how many credits it gave, linked to your name and email.
  • Preferences: the AI models and options you choose (for example, the video resolution), stored in your browser. Your browser also keeps small frames of your clips, so the editor's timeline shows them at once next time; they never leave your device.
  • Your memory across stories: to start new stories the way you like, the app keeps, linked to your account, what you usually choose (visual style, format, film and music genre, narration voice), the characters with a real photo or a cloned voice from your own stories, not your team's (their name, description and where their photos and voice are stored, not copies of them), the instructions you give with Magic Edit, the notes you write for the writer and the coherence advisor's warnings that come up most in your stories (only the kind of mistake and how many times, nothing of the story). It is learned from what you do in the app, without any extra AI processing, and only you see it: in Settings, under «Your memory», you can change or delete each item, delete it all, or turn it off so the app neither learns nor uses it. While it's on, the text AI that writes your pitch and your story receives your usual choices, your notes, the corrections you keep asking for, how to avoid your usual continuity mistakes and, only when you turn them on in the Pitch and confirm you have their consent, the remembered people your pitch names, with their photos and voice. A character who only shares a name with one of them is someone invented, and a team's stories never use them.
  • Coherence advisor statistics: the app counts, across all stories, how often each warning of the coherence advisor comes up and whether it is fixed or ignored. These totals hold no account, story, text or picture, so they don't identify anyone; our team sees them in the admin panel, and the most frequent mistakes are added, as general advice, to the instructions of the text AI that writes the stories.
  • Technical data: IP address, browser and device type, dates and pages requested and error reports, which our servers record for security and to fix problems.
  • Usage of the AI features: for each generation, the model, what it used (text tokens, images, seconds of video), its cost, the credits charged and the story it was for, linked to your account. Our team sees what each account spends, by story and by kind of generation, in the admin panel. We use it to charge credits, to run and plan the service and to understand its costs. When your account is deleted, these records stop being linked to you.
  • Time in the app: how long you use each section of the app (Pitch, Scenario, Storyboard, Editor…) each day, counted only while the app is on screen and in use, linked to your account. We use it to understand how the app is used and to improve it. It is deleted with your account.
  • Views and shares of your stories: each time you play one of your stories in the editor, or one shared with you, we note when and how much was played, linked to your account. When you share a movie with a link, we note each way you send it (copy, WhatsApp, Telegram, email…) and, if the app emails it for you, to whom. When someone opens the link, we note when, how much of the movie they play, the website they came from, the kind of device and browser, their time zone and language and, when Google's network gives it, their approximate country, region and city. We don't store their IP address or use cookies: to count unique viewers we keep a scrambled key, made from the link, part of their IP address and their browser, that can't be turned back into the address. We also count how many times apps such as WhatsApp load the link's preview. Our team sees these figures in the admin panel, to understand how stories are watched and shared and to improve the app; the page of the link says so.
  • Visits to the website: each time someone opens a page of the website or the app, we count the page, the website they came from (a search engine, an AI assistant such as ChatGPT, a social network…) and its campaign tags, the kind of device, browser and system, the browser's language and, when Google's network gives it, the country. Sign-ups and plays of the intro video are counted too. We don't use cookies or store anything in the browser, and we don't store the IP address: to tell visitors apart we keep, for two days, a scrambled key made from the day, part of the IP address and the browser, which changes every day and can't be turned back into the address. Only daily totals are kept, without anything that names anyone; our team sees them in the admin panel to improve the website. We also count which pages the crawlers of search engines and AI assistants read.
  • Job applications: if you write to us from the careers page (/careers) to apply, we keep your email, your message and the links or files you send only to consider you for a profile, for up to one year, and erase them earlier if you ask.
  • What you create, in the admin panel: our team can see in the admin panel the clips made for your shots and the movies you share with a link, with their story's title, your account, the date, the length and the model. We use it to run the service, to help you when you ask for it, to check the quality of what the AI makes and to prevent abuse. Stories made with photos of real people (a character's photos or any image you upload or import, Google Photos included) appear there without any picture or clip: no one on our team sees them, except in the cases described in «Data from your Google Account, Google Photos, Google Drive and YouTube».
  • Blog subscription: if you subscribe to the blog's news (/blog), we keep your email, the language of the page, when you asked and when you confirmed. We email you a link to confirm it's your address, and we only count you once you confirm (double opt-in). To stop automated sign-ups, the form uses Google reCAPTCHA Enterprise, which assesses the visit without showing a challenge, and we limit how many requests come from one network address, without storing it. Our team sees the subscribers in the admin panel and can export them to send the news.
  • Monthly news email: on your account we keep whether you want the monthly email with the app's news, a random code for its unsubscribe link and the last month we sent it to you, so a retried send never emails you twice. Our team sees in the admin panel how many accounts get it and how many turned it off.

We don't collect special categories of personal data, we don't use advertising or analytics cookies, and we don't build advertising profiles.

3. Data from your Google Account, Google Photos, Google Drive and YouTube

Utopia Dreams VFX uses Google APIs in five ways:

  • Sign in with Google (scopes openid, email and profile): your name, email address, profile picture and Google account ID, used only to create and identify your account.
  • Import from Google Photos (scope https://www.googleapis.com/auth/photospicker.mediaitems.readonly, which Google shows as «See selected photos and videos from Google Photos»): optional, and only requested when you choose «Import from Google Photos» where the app lets you add an image.
  • Import from Google Drive (scope https://www.googleapis.com/auth/drive.file, which Google shows as «See, edit, create and delete only the specific Google Drive files you use with this app»): optional, and only requested when you choose «From Google Drive» where the app lets you add a file: images, a voice to clone, a screenplay or a scene's dialogue.
  • Upload to YouTube (scope https://www.googleapis.com/auth/youtube.upload, which Google shows as «Manage your YouTube videos»): optional, and only requested when you choose «Upload to YouTube» in the Editor. Utopia Dreams VFX uses YouTube API Services for this.
  • Team folder in Google Drive (scope https://www.googleapis.com/auth/drive.file, which Google shows as «See, edit, create and delete only the specific Google Drive files you use with this app»): optional, and only requested when a team's owner chooses «Create the folder in Drive», or when a member imports a file from that folder.
  • Team meetings on Google Meet: optional, and each permission is only requested at the step that needs it in the team window: https://www.googleapis.com/auth/calendar.events («View and edit events on all your calendars») when you create a meeting, https://www.googleapis.com/auth/meetings.space.readonly («Read information about your Google Meet conferences») when you bring in Meet's transcript, and https://www.googleapis.com/auth/drive.file («See, edit, create and delete only the specific Google Drive files you use with this app») when you save the summary as a Google Doc.

How the import works:

  • Google asks for your permission and opens the Google Photos picker, where you select one photo.
  • The app only receives the photo you selected. It can't see, list or search the rest of your library, your albums or any other content.
  • Our server downloads that photo (at most 2048 pixels on its longest side) with a temporary access token, and the app saves a copy in your project so you can use it as a reference image for characters, settings, props, scenes or the visual style of your story.
  • Right after the download, the app closes the picker session with Google.
  • The access token is only kept in your browser's memory and expires within one hour. We never store it on our servers or in any database.

How the import from Google Drive works:

  • Google asks for your permission and opens the Google Picker, where you choose one file. It only lists the kind of file the app needs at that moment.
  • The app can only open the file you chose. It can't see, list or search the rest of your Drive, and it never changes or deletes your files.
  • Your browser downloads that file with a temporary access token and the app uses it exactly like a file uploaded from your computer: it saves a copy in your project when the feature keeps files (images, voices) or only reads its text (screenplays, dialogue).
  • The access token is only kept in your browser's memory and expires within one hour. We never store it on our servers or in any database.

How the upload to YouTube works:

  • In the Editor you choose the format (video or Short) and write the title, the description and the visibility, and say whether the video is made for kids and whether it has realistic content made with AI. Nothing is uploaded until you press «Upload».
  • Google asks for your permission and lets you choose the account and the channel.
  • Your browser exports the movie and sends it straight to YouTube, with the details you wrote. The video doesn't go through our servers.
  • The access token is only kept in your browser's memory and expires within one hour. We never store it on our servers or in any database, and we don't store any data from YouTube: the app only shows you the link to the video when the upload ends.
  • The app can't see, change or delete your other videos, your channel or your YouTube account.

How the team's Drive folder works:

  • The owner gives permission once. The app creates, in the owner's Drive, a folder named after the team with a subfolder for each kind of element, and shares it as editor with the team's members (Drive emails them). When someone joins or leaves the team, the app shares or unshares it.
  • To do that while the owner is away, our server keeps the owner's Drive access (a refresh token, limited to the files the app creates) and the email of the Google account that holds the folder. It isn't shown to anyone and is withdrawn when the owner chooses «Stop syncing», closes the team or deletes their account.
  • When a member imports from the folder, Google opens its own picker and the app only receives the file chosen. Their browser downloads it with a temporary access token that is never stored on our servers, and the app saves a copy in the story, like a file uploaded from the computer.
  • The app can't see the rest of anyone's Drive. The folder and its files belong to the owner and stay in their Drive when the team closes.

By uploading to YouTube you agree to be bound by the YouTube Terms of Service, and Google handles the video under the Google Privacy Policy.

How team meetings work:

  • Any member of a team can create a meeting. The app creates the event, with its Google Meet link and the title you wrote, in your main Google Calendar, and invites the other members of the team by their email; Google sends them the invitation. The app keeps the meeting's title, date, link and guest list in the team, so every member sees it.
  • To transcribe a call, the person who organized it can bring in the transcript Google Meet wrote (only when someone turned on transcription in the call). The app only reads the conference records and transcripts of that meeting's link, with the speakers' names as Meet gives them.
  • Or any member can upload a recording of the call (audio or video). It goes to our Cloud Storage in pieces; our server extracts the sound, Google's Gemini model transcribes it, and the recording and its sound are deleted as soon as the transcription ends, whether or not it worked.
  • The transcript is kept with the meeting in the team. When you ask for it, Gemini writes a summary (executive report, main points and next steps) from the transcript, which is also kept with the meeting.
  • When you save the summary, the app creates a Google Doc with it in your Google Drive and shares it, with edit access, with the people invited to the meeting; then it emails them the summary and the link from our address. The app can only see the files it created, never the rest of your Drive.
  • The access tokens are only kept in your browser's memory and expire within one hour. Our server uses each one for the call you asked for and never stores it.
  • The meetings, their transcripts and summaries are deleted when the team closes, and the ones you created are deleted with your account. The event in your calendar and the Doc in your Drive are yours: you delete them in Google.

We only use the photo to show it in your project and, when you ask the app to generate images or videos with it, to send it as a reference to the AI models that create them (see «Who processes your data»). We don't use it for anything else.

We never sell Google user data, never use it for advertising, never use it to develop, improve or train AI models, and never share it with anyone except the providers needed to run the features you use, as described in this policy.

No one on our team looks at your photos unless you ask us to (for example, to help you with a problem in a specific project), it is necessary for security (such as investigating abuse) or the law requires it.

You can revoke the app's access at any time in your Google Account, at myaccount.google.com/permissions. Revoking access doesn't remove photos you have already imported; to erase them, delete the stories that use them or write to us (see «Your rights»).

To revoke access to YouTube, use «Disconnect YouTube» in the upload window or Google's security settings, at security.google.com/settings/security/permissions. Videos you have already uploaded stay on your channel; you manage them in YouTube Studio.

To stop the team's folder syncing, the owner uses «Stop syncing» in the team window; revoking the app's access in the Google Account does it too. The folder stays in Drive.

Utopia Dreams VFX's use and transfer to any other app of information received from Google APIs will adhere to the Google API Services User Data Policy, including the Limited Use requirements.

4. Publishing to TikTok, Instagram, Facebook and LinkedIn

In the Editor, «Publish to social media» publishes your movie with your own account on the network you choose. It's optional, and a network is only connected when you ask for it.

  • Connecting your account: the network shows its own consent screen, where you sign in and allow the app to publish videos. The app asks for the narrowest permissions that allow it: on TikTok user.info.basic and video.publish; on Instagram instagram_business_basic and instagram_business_content_publish; on Facebook pages_show_list, pages_read_engagement and pages_manage_posts; on LinkedIn openid, profile and w_member_social.
  • What we keep: the access tokens the network gives the app, encrypted on our servers, and your account's name and ID on that network, to show you whose account a post goes to. The tokens are never sent to your browser.
  • Publishing: your browser exports the movie in the network's format and sends it to our private storage; our server sends it to the network with the text and options you chose. Nothing is published until you press «Publish». The copy of the movie is erased from our storage as soon as the network has it or the post fails. We keep a record of each post (story, network, date, status and link) to show you how it went.
  • What the app can do: only publish the videos you send and read the account details publishing needs: your name and, on Facebook, the Pages you manage, and on TikTok, your account's privacy options. It can't read your messages, your followers or your other posts.
  • Withdrawing access: «Disconnect» in the publishing window withdraws the access on the network, where the network allows it, and deletes the tokens from our servers; deleting your account does the same. You can also remove the app in the network's own settings. Posts already published stay on the network, where you manage them.

Each network handles what you publish as an independent controller, under its own terms and privacy policy: TikTok, Meta (Instagram and Facebook) and LinkedIn.

5. What we use your data for and on what legal basis

  • To provide the app (create your account, sign you in, save your stories, import your images and generate the content you ask for), because it is necessary for the contract you accept with our Terms of Service (Art. 6.1.b GDPR).
  • To review access requests, as a step you ask for before the contract (Art. 6.1.b GDPR). We only use your company to understand who is asking for access.
  • To send you service emails, such as the one telling you that your account has been approved (Art. 6.1.b GDPR). We don't send marketing emails, except the monthly email with the app's news, which you can turn off, and the blog's news if you subscribe.
  • To sell credit packs and keep their invoices, because it is necessary for the purchase you ask for (Art. 6.1.b GDPR) and required by tax law (Art. 6.1.c GDPR).
  • To give each person a single free trial, keeping the hashes of the email and the card after a trial, because of our legitimate interest in preventing the trial from being repeated (Art. 6.1.f GDPR).
  • To run the referral programme you join by sharing your link or asking for access with a code: following each invitation and giving its rewards, under the programme's terms (Art. 6.1.b GDPR); and to prevent abuse, comparing the payment with the Stripe customer, the card fingerprint and the team of the person who invited, because of our legitimate interest in stopping people from inviting themselves (Art. 6.1.f GDPR). We don't store IP addresses or device fingerprints for it, and we never write to the people you invite.
  • To handle withdrawals and confirm them to you, as consumer law requires (legal obligation).
  • To check and apply the discount for education and non-profits you ask for (Art. 6.1.b GDPR, the terms of the discount).
  • To give the loyalty gift of the terms (Art. 6.1.b GDPR).
  • To run teams (share stories and a wallet of credits with the members, send invitations), because it is necessary for the contract (Art. 6.1.b GDPR). We only use the email of someone invited to send them the invitation and show it in the team until they accept or decline, based on the team's legitimate interest in inviting its colleagues (Art. 6.1.f GDPR).
  • To run reviews with the client you ask for: showing the movie, the comments and the decisions to you and to whoever has the link, and emailing you the decisions, because it is necessary for the contract with you (Art. 6.1.b GDPR). We use a reviewer's name and email only for that review, based on your and their legitimate interest in reviewing the work together (Art. 6.1.f GDPR); we never write to them for anything else.
  • To read your suggestions and feedback and improve the app with them and, when we approve a suggestion, to give you its credits and tell you by email, as part of the contract (Art. 6.1.b GDPR) and based on our legitimate interest in improving the service (Art. 6.1.f GDPR).
  • To review your requests for more free credits and, when we approve one, give you the credits and tell you by email, as part of the contract (Art. 6.1.b GDPR).
  • To send you the blog's news, if you subscribe, based on your consent (Art. 6.1.a GDPR). You can withdraw it at any time with the link in every email, and we then delete your address.
  • To send you the monthly email with the app's news (what changed in the app the month before, in your language), based on our legitimate interest in telling our customers about the service they use (Art. 6.1.f GDPR) and, as it is a commercial communication about our own service, article 21.2 of Spain's Law 34/2002 (LSSI). You can object at any time, free of charge: with the link in every email, with the «Unsubscribe» button of your email app, or in Settings → «Monthly news by email».
  • To remember your habits across stories and offer them as defaults, as part of the service you ask for (Art. 6.1.b GDPR). It is only used to make your own stories, never for advertising, and you can turn it off or delete it whenever you want in Settings.
  • To keep the app secure and prevent abuse (for example, by limiting the number of requests and keeping technical logs), based on our legitimate interest in protecting the service and its users (Art. 6.1.f GDPR).
  • To control the use of the Unreal Engine and Unity plugins (that only people with an account and the Engines add-on use them, and that a download isn't shared), with the downloads and installations described above, because it is necessary for the contract (Art. 6.1.b GDPR) and based on our legitimate interest in protecting the service (Art. 6.1.f GDPR).
  • To record the Data Processing Agreement your company accepts and process its stories on its behalf, because it is part of the contract (Art. 6.1.b GDPR) and the law requires the agreement (Art. 28 GDPR and Art. 6.1.c GDPR). We keep the copy we get by email to be able to prove it, in our legitimate interest in defending ourselves against claims (Art. 6.1.f GDPR).
  • To answer the companies that write to us from the companies' page and prepare an offer, as a step before the contract they ask about (Art. 6.1.b GDPR).
  • To comply with legal obligations, such as requests from the authorities (Art. 6.1.c GDPR).

We don't take decisions about you based solely on automated processing. The AI models only produce the content you ask for.

6. Who processes your data

These providers process data on our behalf, under contracts that require them to protect it:

  • Google Cloud (Google Ireland Limited and Google LLC): hosting of the app (Cloud Run), database (Firestore), private file storage (Cloud Storage), technical logs, and the Vertex AI models that generate text, images, video, voice and music (Gemini, Imagen, Veo, Lyria and Text-to-Speech). Under Google Cloud's terms, Google doesn't use this data to train its AI models. To check a story for contradictions and wrong facts, its text may also be used to search the web with Grounding with Google Search, a Vertex AI service: only the story's text, never your files or your account details. Before the AI reads the text you bring (your idea, an imported screenplay or text file, your chat messages and the dialogue you import), Google Cloud Model Armor checks it for attempts to manipulate the AI, malicious links and child sexual abuse material, and checks what the AI read from a reference video for sensitive data such as card numbers; it doesn't store or log the text. Some open models run on our own servers in that same Google Cloud project, such as HiTZ's Basque narrator Antton: they receive only what they need (for Antton, the narration text) and send nothing to anyone else.
  • fal.ai (Features & Labels, Inc., United States), which runs Sync Labs' lip sync model and the other companies' video and 3D models you can choose (MiniMax, Kling, Wan, Seedance, Hunyuan3D, Trellis and Tripo). In a presenter video with lip sync on, each shot's clip and its piece of the narration are sent to it so the presenter's mouth follows the voice. When you choose one of those video models, it receives the shot's storyboard image, its prompt and the portraits the app drew of its characters, never a photo you uploaded; when you create a character or object in 3D, it receives that character's or object's image. fal.ai may pass the request to the model's maker to run it. These models are never used if you chose «Google models only» or «Data in the EU».
  • Google Workspace (Gmail), to send service emails.
  • Stripe (Stripe Payments Europe, Ltd., Ireland), to process payments, calculate VAT (Stripe Tax) and issue invoices. For fraud prevention and its legal duties, Stripe also acts as an independent controller under the Stripe Privacy Policy.

When you sign in with Google, import from Google Photos or Google Drive or upload to YouTube, Google also processes your data as an independent controller, under the Google Privacy Policy.

When you publish to TikTok, Instagram, Facebook or LinkedIn, that network processes the movie, its text and your account details as an independent controller (see «Publishing to TikTok, Instagram, Facebook and LinkedIn»).

We don't sell or rent your personal data, and we only disclose it to authorities when the law requires it.

7. International transfers

Our servers are in the United States (Google Cloud), and the AI models may process requests in other countries where Google operates. These transfers are covered by the European Commission's adequacy decision on the EU–U.S. Data Privacy Framework, in which Google LLC participates, and by the Standard Contractual Clauses in Google Cloud's data processing terms. When a presenter video uses lip sync, or you choose a video or 3D model that runs on fal.ai, those files are also processed by fal.ai in the United States.

8. How long we keep your data

  • Account and content: while your account exists. Deleting a story removes it from your account and erases its images, videos and audio from our storage, except files another of your stories still uses. Deleting an LED plate erases its keyframes and videos. When you ask us to delete your account, we erase your account and all your stories, LED plates and files, including photos imported from Google Photos, within 30 days. You can also ask us to erase specific images at any time.
  • Google Photos access: the access token expires within one hour and is never stored on our servers, and the picker session is closed as soon as the photo has been downloaded.
  • Google Drive access: the access token expires within one hour and is never stored on our servers; the files you imported stay in your project like any other upload.
  • YouTube access: the access token expires within one hour and is never stored on our servers, and we don't keep any data from YouTube.
  • Social network connections: the encrypted access tokens and the account's name, until you disconnect the network or delete your account. The copy of a movie sent to a network, until the network has it or the post fails. The record of each post, until you delete your account.
  • Team Drive folder: the owner's Drive access and the folder's details, until the owner stops syncing it, closes the team or deletes their account. A member's access token for importing expires within one hour and is never stored on our servers.
  • Movies shared with a link: until you delete the link, the story or your account; then the copy of the movie and its preview image are erased.
  • Reviews with the client: until you delete the review, the story or your account; then its movie, comments and decisions are erased. If the reviewer has an account with us and deletes it, what they wrote as a reviewer goes too.
  • Views and shares: 13 months; earlier if the story or your account is deleted. Deleting a link deletes who it was sent to; its anonymous openings go with the story.
  • Movies exported on our servers: when you export a movie as MP4, our servers mix and encode it from your story's clips, narration and music, with its lower thirds and «AI GENERATED» label, which your browser paints as images and sends us, and keep the file, those images and a record of the export for 2 days so you can download it; then they are erased, and earlier if you delete your account.
  • Stories our team shares with you: your copy is kept like your other stories. If our team stops sharing it with you, your copy is deleted, with any changes you made to it; it also goes if the team deletes the original story. When you delete the copy or your account, your email is removed from the share.
  • Cloned voices: until you delete the voice, its story or your account; we then delete it at Google too. Google also deletes a voice that goes a year unused.
  • Consent records: with the character, its story or your account. If you confirmed the consent in a teammate's story, the record stays there when you delete your account, without your email.
  • Unreal Engine and Unity: each access token until you revoke it, it expires or you delete your account; a token the app revoked stays, revoked, until you delete your account. We keep your last 100 orders to the engines. Notes and renders sent from the engines are part of the story and are erased with it or with your account. Plugin downloads and installations are kept until you delete your account.
  • Purchases and invoices: for the time tax and commercial law require (in Spain, up to six years), even if you delete your account.
  • Withdrawals: for as long as consumer and tax law require (up to six years), even if you delete your account.
  • Data Processing Agreement: while the account or team it covers exists; it is deleted with the account or when the team is closed. The copy our team gets by email, up to 5 years after the agreement ends, the time to bring contractual claims.
  • Billing details: while the account or team exists; the invoices made with them are kept for the time tax law requires.
  • Messages from the companies' page: up to a year in our help desk and our email, or for as long as the contract they lead to lasts.
  • Free trial: its details go with your account. The hashes of the email and the card stay for 3 years after the trial, even if you delete your account, so a new account can't start a second trial.
  • Referral programme: your code and the invitations go with your account; the referrals of the people you invited stay without your name, for the programme's figures. The hash of the email of a person rewarded for being invited stays for 3 years, even if the account is deleted, so the reward isn't given twice.
  • Discount request: it goes with your account.
  • Teams: while the team exists. When you leave a team or your account is deleted, your email is removed from its members, reviewers and invitations, with your monthly limit and what you spent this month, and the stories you made in it stay with the team. When your account is deleted, your email is also removed from the history of the teams you were in: what you spent or bought stays, so the totals still add up, marked as made by a deleted account. When the owner closes the team or deletes their account, its stories go back to the members who made them, what's left in its wallet goes to the owner, and its history is erased.
  • Suggestions and feedback: until you delete your account, with their files and our answers.
  • Your memory across stories: until you delete it in Settings or delete your account. Turning it off keeps what it learned until you delete it.
  • Requests for more credits: until you delete your account.
  • Blog subscription: until you unsubscribe or delete your account. A subscription nobody confirms is deleted after 7 days.
  • Monthly news email: your choice, the link's code and the last month sent, until you delete your account.
  • Access requests that are not approved: up to 12 months.
  • Backups and logs: erased data disappears from our backups within 7 days. Technical logs are deleted after 30 days.
  • Data we must keep by law, for the period the law requires.

9. Your rights

You can access, correct or erase your data, object to or restrict its processing, and ask for a copy in a portable format. Write to hello@utopiadreams-vfx.com from your account's email address; we will reply within one month.

If you think we haven't handled your data properly, you can complain to the Spanish Data Protection Agency (www.aepd.es) or to the data protection authority of your country.

10. Security

All traffic is encrypted (HTTPS). Files are stored privately and are only shown through temporary signed links, passwords and the engines' access tokens are stored as hashes, and only authorized members of our team can access our Google Cloud project.

11. Cookies and local storage

We only use what the app needs to work:

  • Sign-in cookies (Auth.js), which keep your session open and protect forms.
  • The utopia-lang cookie, which remembers the language you choose for one year.
  • The utopia-story cookie, which says which of your stories is open, so the credits each generation uses are recorded under that story. It is deleted when you close the browser.
  • Your browser's local storage, for the theme, the AI models you choose, the progress of the guide and drafts. This data stays on your device.

When you import from Google Photos or Google Drive or upload to YouTube, the app loads Google's sign-in library (Google Identity Services) and, for Google Drive, the Google Picker, which may use Google cookies under Google's own policy. On the payment page (/pago), Stripe's payment form (Stripe.js, loaded from js.stripe.com) runs inside the page and may set Stripe cookies and read signals about your device and browser to prevent fraud, under the Stripe Privacy Policy. We don't use advertising or analytics cookies.

12. Minors

The app is intended for people aged 18 or over. We don't knowingly collect data from minors; if you think a minor has given us data, write to us and we will erase it.

13. Changes to this policy

If we change this policy, we will publish the new version on this page with its date and, if the changes are significant, we will let you know in the app or by email.