> ## Documentation Index
> Fetch the complete documentation index at: https://docs.audivo.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Supported inputs

> What you can point Audivo at, what you cannot yet, and how a pointer becomes an episode.

Audivo transcribes **public podcast episodes** that publishers distribute through
an RSS feed. Three ways name one:

| input                                 | where you get it                                                                                       | takes you to                                                     |
| ------------------------------------- | ------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------- |
| `feed_url` + `guid`                   | `search_shows` or `GET /v1/search/shows` for the feed, `GET /v1/shows/{show_id}/episodes` for the guid | one episode of a known show                                      |
| `url`, an Apple Podcasts episode link | the "Share" link on Apple Podcasts                                                                     | the same episode, resolved through Apple's catalogue to its feed |
| `episode_id`                          | any earlier response that named the episode                                                            | an episode Audivo has already seen                               |

Every path ends in the same canonical `episode_id`, so the same episode named
three ways is one episode, one cache entry and one price.

## What identifies an episode

Two things: the feed's own `guid` for the item, and the audio file behind it.
Audivo reads the feed, finds the item, and records the enclosure's URL, declared
size and publish date. That last pair, plus a probe of the audio, becomes the
**asset revision** the cache is keyed on: a publisher who re-uploads an episode
gets a new revision and a fresh transcript, while a caller who asks for an
unchanged episode gets the cached one.

Feeds that declare no `<itunes:duration>` for an item cannot be priced from
metadata and are refused with `source_not_supported`; a feed too large to read
within the request's budget is `feed_dead`. Both are listed on
[Errors](/errors).

## Not supported

These are refused, not queued, so nothing is reserved:

* Direct audio URLs and file uploads.
* Spotify-exclusive or YouTube-only shows, and any other pointer that does
  not resolve to a public RSS feed.
* Audio over 10 hours or 5 GB.
* Music-led shows are not refused, but they are marked `music_led` on search
  and chart results and excluded from chart-derived selections unless you opt
  in: the transcription quality bar is spoken-word audio.

## Test keys

The API reference describes `hk_test_` keys that answer with committed
fixtures and never call inference. They are declared in the contract but
**not yet issued**: a request with one is refused with a message saying so.
Use a live key against your own free grant for now.
