You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
media: Fliks no longer deletes the .cache/ directories left in your library folders. Versions before this one cached extracted embedded subtitles in <media folder>/.cache/subs/; that cache now lives in the managed images volume, and nothing reads or writes the copies inside your library any more. They are inert and safe to keep, but no rescan will ever remove them: to reclaim the space, delete them yourself, e.g. find /path/to/library -type d -name .cache -prune -exec rm -rf {} +.
readme: the volume holding artwork, sprites, extracted subtitles and uploaded avatars is now /app/data (fliks_data) instead of /app/images. Existing installs need no change: FLIKS_IMAGES_DIR still works and a volume mounted at /app/images is detected and kept, logged once at boot. New installs and the example Compose use the new path. To move onto it, copy the volume before removing the old one — the uploaded avatars cannot be re-fetched. Recipe in README > Hosting notes > "The data volume was renamed".
custom-formats: plugins declaring pluginApi: 0 are no longer loaded. The acquisition contract's want no longer carries minRankExclusive / maxRankInclusive; core reports the window as RANK_NOT_AN_UPGRADE / RANK_ABOVE_CUTOFF instead. Republish at pluginApi: 1.
Features
a11y: focus the active option when an overlay opens (166acca)
cast-overlay: offer the next episode on the cast and remote controls (#1214) (efda5b5)
cast: leave a Chromecast from the picker, and only one destination at a time (#1217) (e1bb570)
data-table: add row selection with batch proxy actions (#1192) (51f3e51)
data-table: let a table page report on its whole list (#1193) (3fda3c1)
data-table: move the acting row actions into a per-row menu (#1186) (ca2596d)
desktop: render the mac player through a CAMetalLayer (#1248) (83ec100), closes #605
home: show a cached-layout skeleton while the sections load (9f30abe)
horizontal-scroller: hold the rail offset across a return (#1202) (e2ae16e)
hw-decode: cover nvidia, windows and macos for cropdetect and thumbnails (#1229) (4c736e9), closes #1127#1128#1129
imports: read nfo fields and sibling artwork for unidentified titles (#1265) (e8581c0)
imports: surface the orphan batch in the activity table (#1231) (aa1576d), closes #1131
libraries: add unidentified titles from the orphan scan instead of skipping them (#1264) (f669a23)
libraries: link movie files that sit directly under the library root (#1269) (1394316)
media-card: add a like heart beside the actions button (#1271) (6d4d757)
media-card: expose like / unlike in the card context menu (#1272) (c536552)
media-card: move the actions trigger to the bottom-right corner (#1235) (fda3128)
media-detail: surface unidentified titles and let admins filter them (#1267) (790237f)
navigation: cache the detail page and revalidate cached pages in one hook (#1181) (7228902)
player: add a display option to sort track pickers by language (#1204) (a9e9f69)
player: animate the close on the platforms without view transitions (#1182) (38067a5)
player: animate the player opening and closing (#1173) (11d9610)
player: drop the eco-by-default setting and clarify the quality menu (#1177) (214b2f3)
player: make the seek OSD chapter-aware and let a scrub accumulate (83688c3)
player: raise a seek-only OSD on an arrow-key scrub (3d73a86)
player: step Back through menu panels and lift cues with the bar (3b10b39)
plugins: gate unsigned installs on a setting, not an env var (#1183) (0baecb2)
post-import: build sprites and markers when new files land (#1219) (8b46207)
provider-list: one toolbar the bulk actions take over (#1189) (00036d4)
provider-list: select rows and act on them together (#1187) (0939a35)
remote: mirror an opened detail page to the controlled device (#1273) (21eed32)
remote: play on and control another device (#1161) (efd9efe)
schema-form: a multiselect field type, and the polish it needed (#1191) (978a9bc)
streaming: direct play HDR on desktop clients that tonemap locally (#1251) (67ddd8a)
streaming: keep HDR through a forced transcode for clients that tonemap locally (#1253) (da1565b)
streaming: let clients that crop at their own output keep the copy path (#1256) (6ca9e7b), closes #1255
streaming: serve an i-frame rendition for tizen trick play (#1167) (e3d0c65)
streaming: surface client-side HDR tone-mapping in the stats and admin views (#1252) (27ce3f0)
tizen: direct play MKV and read codec support from the TV (#1174) (df9260c)
tv: defer the on-screen keyboard until the input is activated (4ae2af1)
tv: follow D-pad focus in horizontal scrollers (7889ad7)
tv: pin the settings shells, style the dashboard selects, keep round things round (#1164) (d701023)
tv: scale the 10-foot UI and unify page padding (0e30da6)
tv: slide the mosaic caption down on focus (47d0a36)
view-transition: morph the poster between a card and a media page (#1207) (d4b76cd)
Bug Fixes
android: report HDR unsupported on ColorOS devices so the server tonemaps (#1247) (501daa6), closes #393
cast: clear the connect spinner when a selection changes nothing (#1216) (a8a6a41)
cast: discover Chromecast devices on Android (#1215) (b2a8bce)
cast: hide the cast entry points when no receiver is reachable (#1236) (a01621b)
ci: import the mac signing cert into our own keychain for the desktop build (853dfe1)
client: keep card badges and page chrome correct across navigations (#1206) (55a9772)
client: render nothing for unknown years and untitled episodes (#1266) (a01da48)
custom-formats: repair the editor and match parsed attributes (#1166) (7897541)
desktop: apply the reconnect policy to direct play, not just hls (#1228) (9d1aca4), closes #1125
desktop: flag a libmpv bump that renames the mac color enums (#1245) (6012498), closes #605
desktop: leave fullscreen whenever the player is torn down (4741da3)
home: stop replaying the section fade-in on every return (c98e5fd)
import-progress: show the orphan batch counter instead of the enrich tail (#1227) (0b3dd47), closes #1131
libraries: redirect right after creation and refresh the media tab as the import lands (9cdcb27)
library: stop the suggestions tab blanking itself on every return (#1170) (4abbe76)
media-actions: hide download when no file is on disk (#1165) (e97c197)
media-card: don't replay the artwork reveal on a back navigation (#1201) (bb06003)
media-card: keep the resting artwork radius for the poster morph (#1203) (23676d8)
media-card: lighten the hover background on the card buttons (#1171) (85aa886)
media-card: replay the artwork reveal on a route restored from cache (#1196) (ff52dc5)
media-card: show the badges and progress a stale TV guard hid (#1221) (c57456b)
media-card: size the artwork radius for a highlighted border (#1200) (88d6104)
media-card: stop the artwork reveal replaying on the next navigation (#1212) (48560a4)
media-detail: keep the page instance when switching episode (#1199) (188618c)
media-detail: open the episode page from a card and morph its poster (#1169) (ab57f00)
media-detail: re-read the resume position when the cached page returns (#1209) (282fe62)
media-detail: release the hero chrome when the cached page detaches (#1185) (597716b)
media-detail: repaint the page when an import lands (#1220) (354c4ff)
media-detail: resume the episode rail from where the viewer left it (#1275) (6dca3f8)
media-info-header: reserve the height of the stream info row (#1198) (73de399)
metadata: guard subtitle search, refresh jobs and request gates for titles with no provider id (#1263) (0e58399)
nav: highlight the active route in the left sidebars (#1168) (c3fb098)
navigation: re-enable view transitions on capacitor (#1197) (1f8c5a9)
player,subtitles: four Android playback and navigation regressions (#1210) (c601519)
player: drop the loading spinner when the browser refuses autoplay (#1179) (3f7ddfe)
player: floor the subtitle size, key it to the surface short side (#1286) (55d9937)
player: keep a multi-panel dropdown on the dismiss stack (#1262) (fba9efa)
player: keep audio selection and speed working on AVPlay (a8cc483)
player: negotiate the quality rung once instead of guessing it twice (#1254) (9f553b6)
player: open on the fanart, not the poster (#1222) (bc3171a)
player: prefer the remembered hearing-impaired flag when restoring subtitles (#1274) (6f667bd)
player: release the screen wake lock while playback is paused (#1213) (e777d7e)
player: start playback on desktop instead of via stall recovery (#1257) (cc6b4f8)
popover-menu: follow the anchor by frame instead of by event (#1190) (e162664)
provider-list: keep url and credentials out of the bulk editor (#1188) (0f92eb6)
remote-picker: accent the cast row only while casting, and pin it on top (#1218) (12df9d5)
remote: confirm a restored target is online before routing playback (#1172) (d5c0f4b)
remote: name the grant indexes as typeorm generates them (#1162) (7146564)
streaming: anchor a resumed MPEG-TS run on the playlist grid (#1223) (b5bd3e8)
streaming: serve the copied stream instead of re-encoding a remux (#1175) (2803274)
streaming: stop the remux dragging a subtitle rendition, copy HDR too (#1176) (776dae1)
streaming: tone-map HDR sources when extracting sprite tiles (#1260) (7602cf2)
subtitles: cache extracted vtt in the images volume, not the library (#1230) (f8c96ad), closes #1132
subtitles: close path traversal, SSRF and IDOR on the subtitle endpoints (#1239) (d0158e0)
subtitles: declare the subtitle_files media indexes on the entity (dafd139)
subtitles: match forced/HI flags across the whole acquisition chain (#1238) (4b74752)
subtitles: scale cue text with the surface instead of a fixed sp size (#1205) (449c61b)
tizen: declare the containers Samsung publishes, not what the WebView says (#1178) (f86ed41)
tv: Android TV layout, player close, and episode page navigation (#1195) (b900f46)
tv: cue layer under the seek preview, and up/down opens the controls (#1163) (42be032)
tv: keep the setup checklist off the 10-foot UI (594bf4b)
tv: repair the Samsung rendering the Chromium 85 gaps broke (cfe74c4)
tv: resolve the theme so alpha variants keep their alpha (28fb8a1)
tv: stop a focus move ghosting the neighbouring control (2f6b11b)
view-transition: keep the poster morph out of the app chrome (#1211) (f6b3112)
Performance Improvements
imports: make library import and scanning survivable on a weak CPU (#1225) (1bba51e), closes #1131
library: move the grid to cdk-virtual-scroll-viewport (250cad8)
subtitles: bound the provider and sync I/O, index the hot lookups (#1240) (faf0027)