edde746
be9197eda6
fix(playback): serve playback metadata from fresh cache instead of refetching
...
Videos take noticeably long to start. On Plex, tapping Play refetched
/library/metadata/{id} network-first even though the detail screen wrote
a strict superset of that exact payload under the same cache key seconds
earlier. On Jellyfin/Emby, playback start issued a full-detail item GET
before the PlaybackInfo negotiation, and the video controls issued the
same heavy GET again while the stream was opening (#1784 ) — the most
expensive queries a small home server serves, paid two to three times
per start.
Add ApiCache.getIfFresh over the existing cachedAt column and serve
rows younger than playbackMetadataCacheFreshness (5 min) without a
round trip. Plex guards with the strict stream-detail check
(_plexMetadataHasStreamDetail) so a thin row written by
getPlaybackExtras' lean fetch still goes to the network; Jellyfin's
row has a single full-shape writer, so fetchPlaybackBundle and
fetchPlaybackExtras share the new fetchItemFreshCacheFirst. Any miss,
stale, thin, or malformed row falls through to the unchanged
network-first path, and offline behavior is untouched.
2026-08-17 13:46:33 +02:00
..
2026-08-09 17:14:48 +02:00
2026-08-16 16:47:06 +02:00
2026-08-02 15:35:42 +02:00
2026-08-05 12:03:05 +02:00
2026-07-24 03:46:46 +02:00
2026-07-13 02:15:03 +02:00
2026-07-30 11:55:13 +02:00
2026-08-09 08:08:59 +02:00
2026-07-26 04:24:55 +02:00
2026-08-10 20:28:41 +02:00
2026-08-14 13:36:29 +02:00
2026-08-06 03:45:09 +02:00
2026-07-27 03:59:27 +02:00
2026-07-24 03:46:50 +02:00
2026-07-11 17:38:22 +02:00
2026-07-05 14:16:04 +02:00
2026-08-10 20:28:41 +02:00
2026-06-14 13:40:16 +02:00
2026-07-30 14:57:26 +02:00
2026-07-12 17:31:15 +02:00
2026-07-24 03:56:40 +02:00
2026-07-24 03:46:46 +02:00
2026-08-06 03:47:43 +02:00
2026-08-10 20:28:41 +02:00
2026-08-06 03:45:09 +02:00
2026-08-10 20:28:41 +02:00
2026-08-09 17:50:58 +02:00
2026-05-01 01:20:36 +02:00
2026-07-29 05:19:27 +02:00
2026-07-13 02:15:03 +02:00
2026-08-05 07:14:11 +02:00
2026-07-26 03:41:19 +02:00
2026-08-09 17:50:58 +02:00
2026-07-24 03:46:46 +02:00
2026-07-28 05:07:00 +02:00
2026-08-05 06:09:26 +02:00
2026-07-13 00:03:52 +02:00
2026-08-14 13:36:29 +02:00
2026-08-10 20:28:41 +02:00
2026-08-16 15:31:47 +02:00
2026-08-02 07:08:14 +02:00
2026-08-05 06:09:26 +02:00
2026-08-05 06:09:26 +02:00
2026-08-02 06:40:04 +02:00
2026-07-24 03:46:46 +02:00
2026-08-09 17:50:58 +02:00
2026-07-24 03:46:46 +02:00
2026-08-10 20:28:41 +02:00
2026-08-14 13:36:29 +02:00
2026-08-10 20:28:41 +02:00
2026-08-17 13:46:33 +02:00
2026-07-24 03:46:46 +02:00
2026-08-02 09:29:59 +02:00
2026-07-24 03:46:46 +02:00
2026-07-12 17:31:12 +02:00
2026-07-26 04:24:55 +02:00
2026-08-04 04:35:06 +02:00
2026-07-18 20:04:09 +02:00
2026-07-26 06:09:47 +02:00
2026-07-26 06:09:48 +02:00
2026-08-10 20:38:45 +02:00
2026-08-10 20:28:41 +02:00
2026-08-05 06:09:26 +02:00
2026-07-26 06:09:48 +02:00
2026-07-24 03:46:46 +02:00
2026-08-03 02:34:37 +02:00
2026-07-17 23:09:07 +02:00
2026-07-24 03:46:46 +02:00
2026-08-10 20:28:41 +02:00
2026-08-10 20:28:41 +02:00
2026-08-10 20:28:41 +02:00
2026-08-10 21:23:55 +02:00
2026-08-16 08:58:57 +02:00
2026-08-02 16:16:19 +02:00
2026-07-13 02:15:03 +02:00
2026-07-26 06:09:49 +02:00
2026-08-10 21:23:55 +02:00
2026-08-17 13:46:33 +02:00
2026-08-14 12:20:20 +02:00
2026-08-16 15:31:47 +02:00
2026-07-24 03:46:50 +02:00
2026-08-02 06:40:04 +02:00
2026-08-04 16:56:54 +02:00
2026-07-29 05:19:27 +02:00
2026-08-08 12:18:32 +02:00
2026-07-26 04:34:08 +02:00
2026-07-24 08:08:10 +02:00
2026-08-16 09:14:28 +02:00
2026-07-16 14:36:48 +02:00
2026-08-10 20:28:41 +02:00
2026-07-12 17:31:12 +02:00
2026-08-17 13:46:33 +02:00
2026-07-29 05:19:27 +02:00
2026-08-02 03:59:56 +02:00
2026-08-02 09:29:59 +02:00
2026-05-16 22:54:53 +02:00
2026-07-12 17:31:16 +02:00
2026-07-12 17:31:12 +02:00
2026-08-01 06:59:20 +02:00
2026-08-01 06:59:20 +02:00
2026-08-01 06:59:20 +02:00
2026-08-02 04:37:29 +02:00
2026-07-31 21:45:32 +02:00
2026-05-01 01:20:36 +02:00
2026-07-12 08:42:25 +02:00
2026-07-27 17:44:52 +02:00
2026-08-16 22:40:53 +02:00
2026-07-26 19:41:23 +02:00
2026-07-24 03:46:50 +02:00
2026-08-10 20:28:41 +02:00
2026-08-02 04:37:29 +02:00
2026-08-10 20:28:41 +02:00
2026-07-30 14:57:26 +02:00
2026-07-26 19:41:23 +02:00
2026-08-09 10:59:16 +02:00
2026-08-10 20:28:41 +02:00
2026-07-26 06:09:47 +02:00
2026-08-10 20:28:41 +02:00
2026-07-24 03:56:40 +02:00
2026-07-24 03:46:46 +02:00
2026-08-10 14:17:40 +02:00
2026-07-24 03:46:46 +02:00
2026-07-12 17:31:16 +02:00