Skip to main content
To transcribe an episode Audivo reads two kinds of thing from the public internet: the show’s RSS feed and the episode’s audio file. Nothing else. A feed may declare a publisher-supplied transcript; Audivo records that it is declared and does not fetch it yet. It never fetches a URL a caller hands it directly as audio, and it never fetches on a schedule: every read is caused by a request of yours.

How Audivo identifies itself

Feed and audio requests carry the User-Agent HarkApi/0.1 and no credential. Publishers see an ordinary, honest client.

The rules every fetch obeys

  • HTTPS only. A plain-HTTP feed URL is accepted only where a publisher’s feed redirects to one, and the redirect chain is capped.
  • No private addresses. Loopback, private, link-local, multicast, reserved and cloud-metadata ranges are refused for both IPv4 and IPv6, and the check is repeated after DNS resolution and after every redirect. A request that tries is refused as unsafe_source without disclosing what was found.
  • No credentials in URLs.
  • Bounded reads. Connect, read and total timeouts on every request; byte caps on feeds and transcripts; a 5 GB cap on audio; a decompression-ratio cap; content-type allow-lists; and feeds parsed with external entities disabled and depth limited.
  • Nothing sensitive is logged. No signed query strings, no authorization headers, no API keys, and never a full customer-supplied URL.
  • Retries are bounded, and a denylist honours takedown requests.

What is read from a feed

The item’s guid, title, publish date, enclosure URL and declared size, the declared duration, and whether a transcript is linked. Show notes are not stored.

Where inference happens

Audio is chunked and sent to one inference sub-processor over an authenticated connection, with the model version pinned; a provider-side model change fails the job closed rather than switching engines silently. The full sub-processor list is on Your data.