tangle
API betaFAQDownload

Privacy Policy

Last updated: 5 November 2026

On this page

  1. In short
  2. What we store
  3. Analytics and feature flags
  4. Who else receives it
  5. Where it is stored, and how you delete it
  6. Why this is allowed
  7. Your rights
  8. Browser extension
  9. Changes

Tangle Music provides the Tangle player for desktop and mobile, a browser extension, and the website at tangle.music.

The controller is Tangle Music B.V., Papaverweg 34, 1032 KJ Amsterdam, The Netherlands. Email [email protected].

You can use the player with no account. The library then stays on your device, apart from match submissions and app analytics (on by default), described below. An account needs an email address and an access code. Without an account you can still use the player on your device. An account is what lets us hold a backup, captured posts, shared lists, and downloads on our server at api.tangle.music.

In short

  • We do not sell or rent personal information, and our server does not send marketing email.
  • Your devices talk to YouTube, Spotify, Tidal, SoundCloud, Apple Music, Bandcamp, and Discogs to show and play your library. We store those logins on our server, encrypted. Our server refreshes the Spotify, Tidal, YouTube, and SoundCloud tokens and gives each device a short-lived access token.
  • Backup turns on by default once you sign in. It stores your library, including file paths and encrypted platform logins, so another device can restore it. Backup does not include listening history, play counts, or playback position.
  • If you capture a post, we send its text and images to an AI provider, and an audio fingerprint (not the audio) to Shazam. Those requests do not include your account.
  • To link the same recording across platforms, apps send us search text, platform ids, and measured BPM and key. That cache is shared across users.
  • App analytics are on by default. Turn them off in Settings → Privacy. The website measures page views and download clicks and has no opt-out yet.

What we store

Account. Your email, whether it is confirmed, and how you sign in. A password is stored only as a hash. Google sign-in stores the Google account id, email, name, and profile-picture URL. We request only the openid, email, and profile scopes, and we do not keep Google’s sign-in tokens. Magic-link and extension-connect codes are stored as hashes and expire within minutes.

A username is taken from the part of your email before the @, and you can change it once. People you share with see that name, not your email.

A sign-in lasts up to 30 days. It ends when you sign out or reset your password.

Each app or extension that syncs or receives downloads registers a device id, a name, the platform, what it can do, and when it was last seen. On desktop the name is your computer’s host name and operating-system user name. On Android it is the manufacturer and model.

Google user data (YouTube). Connecting YouTube is separate from Google sign-in. Tangle uses YouTube API Services, and Google’s handling of your data is described in the Google Privacy Policy.

We access:

  • your channel’s title, id, and thumbnail, to show your profile in the app
  • the titles, descriptions, ids, and video lists of your public and private playlists, so you can view, create, edit, and delete them
  • the videos you have liked (ids, titles, thumbnails), to show them as Liked Songs and to like or unlike a video from Tangle
  • the video data needed to play

We do not access your YouTube search history, comments, or viewing outside this library and playback.

Your device uses a short-lived access token for those YouTube requests. We store the refresh token on our server, encrypted. The server uses it to issue access tokens to your devices, and it keeps a copy of the current access token until shortly before it expires. Spotify, Tidal, and SoundCloud work the same way. Discogs tokens, and the Bandcamp streaming username and token, are stored encrypted on the server and are sent to a device that needs them. Apple Music’s token stays on the device that created it. We never store your Bandcamp password.

Tangle Music’s use and transfer to any other app of information received from Google APIs will adhere to the Google API Services User Data Policy, including the Limited Use requirements. We use Google user data only to provide the YouTube and Google sign-in features described in this policy. We do not use it for advertising. No person reads it except with your consent, for security purposes, or as required by law.

Revoke access at myaccount.google.com/connections, or disconnect YouTube in Tangle. Revoking it on Google makes the refresh token unusable. The imported library stays on the device until you disconnect YouTube in Tangle or delete the app data, and in the backup until you disconnect YouTube in Tangle or we delete the backup. Disconnecting in Tangle removes the library from the app and your other devices, and revokes Tangle’s grant at Google. In the backup, those rows are marked deleted and kept until the backup is deleted. Nothing is deleted on YouTube itself.

Backup. Backup turns on when you sign in. Turn it off under Settings → Library. While it is on, the apps upload:

  • track metadata (title, artists, album, duration, BPM, key, release date, label, rating, colour, comments, including comments in file tags), lists, playlists, tags, folders, saved filters, order, and which tracks are hidden
  • connected sources, keyed by the platform’s track id. A file on your computer includes its path, which can include your computer’s user name. The folder you chose is sent as its name plus a one-way hash, not the full path
  • cover images that exist only in your files, if “Back up artwork” is on (it is on by default). Streaming artwork is stored as a URL
  • settings that should follow you, and your identity on connected platforms (display names or ids, your Bandcamp username and fan id, your Discogs username)
  • Bandcamp collection and wishlist items, including hidden or private ones, when the extension sends them

Not uploaded: play counts, listening history, playback positions, analytics ids, and Tangle account tokens.

Turning backup off stops new uploads from that device. It does not delete the backup. Deleted tracks and lists are marked deleted so other devices drop them, and those rows stay until the backup is deleted. Email us to delete it.

Capture. Signed-in accounts can send an Instagram or X post, text, or an image so Tangle can find the music in it. We store the link and text; for Instagram, the page and video your own browser fetched, which can include a private post you are signed in to (our server does not contact Instagram); for X, the text, author, media, and links our server fetches from X’s public embed; images and video you upload, frames from that video, and thumbnails; what we found and whether you saved or dismissed it; and a log of each recognition request (provider, model, timing, token counts, and the tracks named). Prompts and responses are not stored.

Results for a public post, or for the same text, are cached for 30 days and reused when someone else captures it. Track matches are cached for 90 days. The cache holds the public content and author handle, not who captured it. Your captures are private and are never put on a shared list or a public page. Deleting one in the app hides it. The submission and media are removed when the account is deleted.

When you capture a post, we also process its author’s handle, caption, and media to find the music, on the basis of legitimate interest (GDPR Article 6(1)(f)). That stays with your capture until the account is deleted, and in the shared caches for up to 90 days. The author can object, or ask us to delete it, at [email protected].

To do this, our server sends the caption or text, the author handle, and the images or frames to OpenAI, and sometimes the same request to Google Gemini while we compare models. Audio is fingerprinted on our server. Only the fingerprint goes to Shazam (Apple). The audio does not. None of these requests include your account.

Matching. To link one recording across platforms, apps send platform track ids, the text of a search (usually artist and title), which track was found, and metadata measured from your files, a Rekordbox library, or a Bandcamp purchase, such as BPM and key. The cache is shared by all users. It does not hold titles, artists, or artwork from Spotify, Tidal, YouTube, SoundCloud, Apple Music, or Discogs. A local file or Rekordbox track is an opaque id, never a path. Each submission records the account that sent it, or an anonymous id if you are not signed in. That anonymous id comes from a machine and installation identifier, which we store only as a hash, with first seen, last seen, and a request count. We use it so an app that is not signed in can use the cache, and to limit abuse.

The payload is cleared 30 days after we process it. Links between platform ids are kept with no expiry and contain no personal data. Deleting your account detaches submissions from your account id and leaves the links in place.

Bandcamp downloads. When you send a purchase to one of your devices, the extension reads the download link with your Bandcamp login and our server passes that link to the device. We store the release (ids, title, artist, page and artwork URLs), the format, the device, progress, and which purchases that device already has. The link is encrypted and erased when the job ends. The audio goes from Bandcamp to your device. It does not pass through us. The job expires after 24 hours and the record is deleted 30 days after it finishes.

Shared lists and public pages. A shared list stores its name, its tracks (title, artists, album, duration, ISRC, cover URL, platform links — not your tags, ratings, or comments), who joined, who added each track, and the invite links. Anyone with the link can follow. Anyone with the collaboration link can edit while collaboration is on. Members see usernames, not emails. The join page shows the owner’s username, the list name, and counts, and is marked not to be indexed. If sharing stops, the record stays on the owner’s account.

A public page, such as a festival map, is published by us with the owner, and only we can take it down, at the owner’s request. It shows the list, its tracks, and the owner’s chosen display name.

Waitlist and logs. The waitlist stores your email and when you joined. Redeeming an access code records which code that account used.

Request logs store the method, path, and status code. They do not store IP addresses, user agents, or bodies. An IP address is held in memory to limit abusive traffic and discarded within an hour.

Analytics and feature flags

PostHog, hosted in the European Union, measures aggregate use.

The website records page views and download clicks: a pseudonymous browser and session id, kept in browser storage, the page URL, ordinary browser and device details, and which download you chose. We do not use autocapture, session replay, or person profiles. There is no consent banner and no opt-out on the website.

The apps send events under a random install id and a random session id. The install id is created on first launch, is not derived from your account, is not sent to our server, and lasts until you reinstall or choose Delete all data. Events carry the platform, OS version, app version, and distribution channel. They record the action rather than the music, for example a screen viewed, a track played or paused, a search run, or a setting changed. An event may include an internal id, such as a playlist id or a track id. It never includes a title, artist, URL, search text, playlist or tag name, or captured content. There is no session replay, autocapture, or crash reporting.

Share anonymous usage data, under Settings → Privacy, is on by default. Turning it off stops new events. The install id remains but is unused. Events are not tied to your email or account. Deleting your account does not delete them, because they are not linked to it.

Which features you see is decided by our own server, from your account (for example a beta list) and the app version. The flag definitions are downloaded from PostHog. Nothing about you is sent to PostHog for this, and these checks run even with analytics off.

Who else receives it

We do not share personal information for another company’s own purposes. Nothing is sold.

  • Services you connect. Your device talks to YouTube, Spotify, SoundCloud, Tidal, Apple Music, Bandcamp, and Discogs when you connect, sync, play, or edit. Our server sends title and artist text to Bandcamp, the iTunes Search API, Spotify’s catalogue, and YouTube Music search to resolve a public link, and it contacts Spotify, Tidal, YouTube, and SoundCloud to refresh a login.
  • Companies that run Tangle. Railway hosts the server and database. Cloudflare terminates TLS in front of the server, provides DNS and the CDN, and stores media in R2. Resend sends confirmation, magic-link, and password-reset email. PostHog receives analytics events.
  • Payments, only when you become a supporter. Vatly B.V. sells the supporter membership as merchant of record, and Mollie processes the payment. We send Vatly your account email; you give your name, billing address, and payment details to Vatly and Mollie on their checkout, and they use them under their own privacy policies and their legal duties to keep tax and payment records. We receive back the status of your membership, its renewal date, and the amount, not your card or bank details.
  • Recognition, only when you capture. OpenAI, sometimes Google Gemini, and Shazam, as described under Capture, without your account id.
  • People you share with, and the public. Shared lists show the fields above to anyone with the link. Public pages show them to everyone.
  • The law, if it requires a disclosure.

Those companies’ own privacy policies also apply.

Where it is stored, and how you delete it

Traffic uses HTTPS. On the device, the library and short-lived platform access tokens sit in the app’s database, under the operating system’s file permissions and under disk encryption if you have it on.

On the server, account, backup, capture, match, sharing, and download data is in PostgreSQL on Railway. Images and video are in Cloudflare R2, at an address that is not listed anywhere. The name is derived from the file, so anyone with the same file can work it out, and anyone who has the address can open the file without signing in. The same cover is stored once and shared by accounts that backed it up.

Passwords and one-time codes are hashed. Platform logins and Bandcamp download links are encrypted with keys that stay on the server. Other library, capture, and account data is not encrypted separately by the application. It is protected by the host and by access control. Only the Tangle team can open the production database and the Railway and Cloudflare accounts.

Some of these companies process personal data outside the European Economic Area, including in the United States. Analytics are processed in the European Union.

On the device, disconnecting Spotify, Tidal, YouTube, SoundCloud, or Discogs removes its tokens and the tracks and lists imported from it. Nothing is deleted on that platform. Delete all data clears the local database and settings, and Tangle’s local backup copies if you tick that option. Uninstalling removes the app’s files. Signing out removes the session from the device.

There is no self-service account deletion yet. Email [email protected] from the address on the account. We delete the profile, sessions, backup and backed-up artwork, captures and their media, shared lists you own, and download records, and we take the email off the waitlist. Match-cache rows are detached from your account id, not deleted. PostHog events are not linked to the account and are not deleted with it.

Why this is allowed

  • Contract (GDPR Article 6(1)(b)): the account, backup, capture, matching while you are signed in, shared lists, downloads, and the email those require. The waitlist email is used to respond to your request for access.
  • Legitimate interest (Article 6(1)(f)): pseudonymous analytics, so we can keep Tangle working; IP addresses for rate limiting, discarded within an hour; the anonymous match-cache id, so an app that is not signed in can use the cache and so we can limit abuse; and the author, caption, and media of a post you capture, so we can find the music in it. Analytics data is pseudonymous, is not used for profiling, and does not contain your library. The apps let you object by turning analytics off. The website does not yet have an opt-out.

We do not make a decision based solely on automated processing that has a legal or similarly significant effect on you.

Your rights

You can object to analytics and to other processing based on legitimate interest.

You can also ask for a copy of your personal data, a correction, deletion, a restriction, or a portable copy of data you provided under a contract.

If you have an account, write from its address so we can confirm it is you. Anyone else, including the author of a captured post, can write to the same address. We reply within one month. You can also complain to the Autoriteit Persoonsgegevens (autoriteitpersoonsgegevens.nl), or to the authority where you live.

Browser extension

The Chrome, Edge, and Firefox extension saves music from the web to your Tangle account and connects your Bandcamp collection.

It reads a page, and saves to your account, only when you click a Tangle button, a menu entry, or an import. In the background it talks only to api.tangle.music: to register this browser, to check which features are on, to pick up a download you started in a Tangle app, and to show whether a Bandcamp release you are viewing is already on your devices. If live sync is on, it also tells your apps that your Bandcamp or Discogs lists changed.

  • Save. The page address, title, and selected text.
  • NTS. The button next to a track sends that track’s artist and title, and nothing else from the page.
  • Instagram. The post as your browser can see it (metadata, caption, and media), including a private post you are signed in to. Our server does not contact Instagram.
  • X. A link only. Our server then fetches the public post.
  • Bandcamp. Your collection and wishlist (ids, links, titles), including private items when you choose to send them, and the purchase you pick to download. The extension does not download the audio. While you are signed in, opening a release also sends that release’s id so the button can show whether it is already on your devices.
  • Discogs. Your Discogs username, and a marker that your collection, wantlist, or lists changed, so the app can sync. Nothing else from the page is sent.
  • Sign-in. Your email and a Tangle session token. A password is sent once to our server and is not kept by the extension.

All of it goes to Tangle at api.tangle.music and is stored with your account. The extension sends no analytics and does not contact PostHog. To find the music in what you capture, our server may send its text and images to OpenAI or Google Gemini, and an audio fingerprint to Shazam, without your account. Nothing from the extension is sold.

It asks to run on bandcamp.com, instagram.com, nts.live, and discogs.com, on the Instagram media hosts the post uses, on api.tangle.music, and on the current tab when you save. Notifications are requested only if you turn on automatic purchase downloads.

Removing the extension deletes what it stored in the browser. Signing out removes your Tangle session and cached lists. Your settings, the posts already saved from this browser, and the Bandcamp items it has seen stay until you remove the extension. Items already on your account are deleted in the app, or with the account.

Changes

We post changes on this page and update the date. Questions go to [email protected].

© 2026 Tangle
Privacy PolicyTerms of ServiceSupportersCompany details
Baked in Amsterdam 😘