Privacy Policy
Last updated: August 4, 2026
TrimPlayer is a podcast player that automatically detects and skips intros, ads, and outros. Auto-trim is powered by a backend service (TrimBrain) that needs to know which episodes you play in order to fingerprint them and serve trim points. This policy explains exactly what data leaves your device, why, who it goes to, and how to get it deleted. It covers the Android app, the web player at app.trimplayer.com, and the trimplayer.com website.
1. TL;DR
- The player itself needs no account. Install TrimPlayer, subscribe to shows, and auto-trim works without an email address, a name, or a sign-in. That is the default and it is the whole product.
- One optional feature does need an account: cross-device sync. If you want your subscriptions, queue and playback position to follow you between your phone, the web player and a Garmin watch, you create an account with an email address and a password (or sign in with Google, which gives us the email address on your Google account). Sync is off until you switch it on. If you never switch it on, we never have your email. Details in §4.
- We send an anonymous per-install identifier, the URLs of episodes you play, and your playback queue (each queued episode's feed URL, episode URL, GUID and position) to our TrimBrain backend so we can detect and serve auto-trim segments.
- We send anonymous skip telemetry (which detected segments you actually skipped) to measure how well auto-trim is working.
- Every feature is free — nothing is paywalled. If you choose to voluntarily support TrimPlayer, Google Play handles the payment; we receive only a purchase token that we exchange with Google to acknowledge your support, tied to your anonymous device identifier. It unlocks nothing.
- We use Firebase Analytics and Firebase Crashlytics in the app, and Google Analytics on the trimplayer.com website. Firebase Analytics is not content-free: when you start or finish an episode it sends the episode title and podcast title to Google. See §7.
- No location data, no contacts, no microphone, no camera. We do not use the Android advertising ID for anything and we run no ad networks — but the Firebase Analytics SDK adds the advertising-ID permission to the app and can collect it by default. See §7.
- Our servers keep request logs (including your IP address) as a normal operational matter. See §8.
- Email trimplayerapp@gmail.com to request deletion of server-side data tied to your device or your account — see §9 for exactly what that covers.
2. Data that stays on your device
The following lives only on your device. It never leaves it unless you initiate an OPML export or backup, or you turn on optional cross-device sync (§4), which uploads the items marked below:
- Your list of podcast subscriptions — uploaded if you turn on sync
- Your playback queue, and any playlists you create along with the names you give them — uploaded if you turn on sync. Note that your queue is sent to the backend anyway, without an account, for fingerprinting; see §3.
- Playback position and per-episode state (played, starred, rating, hidden), and per-podcast playback speed — uploaded if you turn on sync
- Bookmarks and clips, including any label or note you type on them — uploaded if you turn on sync. This is free text you wrote, so it is worth calling out separately: with sync on, it is stored on our server.
- Downloaded episode audio — never uploaded, with or without sync
- Statistics shown in the Statistics screen — never uploaded
- Your app settings — never uploaded
3. Data we send to our TrimBrain backend
The TrimBrain backend (hosted at api.trimplayer.com on AWS infrastructure in the United States) needs certain data to perform auto-trim. We send the minimum required:
- Anonymous client identifier: A random UUID generated on first launch and stored on your device. It is not derived from your phone number, email, advertising ID, hardware ID, or any other personally identifying information. It exists only so the backend can correlate the queries and telemetry from a single install. If — and only if — you sign in for cross-device sync, that identifier is linked to your account, so from that point on the data below is associated with your email address rather than standing alone. If you never sign in, it is never linked. Once it is linked, that link is undone by unlinking the device or by deleting the account — signing out on the device alone does not remove it.
- Episode URL and GUID of episodes you play, so the backend can return trim points for that specific episode.
- Your playback queue. Not just the shows — for each episode in the queue we send its feed URL, its episode URL, its GUID and its position in the queue, and the backend keeps that list against your anonymous client identifier, replacing it whenever your queue changes. This is so it can fingerprint upcoming episodes before you reach them, which is why it needs the specific episodes and their order.
- Skip events: when an auto-detected segment was skipped, how long it was, and whether you reversed the skip. Used to improve detection quality. Sent alongside these is a typical playback speed figure, which drives the community time-saved comparison.
- Support records: if you choose to voluntarily support TrimPlayer, an entitlement row keyed to your anonymous client identifier and the Google Play purchase token is created on the backend so we can confirm and acknowledge your support without you signing in. It does not unlock anything — every feature is already free.
- Auto-trim usage counter: we record which episodes you used auto-trim on this month. Auto-trim is never withheld — this count only drives an occasional, dismissible nudge inviting you to chip in once you've used it a lot.
We do not upload audio from your device. We do not collect your IP-derived location, contacts, photos, or microphone input.
4. Optional account and cross-device sync
TrimPlayer works fully without an account, and nothing in the app is withheld if you never make one. There is exactly one reason to create one: keeping your library in step across devices — the Android app, the web player at app.trimplayer.com, and a linked Garmin watch.
What creating an account involves. You give us an email address and a password, or you sign in with Google, in which case Google gives us the verified email address on that account. We store the email address and a hashed password — never the password itself. We do not ask for your name, and Google sign-in gives us the email address only. We do not send marketing email; the only email we would ever send to that address is a password reset you asked for.
What sync uploads. While you are signed in, the app and the web player exchange a delta of your library with the backend. In full, that is:
- Your subscriptions — feed URLs and titles.
- Your queue and playlists — episode URLs, GUIDs and their order, and the names you gave your playlists, which are free text you typed.
- Your playback progress — position, duration, and the played, starred, rating and hidden flags.
- Your per-podcast playback speed.
- Your bookmarks and clips — the timestamp, the end timestamp for a clip, and the label and the note you typed on them. Notes are free text you wrote and are stored on our server verbatim. If you would rather they never left the device, do not turn on sync.
That list is exhaustive as of the date at the top of this page. Sync does not include downloaded audio, your Statistics screen, or your app settings.
Linked devices. A Garmin watch is linked with a short code shown on the watch and approved in the app; the link binds that device to your account so it can fetch your queue. You can see your linked devices and unlink any of them from the app, which also deletes that device's link to your account. Unlinking revokes every sign-in session on the account except the one you unlinked from, so your other devices — including ones you are keeping — will ask you to sign in again.
If you never sign in, none of the above happens: no account row exists, we hold no email address for you, and your library never leaves your device except as described in §3.
5. In-app purchases (Google Play Billing)
Every feature in TrimPlayer is free for everyone. If you choose to support the project with a voluntary subscription, the payment is processed by Google Play Billing. We never see your credit card or payment details. Google sends us a purchase token, which we exchange with Google's Play Developer API to confirm and acknowledge the subscription. We store the purchase token alongside your anonymous client identifier so we can show your "thank you for supporting" state on subsequent app launches. Supporting is entirely optional and unlocks nothing. Google's handling of your payment data is governed by the Google Privacy Policy.
6. Connections to podcast hosts
When you stream or download an episode, your device connects directly to the podcast's hosting provider (Megaphone, Libsyn, etc.). These providers will see your IP address and user-agent and may log them according to their own policies. TrimPlayer has no control over what podcast hosts log.
7. Third-party services we use
- Amazon Web Services — hosts the TrimBrain backend and database (US region).
- Google Play Billing — processes voluntary support subscriptions.
- Google Play Developer API — used server-side to confirm and acknowledge your support purchase token.
- Google Sign-In (optional) — if you choose to sign in with Google instead of creating a password, Google verifies your identity and passes us the verified email address on your Google account. Only used if you tap that button. Governed by the Google Privacy Policy.
- Google Analytics (GA4, via
gtag.js) — runs on the trimplayer.com website, including this page. It records page views, how far you scroll, and clicks on our Play Store and call-to-action links, so we can tell which pages actually help people. It is not connected to your app's client identifier or to any account. Governed by the Google Privacy Policy. - Firebase Analytics (Google) — collects app-usage events, identified by a Firebase-generated install ID rather than your name or email. These events are not all content-free, and we would rather say so than let you assume otherwise. When you start an episode we send an
episode_playedevent containing the episode title and the podcast title (each truncated to 100 characters), its duration, and whether you were on Android Auto; when you finish one we sendepisode_completedwith the same two titles and how far through you got. In effect, Google receives a record of what you listen to on this install. The remaining events are counts and labels without content — auto-trim skips and missed segments, playback-speed changes, library imports and exports by source, and onboarding steps. Governed by the Google Privacy Policy. - Firebase Crashlytics (Google) — collects crash reports when the app crashes: stack trace, device model, OS version, app version, and basic state at the time of the crash. Used to diagnose and fix bugs. Crash reports themselves carry no podcast titles, audio or listening history — but that is a statement about crash reports only; the Firebase Analytics bullet above is where episode and podcast titles are sent. Same Google Privacy Policy applies.
- Google Fonts — the trimplayer.com website loads the Inter typeface from
fonts.googleapis.comandfonts.gstatic.com. Your browser therefore makes a request to Google when you view a page here, which discloses your IP address and user-agent to them. Same Google Privacy Policy applies.
We do not use Facebook SDK, advertising networks, attribution SDKs, or any analytics provider other than the Google services listed above.
The Android advertising ID. We do not use advertising IDs for anything, we run no ads, and we sell and share nothing. However, honesty about a dependency rather than about our intentions: the Firebase Analytics SDK contributes the com.google.android.gms.permission.AD_ID permission to the app, and it can collect the Android advertising ID by default. The app does not currently ship the setting that switches that collection off. If you want to reset or delete that identifier regardless of any app, Android lets you do so under Settings → Privacy → Ads.
8. Data retention
Database records. Records tied to your client identifier — episode telemetry, skip events, your queue snapshot, support entitlement and the auto-trim usage counter — are retained while your install remains active. Cached audio downloaded for fingerprinting is automatically evicted on a rolling basis (typically within days). If you created an account, your account record — email address, hashed password, and the synced library described in §4 — is retained until you ask us to delete it.
Server request logs. Separately from the database, our API writes one log line for every request it handles, to the server's own log and to AWS CloudWatch. Each line contains the method, the path, the query string, the response status, how long it took, your IP address and your user-agent. This matters more than it sounds: the auto-trim lookup passes the episode URL as a query parameter, so these logs amount to a record of episodes requested against an IP address and a device type. They exist for debugging and abuse investigation. They are not keyed to your client identifier and cannot be searched by it, which also means we cannot pick your entries out of them in response to a deletion request — see §9.
Uninstalling the app does not automatically delete server-side records, because the backend has no way to know an uninstall happened.
9. Your rights (GDPR, CCPA)
If you have never created an account, the only personal data we hold is tied to your anonymous client identifier. If you have created one, we also hold your email address. Either way you have the following rights over that data:
- Access: request a copy of the data we have for your identifier.
- Deletion: request we delete it.
- Portability: receive the data in a machine-readable format.
To exercise any of these, email trimplayerapp@gmail.com. If you have an account, write from the address on it. If you don't — which is the normal case — we have no name or email to look you up by, so include the anonymous client identifier, which you can find under Settings → About → Diagnostics.
What a deletion request actually covers, precisely. A vague promise here would be worth nothing, so:
- Deleting your account removes the account record and everything synced to it — subscriptions, queue, playlists, progress, per-podcast preferences, bookmarks and their notes, and your device links.
- Data tied to your device's anonymous client identifier is separate and survives an account deletion, because it is keyed to the device rather than the account. Deleting it is a second request, and the identifier is what we need in order to do it. On request we delete the telemetry events, queue snapshot, support entitlement and auto-trim usage rows held against it. This is done by hand rather than by a self-service button, so please allow a few days.
- Server request logs are the exception (§8). They are not indexed by client identifier or by account, so we cannot extract and delete an individual's entries from them. They age out with the log rather than on request. We would rather state that limit than imply a completeness we can't deliver.
- Data held by Google through Firebase Analytics, Crashlytics, Google Analytics or Play Billing is subject to Google's own controls, not ours.
10. App permissions
TrimPlayer requests:
- Internet — to download podcasts and talk to the TrimBrain backend.
- Foreground service — to keep playback running while the app is backgrounded.
- Post notifications (Android 13+) — for the playback notification.
- Storage — to save downloaded episodes for offline listening.
- Billing — to process voluntary support subscriptions through Google Play.
11. Children
TrimPlayer is not directed at children under 13 and we do not knowingly collect data from them. If you believe a child has used the app, contact us and we will delete any associated server-side records.
12. Changes to this policy
We may update this policy as the app evolves. Significant changes will be announced in the app's release notes. The "Last updated" date at the top reflects the most recent revision.
13. Contact
For any privacy question or data request: trimplayerapp@gmail.com.