DuoCapture Privacy Policy
This Privacy Policy explains what information the DuoCapture app ("DuoCapture", "the app") collects, why, how long it is kept, who processes it, and the choices and rights you have. DuoCapture is developed and operated by Dzung Le ("we", "us"), an individual developer based in Vietnam. We are the controller of the personal data described here.
Contact: dzungle2903@gmail.com
- Your recordings stay on your device. Videos, audio, screen and camera images, and captions are never uploaded to us or to anyone else.
- Crash reports (Firebase Crashlytics) are on by default so we can fix crashes. You can turn them off at any time.
- Usage and performance statistics (Google Analytics for Firebase, Firebase Performance Monitoring) are collected only if you agree, and you can withdraw consent at any time.
- No advertising, no sale or "sharing" of personal information, no Advertising ID, and no location permission.
1. What stays on your device
DuoCapture records your screen, camera and audio and produces videos on your device. The following is processed locally and is never transmitted by the app to us or to any third party:
- video, audio, screen content and camera images you record;
- caption and title-card text you type;
- file names, file paths and gallery (media) identifiers.
Finished videos are saved to your device's gallery. Temporary source files and a session history are kept in the app's private storage so the built-in editor can work. Videos leave your device only if you share them yourself using Android or another app, in which case that app's privacy policy applies.
2. Device permissions
- Screen capture (MediaProjection): starts only after you tap record and approve Android's system dialog for that session.
- Camera: used for preview and camera recording modes.
- Microphone: used when you choose to record your voice; Android also requires it to capture audio played by other apps.
- Notifications: show recording status with pause and stop controls.
- Display over other apps: optional and off by default; used for the floating camera bubble and control menu. These overlays may appear in full-screen recordings.
- Internet and network state: used only to send crash reports and, if you consent, usage and performance statistics to Google Firebase.
The app does not request location, contacts, SMS, call log or account permissions.
3. Information we collect
All information below is collected automatically from your device through Google Firebase software development kits (SDKs) built into the app. We do not ask for your name, email address or account.
3.1 Crash reports — Firebase Crashlytics (on by default)
When the app crashes, stops responding (ANR) or hits a recording error, a report may include:
- technical error details and stack traces (including native crashes);
- device model, Android version, app version, and device state at the time (for example free memory and orientation);
- a Crashlytics installation identifier and a Firebase installation ID;
- recording context: the lifecycle steps leading to the error (such as "start tapped", "recording started", "stop tapped") and technical settings such as recording mode, quality, target frame rate, audio source type, camera lens, video encoder name and graphics chip (GPU) name.
3.2 Usage statistics — Google Analytics for Firebase (only with consent)
- app interaction events: recording started or failed, recording stopped, recording mode and quality, target and achieved frame rate, duration range, number of output files, export success, permission request results, and editor usage;
- device characteristics: device model, Android version, app version, language, display refresh rate, and whether the device supports two cameras at once;
- an app instance identifier and Firebase installation ID;
- install source information from Google Play (Install Referrer), for example whether the app was installed from the Play Store;
- automatically collected events such as first open, session start and app updates.
3.3 Performance data — Firebase Performance Monitoring (only with consent)
- app start-up time, screen rendering, CPU and memory usage;
- custom timings: how long starting a recording, a recording session and exporting take, with frame counts and frame rates;
- device characteristics and a Firebase installation ID.
3.4 IP address and approximate location
Like any internet service, Firebase receives your device's IP address when data is sent. Firebase uses it to derive an approximate location (such as country or region), for example to show where performance issues occur. The app never accesses precise location.
3.5 Support emails
If you email us, we receive your email address and the content of your message, and use them only to respond.
3.6 Categories of personal information (US state laws)
| Category | Examples | Collected | Disclosed to |
|---|---|---|---|
| Identifiers | Firebase installation ID, app instance ID, Crashlytics installation ID, IP address; email address if you contact us | Yes | Google (service provider) |
| Internet or other electronic network activity | App interaction events, crash logs, performance timings, install source | Yes (statistics only with consent) | Google (service provider) |
| Geolocation data | Approximate location derived from IP address; no precise location | Approximate only | Google (service provider) |
| Audio, electronic or visual information | Your recordings | No — stays on your device | — |
| Sensitive personal information | — | No | — |
| Commercial, financial, biometric, health, employment or education information | — | No | — |
4. Purposes and legal bases
| Processing | Purpose | Legal basis (EEA/UK GDPR) |
|---|---|---|
| Crash reports (Crashlytics) | Detect, diagnose and fix crashes and recording failures; keep the app stable and secure | Our legitimate interest in providing a working, secure app (Art. 6(1)(f)). You can object at any time by turning crash reports off. |
| Usage statistics (Analytics) | Understand which features and settings are used so we can improve them | Your consent (Art. 6(1)(a)), which you can withdraw at any time |
| Performance data (Performance Monitoring) | Measure start-up, recording and export speed on different devices | Your consent (Art. 6(1)(a)), which you can withdraw at any time |
| Support emails and rights requests | Respond to you and meet our legal obligations | Legitimate interest in responding (Art. 6(1)(f)); legal obligation (Art. 6(1)(c)) |
We do not use your information for advertising, profiling that produces legal or similarly significant effects, or automated decision-making. Providing this information is not required to use the app: you can record and export videos with crash reports and statistics turned off.
5. Service providers
We use Google Firebase (Crashlytics, Google Analytics for Firebase, Performance Monitoring, and the supporting Firebase Installations, Sessions and Remote Config services), provided by Google LLC and its affiliates. Google acts as our data processor under the GDPR and as our service provider under the CCPA/CPRA, under the Firebase Data Processing and Security Terms. See Privacy and Security in Firebase.
We do not sell personal information and do not "share" it for cross-context behavioral advertising, as those terms are defined by US state privacy laws. We have disabled Advertising ID collection and deny advertising storage, ad user data and ad personalization consent signals in the app. We may disclose information if required by law or to protect our rights, users or the public.
6. International data transfers
Firebase may process and store data wherever Google or its sub-processors maintain facilities, including the United States. Google participates in the EU-U.S. Data Privacy Framework, the UK Extension to it and the Swiss-U.S. Data Privacy Framework, and offers Standard Contractual Clauses for Firebase. We access Firebase data from Vietnam. Where data is transferred out of the EEA, UK or Switzerland, these mechanisms are used to protect it.
7. Retention
- Crash reports: Crashlytics keeps crash stack traces and associated identifiers for 90 days, then begins deleting them from live and backup systems.
- Performance data: Performance Monitoring keeps IP-associated events for 30 days and installation-associated or de-identified data for 60 days, then begins deleting them.
- Usage statistics: Google Analytics event-level data is kept for no more than 14 months and then deleted automatically; aggregated, non-identifying reports may be kept longer.
- Firebase installation IDs: kept until deletion is requested; after deletion they are removed from live and backup systems within 180 days.
- On-device data: kept until you delete it in the app, delete the videos from your gallery, clear the app's data, or uninstall the app.
- Support emails: kept as long as needed to handle your request, and then deleted.
8. Your choices in the app
The app's interface is currently in Vietnamese; the original labels are shown in parentheses.
- Crash reports (Báo cáo lỗi): Settings → Privacy & permissions (Cài đặt → Quyền riêng tư & quyền). Turning it off also asks the SDK to delete unsent reports on the device. Reports already sent are not recalled; ask us to delete them (see below).
- Usage & performance statistics (Thống kê sử dụng & hiệu năng): off until you agree in the first-launch prompt; change it any time on the same screen. Withdrawing consent stops future collection and discards measurements in progress; it does not affect processing before withdrawal.
- Reset analytics data on this device (Đặt lại dữ liệu phân tích trên máy): clears local Analytics data and resets the app instance identifier.
- Delete drafts and in-app history (Xoá bản nháp và lịch sử trong app): removes temporary source files and session history. Videos already in your gallery are not affected.
- Android permissions: you can revoke camera, microphone, notification and overlay permissions in Android settings at any time.
9. Your rights in the EEA, UK and Switzerland
Subject to applicable law, you have the right to:
- access your personal data and receive a copy;
- have inaccurate data corrected;
- have your data erased;
- restrict processing;
- data portability;
- object to processing based on legitimate interests, including crash reporting;
- withdraw consent at any time, without affecting processing carried out before withdrawal;
- lodge a complaint with your local data protection supervisory authority.
Because we do not collect your name or email through the app, we can only locate data linked to your installation. To help us find it, tell us your phone model, the approximate dates you used the app, and, if possible, the app instance ID. Never send us your recordings. We respond within one month, which may be extended where the law allows.
10. Rights for US residents
Depending on your state of residence (for example California, Colorado, Connecticut, Virginia, Utah, Texas or Oregon), you may have the right to:
- know or access the categories and specific pieces of personal information we collect, and the purposes and recipients described in this policy;
- delete personal information;
- correct inaccurate personal information;
- obtain a portable copy;
- opt out of the sale of personal information, "sharing" for cross-context behavioral advertising, targeted advertising and profiling — we do none of these;
- limit the use of sensitive personal information — we do not collect it;
- not be discriminated against for exercising your rights.
To make a request, email dzungle2903@gmail.com. We will verify the request using the device information described in section 9 and respond within 45 days, which may be extended as permitted by law. You may use an authorized agent, who must provide proof of authorization. If we decline your request, you may appeal by replying to our decision with the subject "Appeal"; if the appeal is denied, you may contact your state attorney general.
The app does not track you across other companies' apps or websites, so browser "Do Not Track" signals do not apply to it.
11. Other countries
If you live elsewhere (for example Brazil under the LGPD, Canada, Australia, Japan, South Korea, India or Vietnam), you may have similar rights to access, correct, delete or port your data and to withdraw consent. Contact us and we will honor requests as required by the laws that apply to you.
12. Security
Data sent to Firebase is encrypted in transit using TLS. Our access to the Firebase console is protected by account security controls. Recordings remain in your device's storage, protected by Android's app sandbox and your device security. No method of transmission or storage is completely secure, but we limit collection to what is described here.
13. Children
DuoCapture is not directed to children under 13, or under 16 where local law requires a higher age for consent. We do not knowingly collect personal information from children. If you believe a child has provided data through the app, contact us and we will delete it.
14. Changes to this policy
If the app's features or data practices change, we will update this policy before the corresponding release and change the dates at the top. Where changes require your consent, we will ask for it in the app.
15. Contact
Dzung Le
Email: dzungle2903@gmail.com
This English version is the governing version of this policy. A Vietnamese translation is provided for convenience.