Floatplane channel plugin for Jellyfin 10.10.x: browse, HLS proxy, cookie session, CI release
Some checks failed
release / build-release (push) Has been cancelled
Some checks failed
release / build-release (push) Has been cancelled
- 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>
This commit is contained in:
121
doc/research/reference-sources/floaty_README.md
Normal file
121
doc/research/reference-sources/floaty_README.md
Normal file
@@ -0,0 +1,121 @@
|
||||
# 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](https://floaty.fyi/download)
|
||||
|
||||
## 📃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](https://docs.flutter.dev/get-started/install)
|
||||
|
||||
Make sure to set up your system PATH to include the `flutter/bin` directory.
|
||||
Verify installation:
|
||||
```bash
|
||||
flutter --version
|
||||
```
|
||||
|
||||
### 2. Clone the repository
|
||||
|
||||
```bash
|
||||
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](https://www.rust-lang.org/tools/install)
|
||||
|
||||
```bash
|
||||
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:
|
||||
```bash
|
||||
flutter run
|
||||
```
|
||||
Or list devices and run on a specific one:
|
||||
```bash
|
||||
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:
|
||||
```bash
|
||||
flutter build apk --<INSERT MODE>
|
||||
```
|
||||
|
||||
- **iOS**
|
||||
Build for iOS (requires macOS and Xcode):
|
||||
```bash
|
||||
flutter build ios --<INSERT MODE>
|
||||
```
|
||||
|
||||
- **Windows**
|
||||
```bash
|
||||
flutter build windows --<INSERT MODE>
|
||||
```
|
||||
|
||||
- **macOS**
|
||||
```bash
|
||||
flutter build macos --<INSERT MODE>
|
||||
```
|
||||
|
||||
- **Linux**
|
||||
```bash
|
||||
flutter build linux --<INSERT MODE>
|
||||
```
|
||||
|
||||
### 6. (Optional) Setup Release Signing for Android
|
||||
|
||||
To publish a signed APK or App Bundle:
|
||||
|
||||
1. Generate a signing key:
|
||||
```bash
|
||||
keytool -genkey -v -keystore ~/your_keystore_name.jks -keyalg RSA -keysize 2048 -validity 10000 -alias your_key_alias
|
||||
```
|
||||
2. Create a `key.properties` file in the `android/` directory:
|
||||
```properties
|
||||
storePassword=your_store_password
|
||||
keyPassword=your_key_password
|
||||
keyAlias=your_key_alias
|
||||
storeFile=/path/to/your_keystore_name.jks
|
||||
```
|
||||
3. Edit `android/app/build.gradle` to load the `key.properties` and configure signingConfigs.
|
||||
|
||||
Full guide here: [Signing Flutter apps](https://docs.flutter.dev/deployment/android#signing-the-app)
|
||||
Reference in New Issue
Block a user