Files
claude 9e33a343ab
Some checks failed
release / build-release (push) Has been cancelled
Floatplane channel plugin for Jellyfin 10.10.x: browse, HLS proxy, cookie session, CI release
- 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>
2026-10-25 09:42:27 +01:00

22 lines
880 B
TypeScript

import { Core } from "./Core.js";
import { ApiPaths, type operations } from "./lib/apiSchema.js";
export type ContentPost = operations["getBlogPost"]["responses"][200]["content"]["application/json"];
type PostParams = operations["getBlogPost"]["parameters"]["query"];
export type VideoContent = operations["getVideoContent"]["responses"][200]["content"]["application/json"];
type VideoParams = operations["getVideoContent"]["parameters"]["query"];
export class Content extends Core {
/**
* A specific post from the floatplane api by id
*/
post = (id: PostParams["id"]): Promise<ContentPost> => this.got(`${this.baseUrl}${ApiPaths.getBlogPost}/?id=${id}`).json();
/**
* A specific video attachment from the floatplane api by id
*/
video = (id: VideoParams["id"]): Promise<VideoContent> => this.got(`${this.baseUrl}${ApiPaths.getVideoContent}/?id=${id}`).json();
}