Stream My Drone

Privacy Policy

Last Updated:

Introduction

Stream My Drone for iPhone, iPad and Android receives the picture that DJI Fly sends from your DJI remote controller over your local network, and forwards it to the streaming platforms you choose. This policy explains what the app accesses, stores, uses and sends when providing these features. The developer does not operate a Stream My Drone account service or a backend that receives your account data or broadcasts.

In short:

1. What Stays on Your Device

The app keeps the following on your device only. None of it is sent to us.

The drone's picture is not recorded or stored by the app.

2. Where Your Video Goes

What those platforms do with your broadcast is covered by their own privacy policies. DJI Fly and your DJI equipment are covered by DJI's privacy policy. Stream My Drone is not affiliated with DJI or with any streaming platform.

3. Optional Google and YouTube Account Connection

Android, iPhone and iPad versions that offer Connect YouTube account use YouTube API Services. This connection is optional: you can use manually configured stream keys and other streaming destinations without connecting a Google account.

When you choose to connect, Google's own authorization interface asks you to select an account and grant permission. Stream My Drone does not receive or store your Google password. The app requests:

The YouTube permission Google displays is broader than these particular operations and includes managing or deleting videos, ratings, comments and captions. Stream My Drone uses it for the broadcast operations described here; it does not read or manage your ratings, comments or captions, and does not delete unrelated videos.

Your broadcast title, selected visibility and made-for-kids setting are sent directly to YouTube when the app prepares your broadcast. Account, channel, stream and broadcast identifiers are sent to Google or YouTube as needed to authorize and manage that connection. Broadcasts are configured to start when YouTube receives video and to stop automatically when appropriate; the app also requests completion when you end the broadcast. YouTube's processing of your account data and video, including any saved replay, is governed by its own settings and policies.

Credentials on Android: Google Play services manages authorization and its token cache. The app uses short-lived OAuth access tokens in memory for direct HTTPS requests to Google and YouTube. It does not write OAuth access tokens to its own files or logs, and does not request or store a refresh token. YouTube stream keys use Android Keystore encryption. No Google account data, access tokens, stream keys or broadcasts are sent to a developer-operated server.

Credentials on iPhone and iPad: the official Google Sign-In SDK manages sign-in and token refresh. It stores its authorization state, including refresh credentials, in the device Keychain. The app uses the resulting access token in memory for HTTPS requests and does not copy OAuth tokens into its own files or logs. YouTube stream keys use separate, device-only Keychain items. Disconnecting the Google account removes the SDK sign-in credentials as well as revoking its authorization.

Google SDK data practices: Google Sign-In may collect the user identifier for consent records and the IP address for fraud prevention and approximate location. Its bundled privacy manifest also declares account/contact information, identifiers, other data and usage data for app functionality or analytics. These are Google SDK disclosures; Stream My Drone does not request a phone-number scope, use advertising tracking, or receive this information on a developer server. See Google’s App Store data disclosure guidance and the Google Privacy Policy. Store privacy disclosures must account for the SDK version included in the app.

Use and sharing: Google account data is used only for the account connection and broadcast features you request. We do not sell it, use it for advertising or tracking, send it to data brokers, or use it to train AI models. Its use is limited to these user-facing features in accordance with the Google API Services User Data Policy, including the Limited Use requirements.

Google and YouTube handle data under the Google Privacy Policy. Your use of YouTube features is also subject to the YouTube Terms of Service. You can revoke the app's access at any time in Google Account permissions. The local deletion and disconnect options are described in section 6 below.

Optional Facebook Account Connection

Versions that offer Connect Facebook account use the Facebook Graph API's Live Video features. This connection is optional: you can use a manually entered Facebook stream key, or any other destination, without connecting a Facebook account.

When you choose to connect, Facebook's own login page, opened in a secure browser window (Chrome Custom Tabs on Android, the system web authentication window on iPhone and iPad), asks you to log in and grant permission. Stream My Drone does not see or store your Facebook password. The app requests:

Your broadcast title and, for your profile, the audience you selected (Only me, Friends or Public) are sent directly to Facebook when the app prepares the live video. Page live videos are public. The app does not read your posts, friends, messages, Page insights or comments, and does not publish anything other than the live videos you start. Facebook's processing of your account data and video, including the saved replay, is governed by its own settings and policies.

Credentials: Facebook returns an access token to the app when you finish logging in. On Android it is encrypted with a key held by the Android Keystore and kept in private storage excluded from backup; on iPhone and iPad it is kept in the Keychain, on this device only and never synced. The app uses it, and a Page's access when broadcasting to a Page, for direct HTTPS requests to Facebook, and never writes tokens to logs. Page access and stream addresses are never written to storage. No Facebook account data, access tokens, stream addresses or broadcasts are sent to a developer-operated server.

No Facebook SDK: the app does not include Facebook's SDK, so it sends no app events, advertising identifiers or analytics to Facebook. Facebook's login page and the broadcast pages you open from the app run in the browser and communicate with Facebook directly, which receives information such as your IP address and browser details. See the Meta Privacy Policy.

Use and sharing: Facebook account data is used only for the account connection and live video features you request. We do not sell it, use it for advertising or tracking, or send it to data brokers. You can remove the app's access at any time in Facebook under Settings & privacy → Settings → Apps and websites. How to delete the app's local Facebook data is described in section 6.

Instagram Setup on Android

The optional Instagram connection opens Instagram's own website inside an app window using Android WebView in desktop mode. You complete login and two-factor authentication on Instagram's page (or an allowed Facebook login page). The current site host is shown in the window. The app does not copy your password, login cookies or authentication tokens into its native profile files, and does not request Instagram API account permissions. The website and WebView engine may retain web login/session data in the app's private WebView storage; this is separate from a normal external browser's session.

When Live Producer displays the streaming server address and key, a scoped script reads the visible connection fields on Instagram's page. It does not inspect login, challenge or two-factor forms. The native app validates the site, current editor request, server and key before saving the connection automatically. The saved stream key uses the Android Keystore encryption described above. Raw keys and web page responses are not included in diagnostic messages or sent to a developer server. The window stays in memory when hidden so you can return to Instagram's preview and live controls. Its Clear session control clears local WebView cookies and web storage; this does not revoke any Instagram API permission, since none is requested. Uninstalling removes this app's WebView files.

WebView uses HTTPS without bypassing certificate errors, does not use an app-native Javascript bridge, and does not grant the website camera, microphone, local file or content-provider access. Web debugging and HTTP caching are disabled. Instagram controls the web page and handles the information submitted to it under its own policies. Instagram page changes or login restrictions may affect this feature.

A manual fallback can open Instagram in an external browser. When you explicitly tap the server-address or stream-key Paste button, the app reads a single plain-text clipboard item and validates it for that field. It does not monitor the clipboard in the background or automatically read it when you return. After a successful key paste, the app clears the clipboard if it still contains that key. Clipboard contents are not sent to the developer; Android and the browser may separately manage clipboard previews/history under their own settings.

The app may open Instagram's visible Create and Live video setup controls to help you reach Live Producer. Before an Android broadcast, you can keep, clear or replace the last confirmed title. The confirmed title is sent directly to connected YouTube and Instagram destinations. Manual stream-key destinations require title changes on their own platforms. Instagram setup uses your chosen title; if an existing draft has a different or unverified title, a fresh setup is prepared before forwarding. A title choice can replace the setup field once, while later edits on Instagram remain yours. Outside an explicit start request, the helper only fills an empty setup field. Only boolean title/audience checks are returned with the connection; the page title is not included in diagnostic logs. The native confirmation also shows the Instagram audience (Practice on first use) and remembers your last confirmed choice locally. Connect prepares a draft using the last title and audience without publishing or asking for them again. Go live shows the title and audience in one native confirmation. A measured page prepares the title, applies that audience and presses Next behind the app. The setup helper verifies the selected audience and title for the current request before saving the connection; it never fills or submits login details. A cancellable progress indicator is shown while preparing. Instagram opens for sign-in, verification or a setup problem, then preparation resumes automatically. Cancel discards the pending start. Missing controls time out after 60 seconds; ambiguous controls are not guessed. Opening Connect alone does not publish. When you explicitly press Go live in the app, it waits for video forwarding and an enabled Instagram Go live control, then clicks that control once on the retained page without opening the window. Your selected audience, including Practice, is preserved. The app checks for Instagram's end-live control to confirm the start and reports when confirmation fails. Video delivery and platform-confirmed Live are shown separately. While the connected destination is active, read-only status checks continue after an automatic start times out, so a broadcast you start manually can also be recognized. These checks never re-arm an expired start or click Go live. Missing or failed checks clear the previous confirmation. Readonly fields explicitly labelled as the Producer stream key are distinguished from login-password inputs without reading their values; unknown or editable password fields still block the start/end helpers. The one-time start commit also expires on the page itself. A stopped, expired or replaced session cancels the pending start; it is not restored after process death. When you explicitly end a connected Instagram broadcast in the app or its notification, the app attempts Instagram's End and confirmation controls on the retained page before stopping its video input. This attempt is limited to eight seconds; if the session is unavailable, expired or the result cannot be confirmed, the input still stops and the app reports that Instagram may need manual attention. No replay deletion or sharing is automated. After a confirmed end, the old connection is invalidated for the next broadcast. You can reopen the Instagram window to check the result. The account must have access to Live Producer.

4. Device Permissions

The app does not use your camera, microphone, location, contacts or photo library. When you pick a test video, the system's own picker gives the app only the video you chose.

5. Children's Privacy

Stream My Drone is not directed at children under 13. The developer does not operate a service that receives personal data from children. The optional Google and YouTube connection is subject to Google's account and YouTube's age and live-streaming requirements, and the optional Facebook connection to Facebook's age and live video requirements. The broadcast's made-for-kids setting describes its intended audience; it does not authorize a child to use an account or bypass those requirements.

6. Retention, Disconnecting and Deleting Your Data

The developer has no server-side copy of your account or broadcast data to access, export or delete. For questions about the app's privacy practices or deleting local information, contact the address below; Google, YouTube and Facebook control data held by their services.

7. Changes to This Policy

If the app's handling of information changes, this policy will be updated and the "Last Updated" date above will change.

8. Contact Us

If you have questions about this Privacy Policy:

Email: tanerozel47@gmail.com