- file
- vocateca-com.transcript
- speakers
- You, vocateca
- address
- vocateca.com/en/
- duration
- 00:07:01 · 639 words
A written conversation about the questions people ask before downloading. Nothing was recorded, so there is no audio for this transcript. Which seems right.
Opening
Not even then. The speech model runs on your Mac’s own chip. Ask me what does go out. The list is complete, so it isn’t short, and I’ll read you all of it.
What stays, what leaves
Everything that touches the sound itself stays. Five things, all of them local.
| # | What | Where and how |
|---|---|---|
| 01 | Audio | Downloaded to your disk and transcribed there. Once a transcript is done, the downloaded audio is deleted by default. Files you imported yourself are kept, and a failed transcription keeps its audio so it can be retried. Never uploaded. |
| 02 | Transcription | Parakeet-TDT by default. Whisper takes over for languages outside Parakeet’s 25. Both run on Core ML and the Neural Engine. Qwen3-ASR, through MLX, if you choose it in Settings; never automatically. |
| 03 | Speaker detection | Who said what is worked out on your Mac. |
| 04 | Library | A local SQLite database, ~/Library/Application Support/Vocateca/state.sqlite. Full-text search runs against it, nowhere else. |
| 05 | Transcript files | Plain Markdown, TXT, SRT, HTML and OKF files in a folder you can open in Finder. |
And this is every connection the app makes: what, where to, and when, sorted by what sets it off. Two of them run in the background without you doing anything. Those are marked. At no other time does anything leave.
| # | What | Goes to | Only when |
|---|---|---|---|
| When you add, search or refresh what you follow8 entriesonly when you act | |||
| 01 | Podcast feeds | Straight to the RSS feed, nowhere in between.the show’s own server | A show refreshes, or you add one. |
| 02 | Podcast search | Apple’s public search, with the words you typed.itunes.apple.com/search | You search for a show. |
| 03 | Spotify links | The public embed page, read once to find the show. The audio then comes from the show’s feed.open.spotify.com/embed/… | You paste a Spotify link. |
| 04 | YouTube videos and captions | Fetched by yt-dlp, which ships inside the app.youtube.com | You add a video or playlist, or a channel refreshes. |
| 05 | YouTube search and channel feeds | The search results page, and each channel’s public feed.youtube.com/results · youtube.com/feeds/videos.xml | You search YouTube, or a channel you follow refreshes. |
| 06 | YouTube player | The YouTube Explorer plays the video in YouTube’s own player. The page around it comes from a small server inside the app on 127.0.0.1, which only your Mac can reach.youtube.com/iframe_api | You open a video in the YouTube Explorer. |
| 07 | Instagram, experimental | Fetched by gallery-dl, which ships inside the app, signed in as the separate Instagram account you connect. You sign in on Instagram’s own login page, shown in a window of the app.instagram.com | You connect an account, follow a creator, or a creator refreshes. |
| 08 | Artwork and thumbnails | Loaded once, then kept in a cache on your Mac.the server that hosts each image | A show, channel or search result is shown. |
| The first time a feature needs it3 entriesonce | |||
| 09 | Speech models | The model weights for Parakeet-TDT and Whisper, and for Qwen3-ASR if you choose it, plus the models that tell speakers apart. No network needed afterwards.huggingface.co | Parakeet-TDT while the app sets itself up. Whisper and Qwen3-ASR the first time you use them. |
| 10 | ffmpeg, ffprobe | A pinned release, checked against a fixed SHA-256 hash before it runs.github.com | While the app sets itself up, unless ffmpeg is already on your Mac. |
| 11 | yt-dlp, fallback only | A pinned version. Only used if the copy inside the app can’t run.github.com | Only if the bundled yt-dlp fails. |
| In the background2 entrieson by default | |||
| 12 | Update check | Asks whether a newer signed version exists. No system profile is sent. Our server counts these requests, in aggregate, to estimate how many installations are active.vocateca.com/appcast.xml | Once a day, and when you choose “Check for Updates…”. |
| 13 | Second update check | Asks GitHub for the latest published release. An interim path that runs alongside the first one. You can switch it off with update_check_enabled: false in settings.yaml; the app has no switch for it.api.github.com/repos/madevmuc/vocateca/releases/latest | Every time the app starts. |
| Only if you switch it on2 entriesoff by default | |||
| 14 | Notion | The transcript, with your Notion token.api.notion.com | You send a transcript to Notion. |
| 15 | Webhooks | A message signed with HMAC. The address may be on your own network.exactly the address you enter | A transcription finishes. |
| Only with an account5 entriesoff until you sign in | |||
| 16 | Signing in | Your email address, for a sign-in link.auth.vocateca.com | You sign in. Free never needs to. |
| 17 | Buying Pro | Our server asks Mollie for a payment page, which opens in your browser. The app never talks to Mollie itself.hook.vocateca.com/checkout | You upgrade in the app. |
| 18 | Pro status, cancelling, vouchers | Whether your Pro is active; your cancellation; a voucher code.hook.vocateca.com | While signed in, and when you cancel or redeem. |
| 19 | Invitations | Your invite link, and the code a friend enters.hook.vocateca.com | You share or redeem an invitation. |
| 20 | Export or delete your account | A copy of what the server holds about your account, or its deletion.hook.vocateca.com | You ask for it in the app. |
gallery-dl and yt-dlp ship inside the app. Neither is downloaded, except yt-dlp as the fallback above.
Some podcast feeds are still served over plain HTTP. vocateca allows that, so those feeds keep working.
Links in the app (the Chrome extension, the licence on GitHub) open in your browser, and only when you click them.
- Never
- Telemetry, analytics, tracking, crash reporting. None of those components exist in the app.
- Never
- Audio or a transcript on a vocateca server. Not in Free, not in Pro.
The one against GitHub came first and still runs alongside. Neither sends anything about you or your library. The first one is counted on our server, as a total, nothing more.
None. And you don’t have to take my word for it. The code that touches your audio is open; I’ll come back to that at 00:06:30.
Not for Free. Pro needs one: you sign in with an email link, and the account is how the app knows you paid. Your transcripts never go into it.
From listening to an archive
Podcasts: by RSS feed, by search, by Spotify link, or your whole subscription list as one OPML file. YouTube videos, playlists and channels; with the Chrome extension, one click under any video. Audio and video files from your disk. And Instagram reels and posts, which are marked experimental: that path can break without notice.
YouTube · Podcasts · Instagram · Local files
Parakeet-TDT, unless you change it. It covers 25 languages; for anything else, Whisper takes over on its own. If you have the memory for it, you can pick Qwen3-ASR in Settings. vocateca never switches to it by itself. All three come from Hugging Face; after that they work without a network.
A clean transcript with timestamps and who said what. Names a model tends to get wrong, you enter once in a glossary, and from then on they’re spelled right. We don’t print an accuracy percentage, because we have no method we’d stand behind.
Working with it
It isn’t. Every transcript exports in five formats, all made from the same source. Here are the first lines of this conversation, as vocateca would write them:
--- title: "vocateca.com, opening" show: "vocateca.com" language: en duration: 00:00:16 words: 32 --- [[vocateca.com]] **vocateca** Podcasts and videos become text on your own Mac. The audio never leaves it. **You** Never? Not even to get transcribed? **vocateca** Not even then. The speech model runs on your Mac’s own chip.
Podcasts and videos become text on your own Mac. The audio never leaves it. Never? Not even to get transcribed? Not even then. The speech model runs on your Mac’s own chip.
1 00:00:00,000 --> 00:00:06,600 [S1] Podcasts and videos become text on your own Mac. The audio never leaves it. 2 00:00:06,800 --> 00:00:10,200 [S2] Never? Not even to get transcribed? 3 00:00:10,400 --> 00:00:16,400 [S1] Not even then. The speech model runs on your Mac’s own chip.
<article>
<header>
<h1>vocateca.com, opening</h1>
<p>vocateca.com</p>
</header>
<p>Podcasts and videos become text on your own Mac. The audio never leaves it.</p>
<p>Never? Not even to get transcribed?</p>
<p>Not even then. The speech model runs on your Mac’s own chip.</p>
</article>--- type: reference title: "vocateca.com, opening" source: "page" speakers: ["Speaker 1", "Speaker 2"] tags: [transcript] --- ## Transcript **[00:00]** Speaker 1: Podcasts and videos become text on your own Mac. The audio never leaves it. **[00:07]** Speaker 2: Never? Not even to get transcribed? **[00:10]** Speaker 1: Not even then. The speech model runs on your Mac’s own chip.
Markdown lands straight in your vault, with frontmatter and a link to the show, and without a single network request. Notion and webhooks are there too, signed with HMAC, and both stay off until you switch them on.
There’s a command line with JSON output on every command, and a built-in MCP server: more than 40 tools an assistant can use to search and read your library. LLM workflows
# one transcript, as OKF, to stdout vocateca-cli library export --format okf # start the MCP server over stdio vocateca-cli mcp
Price
Free costs nothing, for as long as you use it. Pro does the routine for you.
Free
- Unlimited transcription, started by you
- Every source, every export format
- Speaker detection and glossary
- Command line and MCP server
Pro
- Everything in Free
- New episodes downloaded on a schedule
- Transcribed in the background
- Folder watch and a daily summary
Open core
Because you can read the code that downloads, transcribes and stores your audio. The engine, the command line and the MCP server are open source under Apache 2.0. The Mac app’s interface and the billing behind Pro are not, and we say so. What is open, what is not