Add timeout to proxiedFetcher as well

This commit is contained in:
TheTank 2026-02-02 13:00:13 -05:00
parent adeeef68cc
commit 9aac094373

View file

@ -104,13 +104,18 @@ export async function validatePlayableStream(
} }
} else { } else {
try { try {
result = await ops.proxiedFetcher.full(stream.playlist, { result = await Promise.race([
method: 'GET', ops.proxiedFetcher.full(stream.playlist, {
headers: { method: 'GET',
...stream.preferredHeaders, headers: {
...stream.headers, ...stream.preferredHeaders,
}, ...stream.headers,
}); },
}),
new Promise<never>((_, reject) =>
setTimeout(() => reject(new Error('Timeout')), 10000)
)
]);
} catch { } catch {
return null; return null;
} }
@ -147,14 +152,19 @@ export async function validatePlayableStream(
} }
try { try {
return await ops.proxiedFetcher.full(quality.url, { return await Promise.race([
method: 'GET', ops.proxiedFetcher.full(quality.url, {
headers: { method: 'GET',
...stream.preferredHeaders, headers: {
...stream.headers, ...stream.preferredHeaders,
Range: 'bytes=0-1', ...stream.headers,
}, Range: 'bytes=0-1',
}); },
}),
new Promise<never>((_, reject) =>
setTimeout(() => reject(new Error('Timeout')), 10000)
)
]);
} catch { } catch {
return { statusCode: 500, body: '', finalUrl: quality.url }; return { statusCode: 500, body: '', finalUrl: quality.url };
} }