Prefer cached stills and stream first frames in the grid
This commit is contained in:
+14
-3
@@ -789,9 +789,20 @@ export function startWebUi(deps: WebUiDeps): WebUiHandle {
|
||||
return;
|
||||
}
|
||||
|
||||
const upstream = await fetch(source.url, {
|
||||
headers: req.headers.range ? { range: String(req.headers.range) } : {}
|
||||
});
|
||||
const rangeHeaders: Record<string, string> = req.headers.range
|
||||
? { range: String(req.headers.range) }
|
||||
: {};
|
||||
let upstream = await fetch(source.url, { headers: rangeHeaders });
|
||||
|
||||
// The signed CDN URL may have expired; re-fetch the message once and retry.
|
||||
if (!upstream.ok && [403, 404, 410].includes(upstream.status)) {
|
||||
const refreshed = await deps.media.refreshMediaUrl(
|
||||
String(req.params.scrapeId),
|
||||
Number(req.params.itemId)
|
||||
);
|
||||
if (refreshed) upstream = await fetch(refreshed, { headers: rangeHeaders });
|
||||
}
|
||||
|
||||
if (!upstream.ok && upstream.status !== 206) {
|
||||
throw new HttpError(502, `upstream ${upstream.status}`);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user