# Third-party reference sources (NOT part of the plugin) Snapshots of files from other open-source Floatplane clients, fetched 2026-10-25 for study only. Each file keeps its upstream licence; nothing here is compiled into or shipped with the plugin. | Prefix | Project | Why it matters | |--------|---------|----------------| | `bz_*` | bmlzootown/FloatplaneAPI (API-shape canary, Node) | cleanest device-flow + DPoP + refresh implementation; measured token lifetimes | | `fpts_*`, `fpapi_*` | Inrixia/floatplaneAPI.ts (`floatplane` npm) | typed REST wrapper, device login via openid-client, got hooks | | `fpdl_*` | Inrixia/floatplane-downloader | delivery `download` scenario, rate-limit semaphore, channel sorting | | `hydra_*` | bmlzootown/Hydravion (Roku, BrightScript) | hand-rolled device flow, live-stream polling, Bearer on the video node | | `wf_*` | jamamp/Wasserflug-tvOS (Swift) | `DeliveryHelper.getBestUrl`, HLS key loader adding Bearer, progress sync | | `floaty_*` | floatyfp/floaty (Flutter) | auth-code+PKCE, rate-limit manager, mpv headers, download URL trick | | `fn_*` | coulterpeterson/FloatNative (Kotlin/Swift) | DPoP manager, playlist rewrite (key via auth, segments plain) | | `ytdlp_floatplane.py` | yt-dlp extractor | v3 shapes, `#EXT-X-KEY` handling, channel URL resolution | | `spec_*`, `oidc.json` | jamamp/FloatplaneAPI OpenAPI spec + live OIDC discovery | request/response schemas | | `chaosflix/` | praetorianer777/chaosflix-jellyfin (C#) | **closest prior art**: `IChannel` + `IRequiresMediaInfoCallback` + HMAC-signed proxy controller + sync task + meta.json packaging + CI release workflow |