diff --git a/api/src/core/api.js b/api/src/core/api.js index eb5cf4ff..09d80ecc 100644 --- a/api/src/core/api.js +++ b/api/src/core/api.js @@ -276,7 +276,8 @@ export const runAPI = async (express, app, __dirname, isPrimary = true) => { methods: ['GET'], exposedHeaders: [ 'Estimated-Content-Length', - 'Content-Disposition' + 'Content-Disposition', + 'Transfer-Encoding' ], ...corsConfig, })); diff --git a/api/src/stream/types.js b/api/src/stream/types.js index 6b493efa..ac1e564a 100644 --- a/api/src/stream/types.js +++ b/api/src/stream/types.js @@ -156,6 +156,7 @@ const merge = async (streamInfo, res) => { res.setHeader('Connection', 'keep-alive'); res.setHeader('Content-Disposition', contentDisposition(streamInfo.filename)); res.setHeader('Estimated-Content-Length', await estimateTunnelLength(streamInfo)); + res.setHeader('Transfer-Encoding', 'chunked'); pipe(muxOutput, res, shutdown); @@ -220,6 +221,7 @@ const remux = async (streamInfo, res) => { res.setHeader('Connection', 'keep-alive'); res.setHeader('Content-Disposition', contentDisposition(streamInfo.filename)); res.setHeader('Estimated-Content-Length', await estimateTunnelLength(streamInfo)); + res.setHeader('Transfer-Encoding', 'chunked'); pipe(muxOutput, res, shutdown); @@ -296,6 +298,7 @@ const convertAudio = async (streamInfo, res) => { estimateAudioMultiplier(streamInfo) * 1.1 ) ); + res.setHeader('Transfer-Encoding', 'chunked'); pipe(muxOutput, res, shutdown); res.on('finish', shutdown); @@ -334,6 +337,7 @@ const convertGif = async (streamInfo, res) => { res.setHeader('Connection', 'keep-alive'); res.setHeader('Content-Disposition', contentDisposition(streamInfo.filename)); res.setHeader('Estimated-Content-Length', await estimateTunnelLength(streamInfo, 60)); + res.setHeader('Transfer-Encoding', 'chunked'); pipe(muxOutput, res, shutdown);