BeatOps
  • Home
  • Features
  • Pricing
  • Help
  • Blog
  • Download Free
Download Free

Privacy Policy

How we collect, use, and protect your information

Last updated: July 16, 2026

1. Introduction

Welcome to BeatOps ("we," "our," or "us"). BeatOps is a beat upload automation platform that helps music producers distribute their beats across multiple platforms including YouTube, BeatStars, and SoundCloud.

This Privacy Policy explains how we collect, use, disclose, and safeguard your information when you use our service. Please read this policy carefully. By using BeatOps, you agree to the collection and use of information in accordance with this policy.

2. Information We Collect

2.1 Account Information

When you create an account, we may collect:

  • Email address
  • Producer/brand name
  • Account preferences and settings

2.2 Beat and Content Data

When you use our service, we process:

  • Beat metadata (titles, BPM, keys, artist references)
  • Generated thumbnails and video files
  • Template configurations and preferences
  • Upload history and scheduling information

2.3 YouTube Account Data (via OAuth)

When you connect your YouTube account, we access:

  • YouTube channel information (channel name, ID)
  • Permission to upload videos on your behalf
  • Permission to manage your playlists

2.4 Usage Data

We automatically collect certain information when you use our service:

  • Features used and actions taken
  • Error logs and performance data
  • Device and browser information

3. YouTube API Services

Important: BeatOps uses YouTube API Services. By using our YouTube integration features, you agree to be bound by the YouTube Terms of Service.

3.1 What We Access

Through the YouTube API, BeatOps accesses:

  • Your YouTube channel information to identify where videos will be uploaded
  • Permission to upload videos to your channel on your behalf
  • Permission to add uploaded videos to your playlists
  • Video metadata (titles, descriptions, tags) that you configure

3.2 How We Use YouTube Data

We use YouTube API access solely to:

  • Upload beat videos and YouTube Shorts to your channel as you request
  • Set video titles, descriptions, and tags based on your templates
  • Add videos to playlists you specify
  • Display upload status and video URLs within the BeatOps interface

3.3 YouTube Data Storage

Regarding YouTube data:

  • We store OAuth access tokens securely to maintain your connection
  • We store YouTube video URLs and IDs for your uploaded content
  • We do NOT store copies of your YouTube videos on our servers
  • We do NOT access your YouTube viewing history or subscriptions

3.4 Revoking YouTube Access

You can revoke BeatOps' access to your YouTube account at any time:

  • Via BeatOps: Use the "Disconnect" button in Settings. Your YouTube authorization data is deleted immediately.
  • Via Google: Visit your Google Security Settings and remove BeatOps. Your YouTube authorization data is deleted immediately upon detection.

Upon revocation, we delete your stored OAuth tokens and YouTube channel information. Previously uploaded videos remain on your YouTube channel (we do not delete content from YouTube).

3.5 Sharing, Transfer, and Disclosure of Google User Data

BeatOps does not share, transfer, or disclose Google user data to any third parties, except in the following limited circumstances:

  • YouTube (Google): We transmit video files and metadata (titles, descriptions, tags) to YouTube on your behalf when you initiate an upload. This is the core functionality of the service.
  • Legal requirements: We may disclose data if required by law, legal process, or government request.

We do not:

  • Sell or transfer Google user data to third parties for advertising, data brokering, or any other purpose
  • Use Google user data to serve advertisements
  • Use Google user data for credit assessment, lending, or any purpose unrelated to providing the BeatOps service

3.6 Google API Services User Data Policy

BeatOps' use and transfer of information received from Google APIs adheres to the Google API Services User Data Policy, including the Limited Use requirements.

In addition to this Privacy Policy, your use of YouTube features is also governed by the Google Privacy Policy.

3.7 YouTube Connection

You can connect YouTube in two ways. By default BeatOps connects using its own Google application, and you do not have to provide anything. Alternatively you can create your own Google Cloud project and have BeatOps use those credentials instead ("Bring Your Own Key", BYOK).

Connecting With the BeatOps Application (Default)

Google's sign-in exchange requires the application's client secret. A secret inside a downloaded app is not a secret, so that exchange runs on our server, which holds ours. This is the one part of connecting YouTube that does not happen entirely on your machine.

  • You sign in on Google's own website. Your Google password never reaches us.
  • The resulting access and refresh tokens pass through our server and are handed straight back to your computer, where they are stored encrypted. We do not store them and we do not log them.
  • Our server needs to be reachable when you connect, and when a token is renewed (roughly once an hour while you are using YouTube features).
  • Your uploads go directly from your computer to your own YouTube channel.

Using Your Own Credentials (BYOK)

  • Your OAuth credentials are stored locally on your computer in encrypted form
  • Credentials are encrypted using Fernet symmetric encryption with a locally-generated key
  • Stored at: ~/.beatops/credentials/youtube_client_config.json (encrypted)
  • We do NOT transmit your credentials to our servers, and the sign-in exchange does not involve our server at all

Your Responsibilities (BYOK Mode)

When using BYOK, you are responsible for:

  • Managing your own Google Cloud project and YouTube API quota
  • Complying with YouTube API Terms of Service and Google Cloud policies
  • Protecting your OAuth credentials from unauthorized access
  • Monitoring your own API usage and quota consumption

Quota Tracking

When using BYOK, BeatOps tracks your YouTube API quota usage locally to help you monitor consumption. This data is stored in your local database and is never transmitted to our servers.

Deleting BYOK Credentials

You can remove your BYOK credentials at any time via Settings > YouTube API Credentials > Remove. This deletes the encrypted credential file from your computer. Your YouTube connection is removed with it; reconnecting afterwards uses the default BeatOps application.

3.8 SoundCloud Connection

You can connect SoundCloud in two ways. By default BeatOps connects using its own registered SoundCloud application, and you do not have to provide anything. Alternatively you can register your own application at soundcloud.com/you/apps and have BeatOps use that instead, which requires a SoundCloud Artist Pro subscription.

Connecting With the BeatOps Application (Default)

SoundCloud treats every application as confidential, meaning an application secret is required to obtain a token. A secret inside a downloaded app is not a secret, so the sign-in exchange runs on our server, which holds ours. This is the one part of connecting SoundCloud that does not happen entirely on your machine.

  • You sign in on SoundCloud's own website. Your SoundCloud password never reaches us.
  • The resulting access and refresh tokens pass through our server and are handed straight back to your computer, where they are stored encrypted. We do not store them and we do not log them.
  • Our server needs to be reachable when you connect, and when a token is renewed (roughly once an hour while you are using SoundCloud features).
  • Your uploads go directly from your computer to your own SoundCloud account.

Using Your Own Application

  • Your OAuth credentials (Client ID and Client Secret) are stored locally on your computer in encrypted form
  • Credentials are encrypted using Fernet symmetric encryption with a locally-generated key
  • Stored at: ~/.beatops/credentials/soundcloud_client_config.json (encrypted)
  • OAuth access and refresh tokens are also stored locally in encrypted form
  • We do NOT transmit your credentials to our servers, and the sign-in exchange does not involve our server at all

Your Responsibilities (SoundCloud)

When using SoundCloud with BeatOps, you are responsible for:

  • Complying with SoundCloud API Terms of Use
  • Protecting your OAuth credentials from unauthorized access, if you registered your own application
  • Understanding that your uploads go directly to your SoundCloud account

Disconnecting

You can disconnect SoundCloud at any time via Settings > Connected Accounts > Disconnect, which deletes your OAuth tokens from your computer. If you configured your own application, you can remove those credentials via Settings > API Keys > SoundCloud API Credentials > Remove.

4. How We Use Your Information

We use the information we collect to:

  • Provide, maintain, and improve our service
  • Process your beat uploads and content generation requests
  • Upload content to YouTube and other platforms on your behalf
  • Send you service-related communications
  • Respond to your inquiries and support requests
  • Monitor and analyze usage patterns to improve user experience
  • Detect and prevent technical issues or abuse

4.1 What We Do NOT Do With Your Data

  • We do NOT sell your personal information to third parties
  • We do NOT share your data with third parties for advertising purposes
  • We do NOT use your YouTube data for any purpose other than providing the BeatOps service
  • We do NOT serve advertisements within BeatOps

5. Third-Party Services

We use the following third-party services:

5.1 YouTube (Google)

For video uploads and playlist management. See Section 3 for details.

5.2 SerpAPI

For image search functionality. When you search for images, we send search queries to SerpAPI. SerpAPI's privacy policy is available at serpapi.com/privacy-policy.

5.3 Payment Processing (Stripe)

For subscription payments, we use Stripe as our payment processor. Stripe is PCI DSS Level 1 compliant, the highest level of certification available in the payments industry.

What we store:

  • Your email address (for account identification and license delivery)
  • Subscription status and tier (e.g., Growth, Scale)
  • Subscription dates (start, renewal, cancellation)
  • Whether you're an early adopter

What we do NOT store:

  • Full credit card numbers
  • CVV/security codes
  • Complete card details

All payment card information is handled directly by Stripe and never touches our servers. For more information about how Stripe handles your payment data, see Stripe's Privacy Policy.

How we use your payment email:

  • Sending your license key upon purchase
  • Important subscription updates (payment issues, renewal reminders)
  • Product updates and feature announcements (you can opt out)

We do not send marketing emails without your consent. You will never be subscribed to promotional emails without explicitly opting in.

5.4 Cloudflare

Our website is hosted on Cloudflare Pages for security and performance.

5.5 Fly.io

Everything the app asks our own server for runs on Fly.io, in their Amsterdam (EU) region: licence checks, publish counts (section 5.10), update checks (section 5.9), the SoundCloud sign-in exchange (section 3.8) and the feedback form. Fly.io hosts this on our behalf as a processor and does not use the data for its own purposes. Their privacy policy is available at fly.io/legal/privacy-policy.

5.6 Error Reporting (Sentry)

To identify and fix software errors, BeatOps sends anonymous error reports to Sentry when errors occur in the desktop application.

What We Collect

Anonymous error reports including stack traces, application state, and action breadcrumbs. File paths, usernames, email addresses, beat names, API credentials, and IP addresses are automatically removed before transmission.

Default State and Opt-Out

Error reporting is enabled by default. You can disable it at any time in Settings. To disable error reporting, go to Settings and turn off the Error Reporting toggle. Changes take effect on the next application restart.

Data Retention

Error reports are retained for 90 days and then automatically deleted.

For more information, see Sentry's Privacy Policy.

5.7 Website Analytics (Umami)

To understand how visitors use our website, we use Umami Cloud, a privacy-focused analytics service.

Privacy-First Design

Umami does not use cookies, does not track users across websites, and does not collect personal information. Because Umami does not use cookies or collect personal data, no consent banner is required under GDPR for website analytics.

What We Collect

Anonymous pageview counts, referrer URLs, browser type, and country (derived from IP address, which is not stored). We also collect anonymous, aggregated interaction events (such as how far visitors scroll through a page and which links and buttons they click) to understand which content is useful. These events contain no personal information and are not linked to any individual.

Scope

Website analytics applies only to beatops.io. The BeatOps desktop application does not track website-style analytics.

5.8 Desktop App Usage Analytics (Opt-In)

BeatOps can optionally send anonymous usage statistics to help us understand how the app is used and which features to prioritize.

Default State

Usage analytics is disabled by default. It is only enabled if you explicitly opt in during setup or in Settings.

What We Collect

  • Aggregate counts: number of beats, uploads per platform, images generated, videos generated, templates created, and how many beats are in each workflow stage (draft, ready, uploaded)
  • Aggregate feature usage: how many upload platforms are connected, the success rate of BeatStars uploads, and whether (and how) automatic filename parsing is enabled
  • Operating system, CPU architecture, app version, and license tier
  • An anonymous machine ID (a one-way hash, not linked to your identity)

What We Do NOT Collect

  • Beat names, titles, or any content metadata
  • File paths, folder names, or directory structures
  • Credentials, API keys, IP addresses, or email addresses
  • Browsing or interaction data

Data Storage and Retention

Analytics data is stored in a Supabase database. Each record contains only the fields listed above. Data is retained for up to 1 year and then automatically deleted. You can disable analytics at any time in Settings, which stops all future data collection immediately.

5.9 Update Checks (Anonymous, No Opt-In)

When the app starts it sends a small, anonymous update-check ping so we can see which versions and operating systems are in active use and prioritize support and fixes accordingly.

What It Contains

  • App version (e.g. "2.1.6")
  • Operating system and CPU architecture (e.g. "windows", "x86_64")
  • A few coarse yes/no activation flags — whether a publishing platform has been connected, whether a beat has been imported, and whether a beat has been published — with no counts and no details, so we can see where in the setup people get stuck and improve it.

That is all. The ping contains no machine ID and no identifier of any kind, so it cannot be linked to you or your device, and it is never combined with any other data. Because it is fully anonymous and cannot single out an individual or device, it is not personal data and does not require consent. The app sends at most one ping per 24 hours, and only aggregate counts (grouped by version and operating system) are ever read.

5.10 Publish Counts (Plan Limits)

The free plan includes a fixed number of publishes per platform, counted once for good rather than per week. To make that limit real, the app checks with our server just before each publish and the server keeps the count. We do this to enforce the limits of the plan you are on, and to prevent those limits being circumvented, for example by reinstalling the app to reset a local counter.

What It Contains

  • A one-way hash (HMAC-SHA256, salted with a secret that only our server holds) of the account you publish to: your YouTube channel ID, SoundCloud user ID or BeatStars account ID. We never store the plain ID and we cannot turn the hash back into it.
  • A one-way hash of the track, so that retrying after a failed upload does not cost you a second publish.
  • The platform, and the time of the first and most recent attempt.
  • The same kind of one-way hash of a random installation token, which limits how many different accounts a single installation can write counts for. This is what stops a stranger from using up your free publishes.

Your passwords are never sent to us, and neither are your OAuth tokens: the app looks up the account ID on your own machine and sends only that, so your BeatStars login stays local. The one exception is connecting SoundCloud with the BeatOps application, where the sign-in exchange runs on our server because SoundCloud requires an application secret for it. Those tokens are passed straight back to your machine, not stored and not logged, and they are never used for the publish counts described here. See section 3.8. The installation token is created the first time the app reaches our server and is stored, encrypted, on your machine. It is random: not derived from your name, email, account or hardware, and reinstalling the app simply creates a new one.

Paid Plans

Publishes on a paid plan are recorded in the same pseudonymized way, and are never used to block you: paid limits are applied inside the app. We record them so we can tell whether the product is actually being used, which is what tells us where to improve it. For a paid account we also keep a link between the hashed subscription and the hashed platform account, so we can understand how people move from the free plan to a paid one. We use this only as aggregate insight, not to single you out.

Legal Basis and Retention

We rely on performance of our contract with you (Article 6(1)(b) GDPR) to apply the plan you chose, and on our legitimate interest in preventing abuse (Article 6(1)(f) and Recital 47) to stop those limits being circumvented. This is not advertising or profiling, and we do not track you across sites or apps. The only thing stored on your device for this is the installation token described above; it is strictly necessary to provide the free publishes and to protect your own count against abuse, so it does not require consent.

Because the free allowance is a lifetime one, these counts are kept indefinitely: erasing them by default would simply hand out a new allowance and there would be no limit left to enforce. The data is stored on servers in the EU (Amsterdam). You can still exercise your rights over this data, including erasure, by writing to privacy@beatops.io; we assess and handle those requests individually.

5.11 SoundCloud

For uploading your beats to your own SoundCloud account. Unless you registered your own SoundCloud application, the sign-in exchange runs on our server, which holds the application secret SoundCloud requires. We do not store or log the resulting tokens. See section 3.8 for what this does and does not involve. SoundCloud's privacy policy is available at soundcloud.com/pages/privacy.

6. Data Security

We implement appropriate security measures to protect your information:

  • OAuth tokens are encrypted at rest
  • All data transmission uses HTTPS encryption
  • Access to user data is restricted to authorized personnel
  • Regular security reviews and updates

However, no method of transmission over the Internet or electronic storage is 100% secure. While we strive to protect your information, we cannot guarantee absolute security.

7. Data Retention

  • Account Data: Retained while your account is active and for a reasonable period afterward for legal and business purposes.
  • Beat Data: Stored locally on your device. We do not retain copies of your audio files.
  • OAuth Tokens: Retained until you disconnect your account or revoke access.
  • Usage Logs: Retained for up to 90 days for operational purposes.
  • Publish Counts: Kept indefinitely, in pseudonymized form. The free allowance is a lifetime one, so deleting the count would reset the limit it exists to enforce. See section 5.10.

8. Your Rights

You have the right to:

  • Access: Request a copy of the personal data we hold about you
  • Correction: Request correction of inaccurate personal data
  • Deletion: Request deletion of your personal data
  • Portability: Request transfer of your data to another service
  • Revoke Access: Disconnect YouTube and other third-party integrations at any time

8.1 How to Request Data Deletion

You can request deletion of your data in the following ways:

  • YouTube data: Use the "Disconnect" button in BeatOps Settings, or revoke access via Google Security Settings
  • Account data: Contact us at privacy@beatops.io with the subject "Data Deletion Request"
  • Publish counts: Contact us at privacy@beatops.io. These are kept to enforce plan limits (see section 5.10), so we assess each request individually rather than erasing them automatically.

We will process deletion requests within 30 days and confirm completion via email.

9. Children's Privacy

BeatOps is not intended for users under 13 years of age. We do not knowingly collect personal information from children under 13. If you are a parent or guardian and believe your child has provided us with personal information, please contact us.

10. Changes to This Policy

We may update this Privacy Policy from time to time. We will notify you of any changes by posting the new Privacy Policy on this page and updating the "Last updated" date. You are advised to review this Privacy Policy periodically for any changes.

11. Contact Us

If you have questions about this Privacy Policy or our data practices, please contact us at:

Email: privacy@beatops.io

Automate the busywork. Protect your time and creative energy. Make and release more beats.

Made by producers, for producers.

Product

  • Features
  • Pricing
  • About
  • Blog
  • Changelog

Free Tools

  • Beat Tagger

Support

  • Help
  • Contact
  • Feedback

Legal

  • Privacy Policy
  • Terms of Service
  • Refund Policy

© 2026 BeatOps. All rights reserved. Chamber of Commerce (KvK): 99712938

We use cookies to improve your experience. By continuing to use this site, you agree to our Privacy Policy.