PortCast

Last updated 2026-05-30 (added ยง3 covering the PortCast Export browser extension)

Privacy policy

This policy covers three distinct surfaces operated by Trimplayer: the PortCast spec site at portcast.org, the PortCast Spotify export service at import.portcast.org, and the PortCast Export browser extension. They handle data very differently, so each is described on its own.

1. portcast.org — the spec site

portcast.org is a static documentation site describing the PortCast protocol. It does not require an account, does not accept user input, and does not collect personal information.

The site loads Google Analytics 4 (measurement ID G-F72L90KQPR) for aggregate traffic statistics. Google may set cookies and process IP-address-based location data under Google’s privacy policy. You can opt out by blocking analytics in your browser or installing the Google Analytics opt-out add-on.

No other third-party scripts run on portcast.org.

2. import.portcast.org — the Spotify export service

import.portcast.org is a stateless service that takes a listener’s Spotify library and returns it as a .portcast.json download. It exists as a reference implementation of the PortCast protocol — you can read its source on GitHub.

What data we access

When you click Connect Spotify, you are redirected to Spotify’s authorization screen. If you approve, we request the following scopes only:

  • user-library-read — your followed shows and saved episodes.
  • user-read-playback-position — the resume position Spotify records for your saved episodes.
  • user-read-email, user-read-private — your Spotify display name and email, written to the owner field of the export so the file is self-identifying when you re-import it elsewhere.

What we do with the data

We use the access token Spotify issues to call the Spotify Web API and fetch the data above once. We assemble it into a PortCast document and return it to you as a file download.

We do not store the data on disk, in a database, or in any backup. There is no user account, no server-side history, and nothing to delete — once the response is sent, the data exists only in your downloaded file. The PortCast export service has no database.

Cookies

To complete the OAuth round-trip we set two short-lived cookies on import.portcast.org, both HttpOnly, Secure, and SameSite=Lax:

  • pc_state — a signed anti-CSRF state value valid for 10 minutes, used to verify the redirect coming back from Spotify.
  • pc_tok — a signed cookie carrying your Spotify access token from the OAuth callback to the export step, valid for 5 minutes and cleared the moment the export response is generated.

Both cookies are cryptographically signed with a server-side secret. We use no analytics cookies or third-party trackers on import.portcast.org.

Third parties

The only third party involved is Spotify (the source of the data you are exporting). Your use of the Spotify authorization flow is governed by Spotify’s privacy policy and terms of use. We do not share your Spotify data with any party other than you.

Revoking access

You can revoke our app’s access to your Spotify account at any time from your Spotify account’s connected-apps page. Because we hold no long-lived token, revocation takes effect immediately the next time you would otherwise return to the service.

3. PortCast Export — the browser extension

PortCast Export is a Chrome / Edge browser extension that performs the same job as import.portcast.org but entirely on the user’s own machine, without any of the listener’s data ever reaching us. Source code lives on GitHub.

How it works

When you click the extension’s toolbar icon and choose “Export from Spotify,” the extension uses your existing open.spotify.com session — the same one Spotify’s own web player uses — to call a small number of read-only Spotify Web API endpoints. The response is held in your browser’s memory just long enough to assemble a PortCast document, and saved to disk via the standard browser Save-As dialog. No request is sent to Trimplayer or to import.portcast.org.

What data the extension reads

The extension only requests the following Chrome permissions:

  • downloads — to write the .portcast.json file via the browser’s Save-As dialog.
  • Host access to open.spotify.com and api.spotify.com only — so the extension can call those domains using your existing Spotify cookies. The extension never reads any other site.

It does not request access to your tabs, your reading history, your cookies on other sites, or <all_urls>. It cannot see anything you do outside open.spotify.com / api.spotify.com.

Storage, sharing, telemetry

  • Storage: the extension stores nothing on disk between sessions. There is no storage permission and no IndexedDB use. Your exported file lives wherever you chose to save it.
  • Sharing: the extension never contacts any server other than Spotify. There is no telemetry, no analytics, no remote logging, and no auto-update channel beyond the standard Chrome Web Store mechanism.
  • Third parties: the only third party in the loop is Spotify, whose privacy policy governs the underlying account.

Revoking access

Because the extension only acts when you click its icon and only uses your existing Spotify session, “revocation” is two distinct actions: removing the extension (Chrome → chrome://extensions → Remove) stops it from ever running again, and signing out of Spotify on open.spotify.com invalidates the session it would have used.

4. Hosting and jurisdiction

Both services are operated by Trimplayer. The static site at portcast.org is served by GitHub Pages. The export service at import.portcast.org runs on infrastructure hosted by Amazon Web Services in the United States.

5. Changes to this policy

We will update this page if the data flows above change. Material changes will be reflected in the “Last updated” date at the top of this page.

6. Contact

Questions or concerns about privacy can be sent to trimplayerapp@gmail.com.