fix(vidmoly): append X-Progress-ID query param to transit upload URL

The transit server runs nginx-upload-progress and requires an
X-Progress-ID query parameter on the POST URL to finalize the
upload session. Without it the server accepts all bytes but never
sends the response — matches the reported 99%-stuck behavior. The
browser appends it automatically before submit; we now do the same.
This commit is contained in:
Administrator 2026-04-19 22:41:43 +02:00
parent 7ea718ee27
commit 0dcd62ac26

View File

@ -201,10 +201,16 @@ class VidmolyUploader {
yield epilogueBuf;
}
// Transit server lives on a different domain (*.vmwesa.online). Browsers
// don't send vidmoly.me cookies across origins, so we don't either.
// Origin + Referer match the browser's actual upload headers.
const { body, statusCode, headers } = await request(uploadUrl, {
// Transit server lives on a different domain (*.vmwesa.online) and runs
// the nginx-upload-progress module. It requires an X-Progress-ID query
// parameter on the POST URL — without it the upload hangs at the final
// byte because the module can't finalize the session. Browsers append it
// automatically before submitting the form.
const progressId = Date.now().toString() + Math.floor(Math.random() * 1e6).toString().padStart(6, '0');
const targetUrl = uploadUrl + (uploadUrl.includes('?') ? '&' : '?') + 'X-Progress-ID=' + progressId;
// Browsers don't send vidmoly.me cookies across origins, so we don't either.
const { body, statusCode, headers } = await request(targetUrl, {
method: 'POST',
body: generate(),
signal,