- IChannel: creators -> sub-channels -> video posts (public listing API, search mapped) - IRequiresMediaInfoCallback -> signed proxy URLs; stream controller rewrites HLS so the AES-128 key is fetched server-side with the session cookie, segments stay on the CDN - delivery/info cached per token lifetime and throttled (~2/min) - config page: paste sails.sid + validate, extra creators, quality, search test - scripts/package.sh -> plugin folder + zip + md5 + manifest.json; Gitea release workflow - research docs, HAR analysis (HAR itself gitignored), install-pi5.sh Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
5.3 KiB
Floaty
An unofficial Floatplane client for Windows, Linux, MacOS, iOS and Android.
⚠️Spaghetti code
This repository is the tartar sauce spaghetti code of Floaty.
Download Here
📃Feature Matrix
| Feature | Windows | MacOS | Linux | Android | iOS | Info |
|---|---|---|---|---|---|---|
| Channel Page | ✅ | ✅ | ✅ | ✅ | ✅ | |
| Post Page | ✅ | ✅ | ✅ | ✅ | ✅ | |
| Playback | ✅ | ✅ | ✅ | ✅ | ✅ | |
| Livestream Page | ✅ | ✅ | ✅ | ✅ | ✅ | |
| Livesteam playback | ✅ | ✅ | ✅ | ✅ | ✅ | |
| Live Chat | ⚠️ | ⚠️ | ⚠️ | ⚠️ | ⚠️ | Awaiting Fix from floatplane. |
| Live Chat Polls | ✅ | ✅ | ✅ | ✅ | ✅ | |
| Live Chat Emotes | ⚠️ | ⚠️ | ⚠️ | ⚠️ | ⚠️ | |
| Floatplane Settings | ⚠️ | ⚠️ | ⚠️ | ⚠️ | ⚠️ | Some settings are there. |
| Home Page | ✅ | ✅ | ✅ | ✅ | ✅ | |
| Whenplane intergration | ✅ | ✅ | ✅ | ✅ | ✅ | |
| Updater | ✅ | ✅ | ✅ | ✅ | ✅ | |
| PiP | ✅ | ✅ | ✅ | ✅ | ❌ | |
| Mini Player | ✅ | ✅ | ✅ | ✅ | ✅ | |
| Subtitles | ✅ | ✅ | ✅ | ✅ | ✅ | |
| Download | ✅ | ✅ | ✅ | ✅ | ✅ | |
| Login | ✅ | ✅ | ✅ | ✅ | ✅ | |
| Notifications | ❌ | ❌ | ❌ | ❌ | ❌ | Deciding on how to complete this. |
🛠️ How to Compile and Run
1. Install Flutter
First, install Flutter by following the official guide:
➡️ Flutter Installation Guide
Make sure to set up your system PATH to include the flutter/bin directory.
Verify installation:
flutter --version
2. Clone the repository
git clone https://github.com/floatyfp/floaty.git
cd floaty
3. Install dependencies
Some dependencies rely on Rust, install Rust first by following the official guide:
➡️ Rust Installation Guide
flutter pub get
4. Run the app
Make sure you have an Android/iOS device or a desktop environment ready.
To get a list of available devices and select an option to run on:
flutter run
Or list devices and run on a specific one:
flutter devices
flutter run -d DEVICE_ID
5. Build the app
You can build the app in either release or debug mode. If you're building it in release refer to step 6 to setup certificates.
-
Android APK
Build a release APK:flutter build apk --<INSERT MODE> -
iOS
Build for iOS (requires macOS and Xcode):flutter build ios --<INSERT MODE> -
Windows
flutter build windows --<INSERT MODE> -
macOS
flutter build macos --<INSERT MODE> -
Linux
flutter build linux --<INSERT MODE>
6. (Optional) Setup Release Signing for Android
To publish a signed APK or App Bundle:
- Generate a signing key:
keytool -genkey -v -keystore ~/your_keystore_name.jks -keyalg RSA -keysize 2048 -validity 10000 -alias your_key_alias - Create a
key.propertiesfile in theandroid/directory:storePassword=your_store_password keyPassword=your_key_password keyAlias=your_key_alias storeFile=/path/to/your_keystore_name.jks - Edit
android/app/build.gradleto load thekey.propertiesand configure signingConfigs.
Full guide here: Signing Flutter apps