Privacy Policy
Last updated: June 29, 2026
Squeeezy is a native application for Mac (macOS) only that lets you upload videos to Facebook, Instagram, LinkedIn, TikTok, and YouTube. It is distributed as a direct download from squeeezy.me and via the Mac App Store. There is no iPhone or iPad version at launch. We are committed to protecting your privacy. This Privacy Policy explains what information is processed, how it is used, and your rights — including those under the EU General Data Protection Regulation (GDPR).
1. Data Controller
The data controller for the purposes of GDPR is the individual developer operating under the name Squeeezy (bundle identifier me.squeeezy.app), reachable at [email protected]. Given the nature of the App — where personal data remains on your device and we do not operate a user database — the practical scope of controller responsibilities is minimal.
2. What Data Is Processed and Where It Lives
Squeeezy is designed to process the absolute minimum. Almost everything stays on your device:
- OAuth tokens — When you connect a social media account, the platform issues an access token (and, where applicable, a refresh token). These are stored exclusively in your Mac's secure Keychain using
kSecAttrAccessibleWhenUnlockedThisDeviceOnly. They are never transmitted to our servers and never written to disk in plain text.
- Video files and upload metadata — Videos and the titles, captions, descriptions, and other fields you enter are sent from your Mac to each platform's official API. For YouTube and LinkedIn, that transfer is direct from your Mac. For TikTok, Squeeezy uploads the video file to your TikTok inbox as a draft only — not a published post (see Section 9). For Instagram and Facebook, the App briefly stages your video on our relay server so Meta can fetch it (see Section 7a). Staged files are deleted automatically after publish — we do not retain your video content.
- Local upload history, drafts, and stats — Squeeezy keeps a local history of your uploads (date, platforms, outcome, post links), any drafts you save, and optional upload statistics in a SQLite database on your Mac. This data never leaves your device and is not transmitted to our servers.
- iCloud Key-Value sync (optional) — Platform visibility preferences may sync between your Apple devices signed into the same iCloud account via Apple's Key-Value store. No OAuth tokens or video content are synced.
- No personal data collected by us on servers — We do not collect your name, email address, IP address, device identifiers, or server-side analytics or crash data. There is no Squeeezy account and no server-side database associated with you.
3. Legal Basis for Processing (GDPR Article 6)
Because all processing occurs locally on your device at your explicit direction, the applicable legal basis is:
- Article 6(1)(b) — Performance of a contract: Processing your tokens and metadata is necessary to deliver the upload service you have chosen to use.
- Article 6(1)(f) — Legitimate interest: Storing local upload history and draft data serves your legitimate interest in reviewing past uploads and resuming work-in-progress, with no impact on your privacy since the data stays on your device.
4. How We Use Your Information
The OAuth tokens stored on your device are used solely to authenticate API requests to the platforms on your behalf. Specifically:
- To upload videos to your connected social media accounts
- To refresh your authentication session automatically when a token expires
- To retrieve the minimum account identifiers needed to complete the upload (e.g. your LinkedIn person URN or your Instagram business account ID)
We do not use any data for advertising, profiling, or any purpose beyond providing the core upload functionality you request.
5. Third-Party Platforms
Squeeezy integrates with the following platforms. When you connect your accounts and upload content, you are subject to each platform's own privacy policy:
We request only the minimum permissions required to upload content on your behalf. You can revoke Squeeezy's access at any time either within each platform's own settings or through the Squeeezy Settings page.
6. Google / YouTube API Data Use
Squeeezy uses the YouTube Data API v3. YouTube sign-in uses OAuth with PKCE via a localhost redirect — no client secret is stored in the app. Our use of information received from Google APIs complies with the Google API Services User Data Policy, including the Limited Use requirements:
- We request the
youtube.upload and youtube scopes needed to publish on your behalf
- YouTube user data is not stored on any server we operate
- YouTube user data is not shared with any third party
- YouTube data is used solely to perform uploads you explicitly initiate
7. Facebook and Instagram API Data Use
Squeeezy uses the Meta Graph API to post Reels to Instagram and videos to Facebook Pages. We confirm:
- We only request the permissions necessary for video upload and page management
- We do not store, share, or sell any Meta user data on external servers
- Meta user data is used solely for the purpose of uploading content you explicitly initiate
- You can disconnect your Facebook and Instagram accounts at any time in Squeeezy Settings
7a. Temporary Video Staging Relay (Instagram & Facebook)
Meta's APIs require a publicly reachable HTTPS URL to fetch your video. Because your file lives on your Mac, Squeeezy temporarily uploads it to our relay (upload.squeeezy.me), hosted on Cloudflare R2, solely to give Meta a fetch URL for the publish request you initiated.
- Purpose: Technical staging only — not storage, analytics, or training
- Duration: Minutes at most; the file is deleted from the relay after publish completes (or on failure cleanup, typically within 48 hours)
- Access: Bearer-authenticated uploads from the App; public read only for the short-lived URL Meta needs
- No profiling: We do not associate staged files with your identity on our servers — there is no Squeeezy account or user database
- Not used for YouTube, LinkedIn, or TikTok: Those platforms receive video data directly from your Mac
8. LinkedIn API Data Use
Squeeezy uses the LinkedIn Posts API and Videos API. We confirm:
- We only request the
w_member_social, openid, and profile scopes
- We do not store, share, or sell any LinkedIn user data on external servers
- LinkedIn user data (specifically your person URN, stored locally in Keychain) is used solely to identify the account owner for upload requests you explicitly initiate
- You can disconnect your LinkedIn account at any time in Squeeezy Settings
9. TikTok API Data Use
Important — TikTok is not direct publish. Squeeezy does not post videos to your TikTok profile. It uploads the video file to your TikTok inbox as a draft. You set caption, cover, privacy, and any sound in the TikTok app after TikTok sends you a processing notification.
Squeeezy uses the TikTok Content Posting API (inbox draft upload). We confirm:
- We request
user.info.basic (display name for Settings) and video.upload only — we do not request video.publish
- TikTok sign-in uses OAuth 2.0 with PKCE — your password is never seen or stored by Squeeezy
- We do not send a title or caption from Squeeezy to TikTok; you add those in TikTok when you finish the draft
- We do not store, share, or sell any TikTok user data on external servers
- TikTok user data is used solely to authenticate your account and deliver the video draft you explicitly initiate
- Video data is transferred directly from your Mac to TikTok's servers — it does not pass through our relay
- You can disconnect your TikTok account at any time in Squeeezy Settings
Our use of TikTok APIs complies with the TikTok Developer Service Agreement and TikTok's Privacy Policy.
10. Apple App Store & Device Permissions
Squeeezy is distributed via the Mac App Store and as a notarized direct download from squeeezy.me. In line with Apple's requirements:
- Privacy manifests — The App includes Apple Privacy Manifest files declaring use of required-reason APIs (e.g. UserDefaults for local preferences). We do not use tracking or advertising SDKs.
- No cross-app tracking — Squeeezy does not track you across other companies' apps or websites.
- Sandbox (Mac App Store) — The Mac App Store build runs in Apple's App Sandbox with network and file access limited to what upload functionality requires.
11. Data Storage and Security
All authentication tokens are stored in your Mac's Keychain using Apple's secure storage APIs with kSecAttrAccessibleWhenUnlockedThisDeviceOnly access control. This means:
- Tokens are only accessible when your device is unlocked
- Tokens cannot be transferred to or read from another device (except via a new OAuth sign-in)
- Tokens are never written to disk in plain text
- Tokens are never transmitted to our servers
Local history and draft data are stored in sandboxed SQLite databases on your Mac, inaccessible to other apps.
12. International Data Transfers
When you use Squeeezy to upload content, your video and metadata are transferred from your Mac to the servers of the respective platforms (Meta, LinkedIn, TikTok, Google). For Instagram and Facebook, video may pass briefly through our Cloudflare-hosted relay before Meta fetches it. These companies are headquartered in the United States and operate under their own privacy frameworks and EU data transfer mechanisms (such as Standard Contractual Clauses). We do not maintain a persistent store of your personal data on our servers.
13. Data Retention
- OAuth tokens — Retained locally until you disconnect the account in Settings, or uninstall the App.
- Upload history — Retained locally until you clear it within the App, or uninstall the App.
- Drafts — Retained locally until you delete them in the App, or uninstall the App.
We hold no data on our end, so there is nothing for us to delete or retain on a schedule.
14. Your Rights Under GDPR
If you are located in the European Union or European Economic Area, you have the following rights under the GDPR. Because Squeeezy holds no personal data on our servers, most of these rights apply to data held locally on your device, which you can exercise directly.
- Right of access (Art. 15) — You can view all data Squeeezy holds about you: it is entirely on your own Mac. Upload history and drafts are visible within the App.
- Right to rectification (Art. 16) — You can edit or update your data directly within the App at any time.
- Right to erasure (Art. 17) — You can delete all locally stored data by disconnecting accounts in Settings and/or uninstalling the App. We hold nothing to erase on our side.
- Right to restriction of processing (Art. 18) — You can stop all processing by closing or uninstalling the App.
- Right to data portability (Art. 20) — All your data is already on your Mac in standard formats (Keychain entries, SQLite databases). You can access it directly.
- Right to object (Art. 21) — You can object to processing based on legitimate interest by contacting us at [email protected].
- Right not to be subject to automated decision-making (Art. 22) — Squeeezy performs no automated decision-making or profiling.
- Right to lodge a complaint — You have the right to lodge a complaint with your national data protection authority (DPA). In the EU, you can find your local DPA at edpb.europa.eu.
To exercise any right or ask a question about your data, contact us at [email protected]. We will respond within 30 days.
15. Children's Privacy
Squeeezy is not directed at children under the age of 16 (or the applicable minimum age in your EU member state). We do not knowingly collect any personal information from children. If you believe a child has used the App and data may have been stored locally, please contact us and we will provide guidance on how to remove it.
16. Changes to This Policy
We may update this Privacy Policy from time to time. We will notify users of material changes through the App. The latest version is always available at squeeezy.me/privacy.html. If changes are material in terms of GDPR, we will provide at least 30 days' notice before they take effect.
17. Contact
For any questions, requests, or concerns about this Privacy Policy or your data, please contact us at [email protected]. We aim to respond within 30 days.