Podsnap Privacy Policy

Last updated: 2026-10-20.

Podsnap (formerly Skipper) is a podcast player that skips ads. It is built and run by one person. This policy says what the app and its companion server actually do with data, in plain words.

What the server stores

Five kinds of data, in plain terms: transcripts of episodes (text and timing, shared by episode, not by you), skip events (when and where in an episode a skip happened, so detection can be checked and improved), device identifiers and device details (a random ID that identifies an install; so the free episodes cannot be reset by reinstalling, a one-way hash of your phone's Android ID, or on iPhone a free-trial record tied to Apple's DeviceCheck; plus the phone's model and settings, its IP addresses and approximate location, crash reports and download speeds; see below), your library (what you subscribe to and where you are in it, kept for you alone, if you sign in), and your subscription status. The first three carry no name; the last two are tied to the account you sign in with and shared with nobody.

What Podsnap collects

Account identity. Signing in with Google (or, on iPhone, with Apple) is required to subscribe to Podsnap Plus and to carry your library between phones. Everything else, including transcription of new episodes, works without it, and counts against the same 30 free episodes. The server verifies the sign-in token and stores your account ID and email address (with Apple, the email may be a private relay address Apple creates), used to meter free transcriptions and to check subscription status. The first time you sign in with Apple, Apple may also pass your name, which is stored as the account's display name. Nothing else from your Google or Apple account is accessed. Without signing in you can play, stream and download everything, and ad-skipping counts against the same 30 free episodes as it would signed in (see "The subscription").

Listening activity sent to the server. When an episode is transcribed or its ad segments are fetched, the app sends the podcast feed URL, episode identifier, the episode's audio URL, and audio duration. The server fetches the episode audio from its public URL (or receives your copy of it), transcribes it, and stores the transcript and detected ad segments. Transcripts and ad segments are shared: any Podsnap user who plays the same episode benefits from them. They are keyed to the episode, never to you.

Skip events. When a skip happens — automatic or by your own mark — the app sends where in the episode it happened. This is stored keyed to the episode and the random device ID, not to your name or email, and is used to check and improve ad detection.

Listening positions. As you play, the app sends which stretches of an episode you listened to and at what speed, keyed to the episode and the random device ID and, if you are signed in, your account. This powers your listening stats and tells the server which transcripts people actually use. It is never the audio, and it carries no name or email unless you sign in.

Device identifiers, and what they are for. Three, each used for the same two things — counting your free episodes, and stopping that count from being reset by deleting and reinstalling the app (fraud prevention):

None of these three is used for advertising or tracking, sold, or shared, and none identifies you by name. In particular, none of them is ever sent to Meta (see "Advertising measurement with Meta"). No permission prompt is involved.

If the app says your free episodes were already used on this device. On iPhone, that means Apple's flag says a free trial started on this device and the key that would recover it is gone — for example, a phone bought second-hand, or restored without its Keychain. Email the address at the end of this page with the code the app shows, and the free episodes will be reset. Nobody is accused of anything by this; it is only a count.

Device details. With each request the app sends a short description of the phone: the platform and its version (for example Android 16), the make and model, the Podsnap version, the language setting, and the phone's time zone. The server keeps the latest of these for each install. They are used to fix problems that only happen on some phones and to see which phones Podsnap needs to support. When you play an episode, the app also reports which kind of file it is playing (a download, a finished stream cache, or a stream), that file's size and duration, and the first 12 characters of a one-way hash of the file. That short fingerprint is enough to check that an episode's captions were made from the same audio you are hearing.

IP addresses and approximate location. Like any server on the internet, Podsnap's server sees the IP address each request comes from. It keeps up to 50 of the public IP addresses an install has used, the most recent, with when each was first and last seen, and uses them to limit abuse (rate limits) and to understand where listeners are. It also keeps a daily count of some requests for each IP address, to limit abuse. Cloudflare, which carries traffic to the server, looks up the approximate location of that address — country, region and city — and the server stores those three with the install. That is all the location Podsnap has: it never uses your phone's GPS, never asks for a location permission, and does not store the latitude, longitude or postal code Cloudflare can estimate.

Crash and error reports. When the app hits an error or crashes, it sends the error message, where in the app's code it happened, the app version, the phone model and the install ID, so the bug can be found and fixed.

Download performance. When the app downloads an episode, it reports which podcast host served it, the file's size, how long it took, how many times it stalled or resumed, how it ended and whether the phone was on Wi-Fi or mobile data, with the install ID. This is used to make downloads faster.

Feedback you send. Settings → Send feedback sends your message to the server, with your install ID, the app version and the phone model. If an episode was playing, it also sends a short record of how captions were drawn over the last two minutes: the episode and the show's feed address, when each caption line appeared and where in the episode the player was, and a short code for each line in place of its words. It never includes the words of the transcript. It is read by the developer to fix problems and answer you.

Caption diagnostics the app sends by itself. When captions go wrong in a way the app can tell (the caption area says captions are unavailable, a caption line disappears and comes back, or the app's own check of the playback position fails), the app sends that same two-minute record, with your install ID, without your asking. It sends at most three of each kind a day, and it holds the first two kinds back while your phone's Data Saver (Android) or Low Data Mode (iOS) applies to the app.

Searches inside a show. When you search a show's transcripts from its page, the app sends the words you typed and which show you searched. The server keeps them with your random install ID, together with which episodes the answer listed and which one you opened, to see whether search finds what people look for. They carry no name or email. Search records are deleted after 60 days. If you delete your account, the search records of the installs linked to it are deleted with it. A search across all transcripts, which you start from outside a show, sends your words to the server for the answer; the server does not keep them.

New-episode checks. To make new-episode alerts work, the app keeps a short log of its own background checks for new episodes: when each ran, how many shows it asked and how many answered, and, each time you open the app, how long it had been since the last background check and how many new episodes of shows with a bell the refresh found. When you open or leave the app it sends that log to the server with your install ID and the app version, together with how many shows have a bell, whether notifications are allowed and, on Android, whether battery optimisation exempts Podsnap. The log holds no show name, episode or address. It is kept for 60 days.

The Creator Fund. If you are signed in and choose a nonprofit for the Creator Fund, the app sends which one you chose and when, and the server keeps that choice with your account. For paying Podsnap Plus members, the server adds up the ads Podsnap skipped for you, from the skip events described above, to work out the monthly contribution. Deleting your account does not delete the history of nonprofit choices, which holds only your account key, the nonprofit and the time, because it decides where contributions already owed go.

Who else receives data. Your phone contacts some services directly, and they see its IP address. When you search for a podcast in Discover, the words you type go to Apple's iTunes Search, after each short pause in your typing; Podsnap's server does not see them. The app also asks Apple about the titles of shows you subscribe to or open, to find their publishers and ratings. It fetches podcast feeds, artwork and episode audio straight from each publisher's and host's servers, and from the redirect and tracking hosts in an episode's address, as any podcast app does, and, when the server looks unreachable, a Google connectivity-check address. Signing in, subscribing and checking that the app is genuine run through Google's services (Google sign-in, Google Play Billing, Play Integrity) and Apple's (Sign in with Apple, StoreKit, App Attest, DeviceCheck), under their own privacy policies. Cloudflare carries all traffic to Podsnap's server and sees each request's IP address. When the server cannot be reached, the app may ask a Cloudflare-hosted copy of ad marks and captions for one episode, sending the file's fingerprint and a 72-hour grant, and no install ID or account. When someone subscribes, the server emails the developer, through a Google Apps Script web app, the plan, the store, the account's email address and the time. The server sends only the text of public episodes, never anything about you, to the AI services that find ad breaks. Meta receives the advertising measurement data described under "Advertising measurement with Meta". The ad companies that receive reports from Podsnap's website are named under "The website, podsnap.dev".

Private feeds. A paid show's private feed address includes your access token. The app sends feed addresses to Podsnap's server as it does for any show (with transcript requests, play records, listening records, feedback and caption diagnostics), and the server stores them.

Play records. For each episode you open, whether or not you press play, the app sends the server a record of the open: when, whether the phone was on mobile data, which kind of file and which host served the audio, and each skip it made, with where it landed and whether you took it back. Opening an episode also asks the server for its ad marks and captions, and tells the server which episode you are looking at in the player or the transcript screen, so that your own jobs run first. If you mark a show as having no ads, the app tells the server.

Audio from your phone. To check that your copy of an episode is the one the server processed, the app sends the opening seconds of the episode and slices of it as it streams (up to about 3.5 MB each), short fingerprints of the whole file and its SHA-256, and, when the server asks, your copy itself. Episodes are public audio from the publisher, never a recording of you.

Error reports. When a show's feed fails to load, the error report can include the show's title and the feed's host. On Android, a report of why the previous run of the app ended includes its reason, memory use and the last few steps the app took.

Ad-segment marks you make. Manually marked segments are uploaded to the shared database so other listeners of that episode can use them. They carry the random device ID, and your account ID if you are signed in, not your name or email.

Advertising measurement with Meta

Podsnap advertises on Meta's apps, including Facebook and Instagram. To find out whether those ads lead to installs and subscriptions, the app includes Meta's software development kit (SDK), which sends a small set of events to Meta: the Android app, and the iPhone app from version 1.1.3. Apart from the website reports described under "The website, podsnap.dev", this is the only place Podsnap sends data to an advertising company.

What Meta receives.

What Meta does not receive. No transcript text, no episode or show names, nothing about what you listen to or subscribe to, no email address, name or account ID, and not Podsnap's install ID or either of the other device identifiers described above. The server that the app talks to sends Meta nothing. (The website is separate; see "The website, podsnap.dev".)

Why. To count which Meta ads produced installs, sign-ups and subscriptions, so Podsnap can decide which ads to keep running, and so Meta can show Podsnap's ads to people likely to want the app.

Meta's role. Meta is a separate company that decides for itself how to use what it receives. It receives this data under Meta's Business Tools Terms and uses it as Meta's Privacy Policy describes, which includes matching events to ads and measuring and improving ads. Meta's terms are at facebook.com/legal/terms/businesstools. What Meta does with the data once it has it is governed by those documents, not by this page.

When and how. The SDK sends each event over HTTPS when it happens or soon after. It runs only in builds of the app where it is switched on. Podsnap starts it only on phones where its server says it may. The server decides from the country of the IP address, the same lookup described under "IP addresses and approximate location", and the same decision applies on Android and iPhone; where it is off, the iPhone app shows no tracking question either. It switches the SDK on country by country, never in the European Economic Area, the United Kingdom, Switzerland, the Crown Dependencies (Jersey, Guernsey and the Isle of Man) or Gibraltar, and not at all when it cannot tell the country. The list of countries where it is on can change without an app update, so this page does not name them.

Install attribution

To learn which ad brought an install, the Android app reads up to two pieces of information that are already on your phone, once, shortly after you first open it, and sends them to Podsnap's server only, with each request the app makes to that server, as it sends its other device details. Podsnap does not send them to Meta or anyone else. (Meta's SDK separately sends the events listed above; see that section.) Each is read only if Podsnap's server says it may, by the country of the IP address, and the two have different rules:

An install with no read is filed with no source. The server files what it reads with the install's random install ID, in the install's device record (see "Device details" and "How long records are kept"): the campaign fields from Google Play's referrer, and from Meta's: the campaign, ad set and ad (their IDs and names), whether the ad was clicked or only seen and when, and which Meta app passed it on. They carry no name or email. The server keeps the first answer an install gives, because an install's source does not change, with one exception: an answer from Meta replaces an earlier one that named no ad. They are used to count installs by ad. iPhone sends nothing: the App Store gives apps no referrer.

The website, podsnap.dev

podsnap.dev is Podsnap's website. Cloudflare serves it and sees each request's IP address, as with the app's server. The site has no sign-in or forms, and loads no advertising script. It does one thing for advertising: it tells an ad company when a visitor who came from that company's ad taps a store button.

When it happens. Only when you arrive from an ad on ChatGPT or on Meta (Facebook or Instagram), whose link carries a click ID, and then tap the App Store or Google Play button. A visit that does not come from such an ad reports nothing, and its store buttons go straight to the store. The reports are sent from the website's server after you have gone on to the store. They use no script and no cookie in your browser, and they run only when Podsnap has switched them on.

What is sent.

Neither report carries a name, an email address or anything about what you listen to. OpenAI and Meta use what they receive under their own policies; Meta's are linked under "Advertising measurement with Meta".

Choosing not to be measured

On Android, delete your advertising ID in the phone's system settings: usually Settings, then Privacy, then Ads, then Delete advertising ID (the menu names differ by phone). Once it is deleted, Podsnap sends nothing to Meta. Install attribution is separate: it is read once, shortly after the first open, and stays on Podsnap's server; to have an install's record deleted, email the address under "Contact" with the device ID shown in the app's Settings. Uninstalling the app stops further sending.

On iPhone, answer "Ask App Not to Track" when Apple asks, or later turn Podsnap off in Settings, then Privacy & Security, then Tracking. Meta then receives no advertising identifier from Podsnap. The app still sends the events listed under "Advertising measurement with Meta", without that identifier, as that section describes; uninstalling the app stops all sending. Versions before 1.1.3 send Meta nothing.

On the website, visiting podsnap.dev directly, not through an ad, sends nothing to either company. Apart from Apple's tracking question on iPhone, Podsnap shows no extra pop-up for any of this; the controls are the ones above. Data that Meta already holds is Meta's to delete. If you have a Facebook or Instagram account, Meta's account settings let you review and clear information that apps and websites have sent it.

Your library

What syncs. When you are signed in, Podsnap keeps your library on the server so it follows you from one device to the next: the podcasts you subscribe to, the folders you sort them into, your playlists, the episodes you star, how far through each episode you are, your listening stats, and your auto-download choices (which shows download, the default for shows you play, and how many episodes to keep). That list is exhaustive — it is never the audio, and it is never anything about you beyond the library itself.

Why. So that signing in on a second phone, or on a new one, gives you the library you already had, instead of an empty app.

Who it is tied to. The Google or Apple account you sign in with, and nothing else. It is not tied to the random install ID, it is not pooled with other listeners' libraries, and unlike transcripts and ad segments it is never shared with anyone: your library is yours, and it is the one thing on the server that is.

How it travels. Over HTTPS, authenticated, the same as everything else the app sends.

When it happens. Signing in starts it; signing out stops it. There is nothing to switch on and nothing to configure — if you are signed in, your library syncs, and if you are not, it does not.

How it goes away. Delete your account and the server's copy is deleted with it, in the same operation. Signing out stops the sync and leaves the library on your phone, where it is yours to keep or to delete in the app; the server's copy waits there for the next sign-in until you delete the account.

What it is never used for. It is never sold, never shared with a third party, never used for advertising, and never used to build a profile of you. The server does not read what is inside your library rows. It counts them, and it reads which shows each account subscribes to, to decide which publishers' transcripts to fetch first and which shows to prepare overnight for the people who follow them. The developer's console shows how many library rows an account has, not what they hold. Otherwise it is a backup of your own app, kept for you.

If you never sign in, your library is not synced and its contents are not sent as a library. The server still receives, with your install ID, what "What Podsnap collects" describes for the episodes you open and play, including which show and episode, and the shows the app checks in the background.

The subscription

The first 30 episodes with ad-skipping are free. They are the episodes you play with ad-skipping on and also the episodes the app prepares for you in the background (for example, with auto-download on) — counted per phone, signed in or not, and whether or not somebody else's listening already had the episode processed. Playing an episode again is free, and an episode the app already prepared for you is not counted a second time when you play it. Reinstalling the app does not reset the count (see "Device identifiers"). After that you get one free episode every 24 hours, counted the same way and starting again 24 hours after you use it; skipping ads in every new episode requires Podsnap Plus, a subscription, $1.99 a month or $19.99 a year, with a fair-use limit of 2,000 new episodes a month. The subscription itself — payment, renewal, and cancellation — is handled entirely by Google Play, or on iPhone by Apple's App Store, not by Podsnap. Podsnap's server keeps your subscription status — which plan, when it started and when it renews or ends, and the store's purchase reference — so it can tell whether your account has an active subscription; it never sees your payment method or billing details. Promo codes are redeemed with Google Play, which tells Podsnap only that a code was used.

Passes. The developer can grant a free pass (for example 30 days of Podsnap Plus) to an email address. The server keeps the email and the pass's dates. If you delete your account, the email on any pass is replaced with a one-way hash and a pass still running is ended.

What Podsnap does not do

How long records are kept

The count of free episodes each phone has used, and when it was given a daily free episode (keyed by the hashes above, never by name, email or the raw Android ID), the link between an install and its Android-ID hash or iPhone trial, and the trial's hashed key are kept for as long as the service runs, and are not removed when an account is deleted — otherwise deleting an account and signing in again would reset the free episodes. They are not personal data that names you, and support resets them on request (see "Contact").

Device details and approximate locations are kept for the 2,000 most recently active installs. IP addresses are kept, up to 50 per install. Crash reports, feedback messages and caption diagnostics are kept for as long as the service runs. Download figures are kept for 90 days, and new-episode check records for 60 days. They carry no name or email. Deleting your account unlinks it from the device record; the other records listed under "Deleting your data" are handled as that section says. To have an install's records deleted, email the address under "Contact" with the device ID shown in the app's Settings.

Storage and security

Server data lives on a private machine operated by the developer. App–server traffic is encrypted in transit (HTTPS). Android builds can also look for a direct route to the developer's own server on a local network, over plain HTTP; the server tells only the developer's own test phones where to look, so a listener's phone never does. Nightly backups of the database are kept for 7 days on the server machine. A copy of each is also kept on the developer's network storage, where old copies are not deleted automatically. Deleting your account does not change a backup already made.

Deleting your data

In the app: Settings, then Listening stats & account, then Sign out removes the account from the device and stops the library sync, and Delete account, in the same place, deletes the account. Deleting removes from the server your account ID, email, display name, transcription metering, subscription record, synced library, the listening spans filed under your account, and the search records of your installs. If you signed in with Apple, it also revokes Podsnap's Sign in with Apple access with Apple. These stay: the per-phone free-episode records and the per-install records described above, which carry no name or email; the history of Creator Fund choices; records that name your account ID without your email (which episodes you were given ad-skipping for, jobs you started, votes and corrections); sign-in session records, which also hold your email address and display name; and backups. If you ask for deletion by email instead, it is done within 7 days, and the developer also keeps the subscription's purchase record and a note that the account was deleted, with its email address. Full instructions: delete your Podsnap account. Shared transcripts and ad segments are community data keyed to episodes, contain nothing about you, and remain. Deleting your account does not cancel a subscription — cancel that separately in Google Play, or on iPhone in your Apple account's subscriptions.

Contact

[email protected] — including to reset a device's free episodes (send the code the app shows).

Changes

If this policy changes, the date above changes, and material changes will be called out in the app's release notes.

See also: terms of service.