51 lines
1.9 KiB
Markdown
51 lines
1.9 KiB
Markdown
# fyyd — the podcast provider
|
|
|
|
Mounts podcasts at **`/fyyd`** in the crabidy library, backed by
|
|
[fyyd](https://fyyd.de)'s public podcast search engine (`api.fyyd.de`).
|
|
No account or API key is required.
|
|
|
|
## How it works
|
|
|
|
A podcast search returns *podcasts*, and each podcast is a container of
|
|
*episodes*, so `/fyyd` carries one level more than the music providers:
|
|
|
|
- **`/fyyd/search`** works with no login. Press `%` to create a search
|
|
term; the term becomes a persistent child node listing the matching
|
|
podcasts. Terms are renamable (`e`, re-runs the search) and deletable
|
|
(`d`). Terms live in memory — a server restart forgets them, but
|
|
navigating to an old term path recreates it.
|
|
- **`/fyyd/hot`** is a fixed browse of fyyd's currently featured ("hot")
|
|
podcasts, so the provider is useful with no typing.
|
|
- **`/fyyd/<branch>/<podcast>`** lists one podcast's episodes as tracks.
|
|
It is queueable and downloadable, so you can queue or `W`-capture a
|
|
whole podcast at once.
|
|
|
|
An episode is an ordinary track whose audio is the `enclosure` URL from
|
|
the podcast's feed — a plain media file the built-in player streams
|
|
directly. No sidecar, cipher solving, or byte-proxying is involved.
|
|
|
|
## Configuration — `fyyd.toml`
|
|
|
|
All options are optional (fyyd needs no credentials):
|
|
|
|
```toml
|
|
# search_results = 20 # podcasts per search term
|
|
# hot_count = 20 # featured podcasts under /fyyd/hot
|
|
# episodes_per_podcast = 100 # episodes per podcast (also a hard cap)
|
|
# call_timeout_secs = 30 # per-request timeout
|
|
# base_url = "https://api.fyyd.de/0.2" # API base override
|
|
```
|
|
|
|
## Logging in
|
|
|
|
Nothing to do — fyyd's search API is public. There is no account, no key, and
|
|
no token to maintain.
|
|
|
|
## Notes
|
|
|
|
All network access goes through the `Fyyd` trait (`fyyd/src/api.rs`), so the
|
|
provider's tree/path logic is unit-tested with a fake and no network.
|
|
|
|
Build the server without the `fyyd` cargo feature to leave this provider out
|
|
of the binary entirely.
|