Privacy Policy
Last updated: 10 July 2026 · Applies to the dodast app and this website
The short version:
- Your music and library are never uploaded — dodast has no server and no cloud. The app never deletes your files; the only change it can make is a tag edit you save yourself, confirmed per file with Android's own permission prompt.
- No accounts, no ads, no selling or sharing of data for advertising. Ever.
- The internet is used for two things: artwork lookups you can see, and crash/usage diagnostics (Google Firebase) described below.
- Listening sessions sync directly between your devices on your local network — no server in the middle. That includes the music: the host device sends the current track straight to the devices that joined.
1. Who is responsible for dodast
dodast is developed and provided by Mohammad Khakpaki, an individual independent developer — not a company. For everything in this policy, I am the person responsible for your data, and the person you can write to:
Email: mohamad.khakpaki@gmail.com
2. Data that stays on your device
dodast is local-first. The following is stored in a private database and cache on your device, and nowhere else:
- Your library index — file locations and the tags read from your audio files (titles, artists, albums, durations, dates), plus file details for your videos (title, duration, resolution, size).
- Playlists you create, which can mix audio and video.
- Playback state — your queue, position, and settings, so the app can resume where you left off.
- Artwork and thumbnail cache — embedded art extracted from your audio files, video thumbnails generated locally from your video files, and images downloaded during artwork lookups.
This data is excluded from Android's cloud backup, is never uploaded anywhere, and is deleted when you clear the app's storage or uninstall the app. dodast never deletes or moves your music or video files. The one write it can perform is the tag editor (a song's Details → Edit tags): when you save, your edits are written into that file's own tags — on Android 10 and newer only after the system's per-file consent dialog — and nothing is ever written without you asking. The one thing that does travel between devices — the currently playing track during a listening session — goes only to devices you invite, and is described in section 4.
3. Artwork lookups over the internet
When a file has no embedded artwork, dodast looks the artwork up online during and after library scans. Three services are contacted, and what is sent to them is metadata from your own files' tags — never the files themselves:
- MusicBrainz — receives artist and album names (and related release details) to find standard music identifiers.
- Cover Art Archive (a joint project of MusicBrainz and the Internet Archive) — receives those identifiers and returns album covers.
- fanart.tv — receives MusicBrainz artist identifiers, together with the app's API key, and returns artist images.
Like any internet request, these lookups necessarily expose your IP address and standard HTTP metadata (such as the app's user-agent string) to the service being contacted. dodast sends no identifier of you or your device beyond that — there is no account and no tracking ID in these requests. Results (including "nothing found") are cached on your device so lookups are not repeated unnecessarily; misses are retried on later scans.
Each of these services processes requests under its own privacy policy, available on its website.
4. Listening sessions on your local network
dodast can keep playback in sync across devices on the same network. When you host or join a session:
- Your device advertises the session on your local network (via mDNS/Bonjour-style discovery) so other devices can find it. The advertisement includes a device/session name.
- If you show a QR code to let someone join, that code contains local connection details (such as your device's local network address). It is generated on your device.
- While in a session, devices exchange now-playing metadata (track titles, artists, timing) and playback commands directly with each other over your Wi-Fi.
- The audio itself travels device-to-device. To keep every device in perfect sync, the host sends the current track's audio directly to each joined device over your network. If the current item is a video, only its audio track is extracted and sent — the video image itself never leaves the host. The receiving device uses this only to play the session: the audio is prepared in memory for playback, is not added to that device's library, and no lasting copy is kept.
None of this traffic is routed through the internet or any server of mine — there is no such server. It stays on your local network, which also means it is only as private as that network: on a shared or public Wi-Fi, other people on the same network could observe session traffic (including the transferred audio). Leaving a session (or closing the app) stops all of it.
5. QR code scanning and in-app review (Google Play services)
Joining a session by QR code uses Google's code scanner, which runs inside Google Play services on your device — this is why dodast itself needs no camera permission. Scanning is processed on the device, and dodast receives only the decoded text of the code. Google Play services' own handling of data is governed by Google's Privacy Policy.
dodast may also occasionally invite you to rate it using Google Play's in-app review dialog. The dialog is shown and handled entirely by Google Play: dodast sends it no data about you, cannot see whether the dialog appeared, and never learns what (or whether) you answered — any rating you submit goes to Google Play under Google's Privacy Policy. dodast only keeps a local, on-device note of when it last asked, so it does not ask often.
6. Firebase services (Google)
dodast uses the following Firebase services, provided by Google LLC, starting from the first release that ships with them. If you are running an earlier build, none of this applies to it yet — and if a future release adds or removes a Firebase service, this policy will be updated at the same time.
- Crashlytics — when the app crashes, a report is sent containing the stack trace, device model and OS version, app version, state at the time of the crash, and a Crashlytics-generated installation identifier. Purpose: finding and fixing bugs.
- Google Analytics for Firebase — anonymous-by-design usage events (screens viewed, features used), an app-instance identifier, device and app metadata, and an approximate location derived from IP address. Purpose: understanding which features matter so development time goes to the right places.
- Firebase Performance Monitoring — automatic performance traces such as app start-up time, screen rendering, and network-request timing (including the addresses dodast requests, their response sizes, and whether they succeed), together with your device model, OS version, app version, an approximate location derived from IP address, and a Firebase installation identifier. Purpose: finding slow screens, dropped frames, and failing network calls so they can be fixed.
- Firebase Cloud Messaging — a push registration token for the app installation, used only to deliver notifications to the app.
- Firebase Remote Config — fetches configuration values (for example, feature flags) using the app's Firebase installation identifier.
This data is processed by Google on Google's infrastructure, which may be located outside your country. Details of what Firebase collects and for how long it is kept: Privacy and Security in Firebase and the Google Privacy Policy.
Diagnostics exist to make the app better, not to profile you: they are not used for advertising and are never sold or shared for advertising.
7. In-app purchases (RevenueCat)
dodast is free. A future release may add optional in-app purchases (for example, to unlock extra features) — none of this applies until that release ships, and buying anything will always be your choice. When it does ship, purchases will work like this:
- Payment is handled entirely by Google Play. Your payment method (card, balance, and so on) is processed by Google under the Google Privacy Policy. dodast and RevenueCat never see or store your card or payment details.
- To verify purchases and unlock or restore what you have bought across your devices, dodast uses RevenueCat (RevenueCat, Inc.). RevenueCat receives your purchase history (which products you bought and their purchase, renewal, or expiry state), the Google Play purchase token/receipt used to check the purchase, a RevenueCat app-user identifier generated for the installation (not your name or email), and standard device and app metadata (including an approximate location derived from IP address). Purpose: validating purchases, unlocking and restoring your entitlements, managing any subscriptions, and preventing fraud.
- RevenueCat processes this data on its own infrastructure, which may be outside your country, under the RevenueCat Privacy Policy. It is used to run purchases — not for advertising — and is never sold or shared for advertising. There is still no dodast account: the identifier ties to your purchases, not to your identity.
8. App permissions and why
| Permission (Android) | Why dodast asks for it |
|---|---|
| Music & audio (on Android 12 and older: read storage; on Android 9 and older, tag edits also use write storage) |
Scanning and playing the music files on your device. The app never deletes files; the only write is a tag edit you save, and on Android 10 and newer each file's edit goes through the system's own consent dialog. |
| Photos & videos (READ_MEDIA_VIDEO on Android 13+; read storage on older versions) |
Scanning and playing the video files on your device, and generating thumbnails locally. Requested separately from the music permission and only when you open the Videos tab. The app never deletes your videos. |
| Notifications | Showing the playback notification with play/pause/skip controls. |
| Internet, network & Wi-Fi state | Artwork lookups, Firebase diagnostics, and device-to-device session sync on your local network. |
| Foreground service (media playback), wake lock | Keeping music playing reliably with the screen off or the app in the background. Granted automatically; listed for transparency. |
dodast requests no location, no contacts, no microphone, and no camera permission (QR scanning happens inside Google Play services' own scanner, as described above).
9. What dodast never does
- Never uploads your music, videos, or your library index to the internet — the only thing that ever leaves your device during a listening session is audio, sent directly to devices you invite, on your own network.
- Never deletes your files, and never touches them behind your back — the only write dodast can perform is a tag edit you explicitly save, one file at a time.
- Never shows ads or uses advertising SDKs.
- Never sells your data, or shares it with anyone for advertising or marketing.
- Never requires an account or collects your name, email, or contacts.
10. Data retention and deletion
- On-device data (library, playlists, playback state, artwork cache) exists only on your device. Clear the app's storage or uninstall the app and it is gone.
- Firebase data is retained by Google according to the schedules described in Firebase's privacy documentation (crash reports and analytics events are kept for limited periods, then deleted or aggregated).
- Purchase data (once in-app purchases ship) is kept by Google Play and by RevenueCat for as long as needed to provide, restore, and account for your purchases, and for as long as tax, accounting, and consumer-protection law require.
- If you would like the diagnostics or purchase data associated with your device deleted, email me and I will handle the request against the Firebase and RevenueCat tools available to me.
11. This website
This site is a set of static pages hosted on GitHub Pages (GitHub, Inc.). It sets no cookies and runs no analytics or trackers of mine. As with any web host, GitHub may log standard technical data such as your IP address when serving the pages — see the GitHub Privacy Statement.
12. Children
dodast is not directed at children under 13 (or the equivalent minimum age in your country), and I do not knowingly collect personal data from children. If you believe a child has provided personal data through the app, contact me and I will delete it.
13. Your rights
Depending on where you live (for example under the GDPR or UK GDPR), you may have rights to access, correct, delete, or object to the processing of personal data concerning you, and to lodge a complaint with your local data-protection authority. Since dodast keeps almost everything on your device, most of these rights are literally in your hands — but for anything involving the services above, or any question at all, email me and I will help: mohamad.khakpaki@gmail.com.
14. Changes to this policy
When the app gains or loses a feature, library, or service that touches your data, this policy is updated to match, with a new "Last updated" date at the top. Material changes will also be called out in the app's release notes.
15. Contact
Mohammad Khakpaki · mohamad.khakpaki@gmail.com