Privacy Policy
Last Updated: October 16, 2026
Effective Date: January 28, 2026
Introduction
Song Sweeper ("we," "our," or "the app") is committed to protecting your privacy. This Privacy Policy explains how we handle information when you use our iOS application.
Our website, songsweeper.com, is covered in the "Website (songsweeper.com)" section below.
In short: Song Sweeper is designed with privacy in mind. Your music library is processed entirely on your device. We collect usage analytics and crash/error diagnostics linked to a pseudonymous install identifier to improve the app, we do not ask for direct identifiers like name or email, and we do not track you across apps.
Information We Access
Apple Music Library
Song Sweeper requests access to your Apple Music library to provide its core functionality:
- What we access: Song metadata (titles, artists, albums, play counts, date added, duration) and playlist metadata needed for app features (playlist names and song membership, including the Song Sweeper deletion queue playlist)
- Why we need it: To identify duplicate songs and help you manage your music collection
- How it's used: All analysis happens locally on your device
- What we don't access: We do not access Apple ID credentials, your payment card details, or data outside your music library and in-app preferences
Apple ID
Song Sweeper uses your Apple ID through Apple's MusicKit framework to:
- Authenticate your Apple Music subscription
- Enable access to your music library
- Process the optional Maestro in-app purchase through Apple's secure payment system
Important: We never see, collect, or store your Apple ID credentials. Authentication is handled entirely by Apple.
Information We Collect
Information Stored Locally on Your Device
The following data is stored locally on your device and never transmitted to our servers:
- Favorites: Songs you mark as favorites within Song Sweeper
- App Preferences: Your settings and preferences for duplicate detection, sorting, and filtering
- Cache Data: Temporary data to improve app performance (e.g., artist artwork, search results)
- Maestro access cache: The last Apple-verified access source and, for temporary access, its expiration date. StoreKit transaction history remains managed by Apple.
- Pending purchase token: A random UUID and start time may be stored on device for up to seven days and sent to Apple through StoreKit to reconnect a pending purchase after relaunch. It is not your Apple ID and is not sent to PostHog.
Analytics Data
We collect usage analytics and diagnostic data through PostHog to understand how the app is used, diagnose errors, and improve the experience. This data is linked to a pseudonymous install identifier (described below), not to your Apple ID account. Analytics and diagnostic data includes:
- Screen views: Which screens you visit within the app
- Feature interactions: Actions such as resolving duplicates, consolidating albums, refreshing your library, and adjusting filters
- Maestro access and purchase events: Lifetime-purchase outcomes (completed, cancelled, pending, failed), product identifier, stable product name and purchase type, access source (for example, lifetime purchase, grandfathered legacy purchase, temporary legacy access, or Apprentice), and migration announcement cohort/action. Grandfathering is not recorded as a sale.
- Review follow-up events: Whether the in-app satisfaction prompt or the one-time grandfathered-customer review prompt was shown, and whether you selected the positive or negative action or closed it without answering. We do not send a review's star rating or written App Store review.
- Feedback text: If you choose to submit feedback through the in-app survey
- Crash and error data: Crash logs and handled exceptions are captured automatically and manually through the PostHog SDK. This includes exception type, error domain, error code, stack traces, and contextual metadata such as which operation failed (e.g., "library_scan", "favorite_sync_add"). Crash data is persisted to disk and sent on the next app launch. These reports do not contain your music library contents.
- App lifecycle events: App installs, opens, and updates (captured automatically by the PostHog SDK)
- App performance data: About once a day, Apple's MetricKit gives the app a summary of the previous day, which we send to PostHog: app hangs and slow launches (with technical stack traces), how many times iOS ended the app and why (for example, to free memory while the app was in the background), and how much memory the app used while running and while suspended. These summaries do not contain your music library contents.
- Device context: Device model, OS version, app version, locale, timezone, and screen size (attached automatically by the PostHog SDK to each event, including crash and error reports)
- IP address and approximate location: PostHog stores the IP address each event is sent from and uses it to estimate an approximate location (country, region, and city). We do not collect precise location.
- User profile properties: Access tier (Apprentice or Maestro), Maestro access source, first app open date, a count of completed in-app actions, and internal build flag — stored as persistent properties on your PostHog profile
- Anonymous identifier: A randomly generated ID created by PostHog to distinguish unique app installs. This is not your Apple device ID or Apple ID. However, it is a persistent identifier that links your analytics data across sessions.
This data is not used to track you across apps or websites. We do not intentionally include direct identifiers (name, email, Apple ID) in analytics events. If you choose to submit feedback text, please avoid including sensitive or personal information.
Information We Do NOT Collect
We do not collect, transmit, or store:
- Direct personal identifiers (name, email, phone number, address) as dedicated required fields
- Music listening history or behavior
- Device identifiers for cross-app tracking
- Precise location (such as GPS)
- Photos, contacts, or other device data
How We Use Information
Information accessed or stored by Song Sweeper is used exclusively to:
- Identify duplicate songs in your Apple Music library based on metadata matching
- Consolidate split albums by matching library songs to Apple Music catalog albums and coordinating additions and removals in your library
- Display your music collection with relevant information (artwork, titles, artists)
- Save your preferences for how you want duplicates to be detected and displayed
- Manage your favorites to help you keep track of songs you want to preserve
- Process and restore the Maestro Lifetime purchase and resolve legacy Maestro access through Apple's StoreKit framework
- Diagnose and fix errors using crash logs and exception reports to identify and resolve bugs
- Improve the app through pseudonymous analytics to understand feature usage, Maestro conversion, and user experience
Data Sharing and Third Parties
PostHog (Analytics)
We use PostHog as our analytics and error-tracking provider. PostHog receives the pseudonymous usage and diagnostic data described in the "Analytics Data" section above. This includes a persistent install identifier, usage events, crash/exception reports, and your IP address and approximate location, but not your music library contents or Apple ID credentials. Data is sent to PostHog's US-hosted cloud infrastructure. For details on how PostHog handles data, see PostHog's Privacy Policy.
Song Sweeper does not:
- Sell your information to advertisers or data brokers
- Use third-party advertising or tracking SDKs
- Share your music library data with any third party
Apple Services
Song Sweeper integrates with Apple's first-party frameworks:
- MusicKit: For accessing your Apple Music library (governed by Apple's Privacy Policy)
- StoreKit: For processing in-app purchases and verifying current or historical Maestro access (governed by Apple's Privacy Policy)
- Apple Music API: For retrieving song ratings and catalog information (governed by Apple's Privacy Policy)
These services are provided directly by Apple and are subject to Apple's Privacy Policy.
In-App Purchases and Legacy Access
Song Sweeper offers the optional Maestro Lifetime non-consumable purchase to unlock premium features. Maestro Lifetime is a one-time purchase and does not renew. Family Sharing is not available for this product.
Payment Processing
- All payments are processed by Apple through the App Store
- We do not collect or store your payment information
- Purchase records and refunds are managed through your Apple Account and the App Store
- You can use Restore Purchases to ask Apple to resynchronize eligible purchases
Purchase and Access Data
- Maestro access is verified locally through Apple's StoreKit framework
- To grandfather prior customers, the App checks Apple-verified transaction history only for the two shipped
Maestro
.v2subscription product identifiers. A paid, purchaser-owned, non-refunded transaction qualifies even when it has expired. Explicit free transactions and shared-only transactions do not become lifetime access. - Current shared or free-offer legacy access may remain temporarily available until Apple reports its expiration or revocation
- We send limited pseudonymous Maestro analytics to PostHog, such as purchase outcome, product identifier, access source, current tier, and migration announcement/review-prompt actions. New lifetime-purchase events do not include a billing-period property.
- We do not collect or store payment card or bank details
For purchase, refund, and billing questions, please refer to your App Store account settings or Apple's support resources.
Data Storage and Security
Local Storage Only
Your music library data, favorites, preferences, and cache data are stored on your device using:
- iOS secure storage mechanisms (UserDefaults, local cache)
- Sandboxed app storage that is isolated from other apps
- Encryption provided by iOS device security features
Security Measures
We implement security best practices:
- App Sandbox enabled to isolate data from other apps
- Hardened Runtime to prevent code injection
- No network transmission of music library data or Apple ID credentials (analytics data is transmitted to PostHog; see "Data Sharing and Third Parties")
- Compliance with Apple's security guidelines
Data Retention
- Local data (preferences, favorites, cache) remains on your device for as long as the app is installed. Deleting the app removes all locally stored data.
- Analytics data is retained on PostHog's US-hosted servers according to their data retention policies. You may request deletion of your analytics data by contacting us (see Contact Information below).
Your Privacy Rights and Choices
Access and Control
You have complete control over your data:
- Revoke Music Access: You can revoke Song Sweeper's access to your Apple Music library at any time through iOS Settings → Privacy & Security → Media & Apple Music
- Delete Local Data: Uninstalling Song Sweeper permanently deletes all local app data
- Manage Purchases: View purchase history or request a refund through your App Store account; use Restore Purchases in Song Sweeper to resynchronize eligible purchases
Data Deletion
To delete all Song Sweeper data:
- Local data: Delete the Song Sweeper app from your device. All local preferences, favorites, and cache data will be permanently removed.
- Analytics data: To request deletion of your analytics data stored on PostHog's servers, contact us at help@songsweeper.com. We will process deletion requests within 30 days.
Website (songsweeper.com)
This section covers our website, songsweeper.com. The rest of this policy describes the iOS app.
Website Analytics
The website uses PostHog, the same provider as the app, to understand how visitors find and use the site and to find errors in it. Website and app data are stored in the same PostHog project, but the website uses its own identifier and we do not link your website visits to your use of the app. Your browser sends website analytics to songsweeper.com, which forwards it to PostHog's US-hosted cloud. Website analytics includes:
- Page views: The address and title of each page you view, the site or search engine that referred you, any campaign tags in the link you followed (such as
utm_sourceor an ad click ID), how long you stayed on a page, and how far you scrolled - Clicks: Clicks on links and buttons, including the text of what you clicked, and clicks that don't seem to do anything. We also record when you click a Download on the App Store button (and where it is on the page) or the support email link.
- Heatmaps: Where on each page you click and move the mouse, recorded as screen positions
- Performance: Page load and responsiveness measurements (Core Web Vitals)
- Error reports: Errors in the website's own code, with technical stack traces, the page address, and browser details. Your browser filters out errors that come from browser extensions and other scripts the website doesn't own before sending, though the filter may not catch every one.
- Console logs: Messages written to the browser's developer console while you're on the site, such as warnings and errors, with the page address
- Browser and device context: Browser and version, the browser's user-agent string, operating system, device type, screen and window size, language, and time zone
- IP address and approximate location: PostHog stores the IP address each event is sent from and uses it to estimate an approximate location, such as country, region, city, postal code, and approximate coordinates. The website does not ask for your device's location.
- Pseudonymous identifier: A random ID created by PostHog that links your visits from the same browser, along with a session ID that groups activity within a visit. It is not linked to your name, email, or Apple ID.
PostHog also receives the pseudonymous identifier and page details when the website checks which PostHog features and surveys apply to the browser. The website does not record session replays and does not ask for your name or email. Website analytics is not used to track you across other apps or websites.
When the website runs on a developer's own computer or local network (for example, at localhost or a private network address), it marks that browser as an internal or test user so our own visits can be left out of reports. This never happens on songsweeper.com.
Cookies and Browser Storage
- PostHog: Stores the pseudonymous identifier and session ID in a first-party cookie for songsweeper.com and its subdomains, and in your browser's local storage along with the referrer and campaign details of your first visit and PostHog settings. The cookie lasts up to one year after your last visit; local storage has no set expiry. Clearing cookies and site data for songsweeper.com removes them, and your next visit gets a new identifier. Clearing them does not delete analytics already sent to PostHog.
- Language: A
NEXT_LOCALEcookie remembers which language version of the site you're viewing, for up to one year. It contains only the language code and is not used for analytics.
The website does not set advertising cookies.
Vercel Web Analytics and Speed Insights
The website is hosted on Vercel and uses Vercel Web Analytics to count page views and Vercel Speed Insights to measure page performance. According to Vercel, Web Analytics records the page address and its query parameters (with some filtered out), the referring site, browser and operating system versions, device type, and approximate country, region, and city. It tells visitors apart using a hash derived from each request and discards visitor sessions after 24 hours. Speed Insights records the page address, performance measurements and the page elements they relate to, network speed, browser, operating system, device type, and country. Vercel states that these tools do not use cookies. For details, see Vercel's Privacy Policy.
App Store Links
Download links on the website and Safari's Smart App Banner open the App Store with a campaign tag ("Website"). Apple uses this tag to show us total App Store page views and downloads that came from the website. The tag contains nothing about you, and the website does not pass its analytics identifier to Apple.
Website Data Retention and Deletion
Website analytics data is retained on PostHog's US-hosted servers according to their data retention policies, and Vercel retains its data under its own policies. To request deletion of your website analytics data, contact us at help@songsweeper.com. Because this data isn't linked to your name or email, we may ask for details that help us find it, such as the identifier in your browser's PostHog cookie. We will process deletion requests within 30 days.
Children's Privacy
Song Sweeper is not directed to children under 13. We do not knowingly collect direct personal identifiers from children. Like all users, children may generate pseudonymous analytics events if they use the app. The app:
- Does not require account creation
- Does not request direct personal identifiers as required fields
- Does not include public social features; optional private feedback text can be submitted to us
- Does not contain third-party advertising
Parents and guardians should be aware that the app requires an Apple Music subscription, which has its own age requirements set by Apple.
Changes to This Privacy Policy
We may update this Privacy Policy from time to time to reflect:
- Changes to app features or functionality
- Updates to legal or regulatory requirements
- Improvements to privacy practices
When we make changes:
- The "Last Updated" date at the top of this policy will be revised
- If changes are material, we will notify you through the app or App Store update notes
- Continued use of the app after changes constitutes acceptance of the updated policy
We encourage you to review this Privacy Policy periodically.
Compliance with Laws
Song Sweeper is designed around Apple's App Store privacy requirements and key US privacy obligations, including:
- California Consumer Privacy Act (CCPA)
- Children's Online Privacy Protection Act (COPPA)
- Apple App Store Review Guidelines
For CCPA Users: We do not sell personal information. Pseudonymous analytics data is collected for product improvement purposes as described in this policy.
California Privacy Rights
If you are a California resident, you have the right to:
- Know what personal information is collected
- Request deletion of personal information
- Opt-out of the sale of personal information
Our Response: Song Sweeper does not collect direct personal identifiers as required fields. We collect pseudonymous analytics data as described in this policy and do not sell any information.
International Users
Song Sweeper is available worldwide through the Apple App Store. Regardless of your location:
- Music library data is processed locally on your device and is never transmitted externally
- Pseudonymous analytics data is transmitted to PostHog's US-hosted cloud infrastructure (see "Data Sharing and Third Parties" above)
- Your locally stored data remains subject to the privacy protections of your device's iOS operating system
Contact Information
If you have questions, concerns, or requests regarding this Privacy Policy or your privacy while using Song Sweeper, please contact us:
Developer: Grady Gaugler Email: help@songsweeper.com App Store: Song Sweeper
We will respond to privacy inquiries within 30 days.
Transparency Commitment
We believe in complete transparency about data practices:
- No cross-app tracking: We do not track you across apps or websites
- No profiling: We do not build profiles of your music preferences for advertising
- No data mining: We do not analyze your library for commercial purposes
- No data sales: Your data is never sold to third parties
- Pseudonymous analytics only: Usage analytics are linked to an install identifier (not your real-world identity) and used solely to improve the app
Song Sweeper is a privacy-first application designed to give you control over your music library without compromising your personal information.
Technical Implementation
For technically-minded users who want to understand our privacy implementation:
Data Flow
- Authentication: Handled by Apple's MusicKit (no credentials stored by Song Sweeper)
- Library Access: Read and write access to your music library via iOS MediaPlayer framework — used to read song metadata, and to create/manage the deletion queue playlist and add or remove songs during album consolidation
- Ratings Sync: Optional feature using Apple Music API with user-specific tokens managed by MusicKit
- Local Processing: Duplicate detection algorithms run entirely on-device
- Analytics and Diagnostics: Pseudonymous usage events and crash/exception reports are sent to PostHog for product improvement and error resolution; direct identifiers are not required
Frameworks Used
- MusicKit: Apple's framework for music library access
- MediaPlayer: Apple's framework for local music library
- StoreKit 2: Apple's framework for in-app purchases
- SwiftUI: Apple's UI framework (no tracking)
- PostHog: Third-party analytics and error-tracking SDK for pseudonymous usage analytics and crash/exception diagnostics
All Apple frameworks are first-party and respect iOS privacy protections. PostHog is the only third-party SDK; it collects pseudonymous analytics and diagnostic data as described in this policy.
Summary
What Song Sweeper Does:
- Accesses your Apple Music library locally to find duplicates
- Stores your preferences and favorites on your device
- Processes the optional Maestro Lifetime purchase and verifies legacy Maestro access through Apple's secure system
- Collects pseudonymous usage analytics and crash/error diagnostics through PostHog to improve the app
What Song Sweeper Does NOT Do:
- Collect direct account identifiers (name, email, Apple ID credentials) as required fields
- Track you across apps or websites
- Sell or share your data with advertisers
- Store your music library data on external servers
- Display advertisements
Your privacy is our priority. Enjoy organizing your music library with confidence.
Version: 4.0 Policy ID: SS-PP-2026-01
© 2026 Song Sweeper. All rights reserved.