crabidy/fyyd
Test User ab3bd7c63a docs: bring the book and every README up to date
The docs drifted behind three changes: the /queues + /bookmarks +
/captures split folding into one /crabidy provider, three providers
arriving (soundcloud, jamendo, abs) with nothing written about them, and
the spectrum toggle moving off v to f when library visual mode took v/V.

- The book gains a page per undocumented provider — /soundcloud,
  /jamendo, /abs — each with its tree, its playback path, every config
  option, and how to log in. The providers index and intro list all nine
  roots in the order the server actually serves them.
- Every provider now documents its login: Tidal's device flow (and that
  a broken tidaly.toml is the one fatal provider config), audiobookshelf
  API keys, the optional SoundCloud token and where to read it out of a
  browser, YouTube cookie exports, Jamendo's shipped key, and "nothing
  to do" for fyyd and /fs.
- fsdy's README described three server-managed mounts under
  ~/.config/crabidy that have not existed for a while; it now describes
  /crabidy over the state dir plus the shared content store, and how
  deletes there never touch store audio.
- Stale /captures/<name> save paths in the tidaldy and ytdy READMEs are
  /crabidy/<name>. The TUI key table, the README walkthrough, and the
  spectrum section use f, and visual mode (v/V) is documented.
- config.md and the README list all seven provider config files, say
  plainly that credentials are stored in cleartext, and cover the audio
  output device; the CLI page documents audio-devices and features.
- No README or docs page references architecture/, quality/, or plan/
  any more: the book describes the system as it is, and points at the
  crate READMEs for usage and config.
- devenv-docs.nix was never committed even though devenv.nix imports it,
  so a fresh clone could not enter the shell at all. It is in now, which
  also makes the README's `devenv shell -- docs` work.

Also fixes two ./store.md links in providers/fs.md that pointed one
directory too shallow.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-25 11:04:25 +02:00
..
src Add the fyyd podcast provider (/fyyd) 2026-07-23 17:29:13 +02:00
Cargo.toml Add the fyyd podcast provider (/fyyd) 2026-07-23 17:29:13 +02:00
README.md docs: bring the book and every README up to date 2026-07-25 11:04:25 +02:00

README.md

fyyd — the podcast provider

Mounts podcasts at /fyyd in the crabidy library, backed by fyyd'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):

# 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.