diff --git a/Home.md b/Home.md index 9508e88..557b136 100644 --- a/Home.md +++ b/Home.md @@ -6,6 +6,12 @@ A Jellyfin **channel plugin** that shows your Floatplane subscriptions (creators - Install: Dashboard → Plugins → Repositories → add `https://gitea.brasse-pc.eu/brasse/jellyfin-plugin-floatplane/releases/download/latest/manifest.json`, or run `install-pi5.sh` from the release. - Built for **Jellyfin 10.10.x** (.NET 8, `targetAbi 10.10.0.0`). One AnyCPU DLL for x64 and arm64 (Pi5). +## Tutorials + +- [Install tutorial](Install) — add the repository, install from the catalogue, restart, paste the session cookie (with screenshots) +- [Update tutorial](Update) — automatic updates, updating through the catalogue, `install.sh` +- [Floatplane API notes](Floatplane-API) + ## What's new (2026-10-25, v0.2) - **"All videos" folder** per creator: every sub-channel's videos in release order diff --git a/Install.md b/Install.md new file mode 100644 index 0000000..7854849 --- /dev/null +++ b/Install.md @@ -0,0 +1,102 @@ +# Install tutorial (Jellyfin 10.10.x) + +Step-by-step installation of the Floatplane plugin through Jellyfin's own plugin +catalogue. Every screenshot is from a stock Jellyfin 10.10.7 (linuxserver.io image). +You need to be a Jellyfin **administrator**. Total time: about two minutes. + +Other ways to install (no screenshots): the `install.sh` script and a manual unzip — +see the [README](https://gitea.brasse-pc.eu/brasse/jellyfin-plugin-floatplane#install). + +## 1. Add the plugin repository + +Open **Dashboard → Plugins → Repositories**. The list only contains the default +"Jellyfin Stable" repository. + +![Repositories page](img/install-01-repositories.png) + +Press the **+** button next to the "Repositories" title. In the dialog, enter any name +and this URL: + +``` +https://gitea.brasse-pc.eu/brasse/jellyfin-plugin-floatplane/releases/download/latest/manifest.json +``` + +![New repository dialog](img/install-02-add-repository.png) + +Press **Save**. Jellyfin warns that third-party repositories carry risks — confirm with +**Ok**. + +![Confirm repository](img/install-03-confirm-repository.png) + +The repository now appears in the list. + +![Repository added](img/install-04-repository-added.png) + +## 2. Install the plugin from the catalogue + +Open **Dashboard → Plugins → Catalog** and scroll to the **Channels** section. The +Floatplane card shows the plugin logo (the catalogue may take a few seconds to load). + +![Catalog](img/install-05-catalog.png) + +Click the card. The plugin page shows the description, the newest revision and the +**Install** button. + +![Plugin page](img/install-06-plugin-page.png) + +Press **Install** and confirm the warning with **Install**. + +![Confirm install](img/install-07-confirm-install.png) + +## 3. Restart Jellyfin + +Back on **Dashboard → Plugins → My Plugins** the Floatplane card says **Status Restart**: +the files are downloaded, but plugins are only loaded when the server starts. + +![Restart required](img/install-08-restart-required.png) + +Go to **Dashboard**, press **Restart** and confirm. + +![Restart confirm](img/install-09-restart.png) + +Wait half a minute and log in again. **My Plugins** now shows Floatplane with +**Status Active**. + +![Plugin active](img/install-10-active.png) + +> If the Restart button is missing (some Docker set-ups), restart the container instead: +> `docker restart jellyfin`. + +## 4. Configure the plugin + +Click the Floatplane card (or its ⋮ menu → Settings). The settings page opens with a +status block at the top. + +**Session.** For playback the plugin needs your Floatplane session. Log in at +floatplane.com in your browser, open the developer tools (F12) → *Application* +(Chrome/Edge) or *Storage* (Firefox) → *Cookies* → `https://www.floatplane.com`, copy +the **Value** of the cookie named `sails.sid` and paste it here. Press +**Validate cookie** — the plugin answers with your user name and subscriptions. + +![Session settings](img/install-11-settings-session.png) + +**Extra creators** is optional: creators you are not subscribed to but want to browse +(public listings work without a session, playback does not). The example uses +`linustechtips`. + +![Extra creators](img/install-12-settings-creators.png) + +Press **Save** at the bottom. The status block reloads and lists the creators the plugin +found, with their sub-channels. + +![Saved](img/install-13-settings-saved.png) + +## 5. Browse + +Go to the home screen: a **Floatplane** tile is now under *My Media*. Open it to see the +creators, then "All videos" and the sub-channels. Playback needs the session from step 4. + +![Home](img/install-14-home.png) + +Next: [Update tutorial](Update) · [Floatplane API notes](Floatplane-API) · +[Full usage guide](https://gitea.brasse-pc.eu/brasse/jellyfin-plugin-floatplane/src/branch/master/doc/usage.md) diff --git a/Update.md b/Update.md new file mode 100644 index 0000000..1671da3 --- /dev/null +++ b/Update.md @@ -0,0 +1,83 @@ +# Update tutorial + +How to get a newer version of the Floatplane plugin. Three ways, from least to most +manual. All of them keep your settings (the configuration file is separate from the +plugin folder). + +## Automatic (default) + +Jellyfin's scheduled task **Update Plugins** runs every night and installs newer +versions of plugins that come from a configured repository — the Floatplane plugin +ships with `autoUpdate` enabled. After an automatic update the plugin shows +**Status Restart** in *My Plugins* until Jellyfin is restarted, so in practice: when +you notice "Restart", restart the server. + +You can run the task by hand under **Dashboard → Scheduled Tasks → Update Plugins** (the +▶ button). + +![Update Plugins task](img/update-06-update-plugins-task.png) + +## Through the catalogue (manual, with screenshots) + +**My Plugins** shows the installed version — here `0.2.0.0`. + +![Current version](img/update-01-current-version.png) + +Open **Dashboard → Plugins → Catalog**, scroll to **Channels** and click the Floatplane +card. The plugin page lists the newest revision from the repository. If it is newer than +what *My Plugins* shows, press **Install**. + +![Plugin page with newer revision](img/update-02-plugin-page.png) + +Confirm the warning. + +![Confirm](img/update-03-confirm.png) + +*My Plugins* now shows both versions: the new one with **Status Restart**, the old one +as **Superceded**. + +![Restart required](img/update-04-restart-required.png) + +Restart Jellyfin (**Dashboard → Restart**, or `docker restart jellyfin`). After the +restart the new version is **Active**; the old folder can be removed from the card's +⋮ menu → *Uninstall* (optional — Jellyfin ignores superseded versions). + +![New version active](img/update-05-new-version.png) + +## With the install script (Docker / native hosts) + +The script downloads the newest release, verifies the checksum, replaces the plugin +folder and restarts Jellyfin. Run it on the host (with `sudo` if the plugin directory +needs it); `--dry-run` only prints what it would do. + +```bash +curl -fsSL https://gitea.brasse-pc.eu/brasse/jellyfin-plugin-floatplane/releases/download/latest/install.sh | sh -s -- --dry-run +curl -fsSL https://gitea.brasse-pc.eu/brasse/jellyfin-plugin-floatplane/releases/download/latest/install.sh | sh +``` + +Example dry-run output: + +``` +Floatplane plugin 0.2.0.5 (release latest) + package: https://gitea.brasse-pc.eu/brasse/jellyfin-plugin-floatplane/releases/download/latest/floatplane_0.2.0.5.zip + checksum: b5e6b689... + install: /srv/docker/jellyfin/data/plugins/Floatplane_0.2.0.5 + remove: /srv/docker/jellyfin/data/plugins/Floatplane_0.2.0.0 + owner: 1000:1000 + restart: docker restart jellyfin +dry run - nothing changed +``` + +Variables: `TAG` (default `latest`, or `vX.Y.Z`), `JELLYFIN_CONTAINER` (default +`jellyfin`; empty = native install), `JELLYFIN_CONFIG_DIR` (host path of the container's +`/config`; read from `docker inspect` when omitted), `PLUGINS_DIR` (override the +detected plugin directory), `PUID`/`PGID`. + +## Which version is installed? + +*My Plugins* shows the version under the plugin name, and the top of the plugin's +settings page says `Plugin x.y.z.n`. Releases are listed at +https://gitea.brasse-pc.eu/brasse/jellyfin-plugin-floatplane/releases — `latest` always +carries the newest build from `master`, `vX.Y.Z` tags are versioned releases. + +See also: [Install tutorial](Install) · [Home](Home) diff --git a/img/install-01-repositories.png b/img/install-01-repositories.png new file mode 100644 index 0000000..4905b3e Binary files /dev/null and b/img/install-01-repositories.png differ diff --git a/img/install-02-add-repository.png b/img/install-02-add-repository.png new file mode 100644 index 0000000..005a3d0 Binary files /dev/null and b/img/install-02-add-repository.png differ diff --git a/img/install-03-confirm-repository.png b/img/install-03-confirm-repository.png new file mode 100644 index 0000000..2e38132 Binary files /dev/null and b/img/install-03-confirm-repository.png differ diff --git a/img/install-04-repository-added.png b/img/install-04-repository-added.png new file mode 100644 index 0000000..61418d6 Binary files /dev/null and b/img/install-04-repository-added.png differ diff --git a/img/install-05-catalog.png b/img/install-05-catalog.png new file mode 100644 index 0000000..3a43cc5 Binary files /dev/null and b/img/install-05-catalog.png differ diff --git a/img/install-06-plugin-page.png b/img/install-06-plugin-page.png new file mode 100644 index 0000000..9506ab5 Binary files /dev/null and b/img/install-06-plugin-page.png differ diff --git a/img/install-07-confirm-install.png b/img/install-07-confirm-install.png new file mode 100644 index 0000000..a5edfc1 Binary files /dev/null and b/img/install-07-confirm-install.png differ diff --git a/img/install-08-restart-required.png b/img/install-08-restart-required.png new file mode 100644 index 0000000..0e3cb4d Binary files /dev/null and b/img/install-08-restart-required.png differ diff --git a/img/install-09-restart.png b/img/install-09-restart.png new file mode 100644 index 0000000..c82d424 Binary files /dev/null and b/img/install-09-restart.png differ diff --git a/img/install-10-active.png b/img/install-10-active.png new file mode 100644 index 0000000..c0d4bd1 Binary files /dev/null and b/img/install-10-active.png differ diff --git a/img/install-11-settings-session.png b/img/install-11-settings-session.png new file mode 100644 index 0000000..84619ea Binary files /dev/null and b/img/install-11-settings-session.png differ diff --git a/img/install-12-settings-creators.png b/img/install-12-settings-creators.png new file mode 100644 index 0000000..73f61f2 Binary files /dev/null and b/img/install-12-settings-creators.png differ diff --git a/img/install-13-settings-saved.png b/img/install-13-settings-saved.png new file mode 100644 index 0000000..e7c140a Binary files /dev/null and b/img/install-13-settings-saved.png differ diff --git a/img/install-14-home.png b/img/install-14-home.png new file mode 100644 index 0000000..a9b9b04 Binary files /dev/null and b/img/install-14-home.png differ diff --git a/img/update-01-current-version.png b/img/update-01-current-version.png new file mode 100644 index 0000000..32e715c Binary files /dev/null and b/img/update-01-current-version.png differ diff --git a/img/update-02-plugin-page.png b/img/update-02-plugin-page.png new file mode 100644 index 0000000..5bc56e4 Binary files /dev/null and b/img/update-02-plugin-page.png differ diff --git a/img/update-03-confirm.png b/img/update-03-confirm.png new file mode 100644 index 0000000..da51f7c Binary files /dev/null and b/img/update-03-confirm.png differ diff --git a/img/update-04-restart-required.png b/img/update-04-restart-required.png new file mode 100644 index 0000000..0e3cb4d Binary files /dev/null and b/img/update-04-restart-required.png differ diff --git a/img/update-05-new-version.png b/img/update-05-new-version.png new file mode 100644 index 0000000..0c2ac6e Binary files /dev/null and b/img/update-05-new-version.png differ diff --git a/img/update-06-update-plugins-task.png b/img/update-06-update-plugins-task.png new file mode 100644 index 0000000..5e511ae Binary files /dev/null and b/img/update-06-update-plugins-task.png differ