From 5979cded02e8e8f490466e010588f8b8f6261275 Mon Sep 17 00:00:00 2001 From: dakerboul Date: Mon, 10 Mar 2025 16:49:33 +0100 Subject: [PATCH] =?UTF-8?q?Modifier=20la=20route=20de=20t=C3=A9l=C3=A9char?= =?UTF-8?q?gement=20de=20vid=C3=A9o=20pour=20utiliser=20un=20flux=20de=20f?= =?UTF-8?q?ichiers=20et=20g=C3=A9rer=20les=20erreurs=20de=20streaming?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- routes/videoRoutes.js | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/routes/videoRoutes.js b/routes/videoRoutes.js index 511778e..2a14081 100644 --- a/routes/videoRoutes.js +++ b/routes/videoRoutes.js @@ -270,13 +270,17 @@ router.get('/videos/file/:video_id', (req, res) => { return res.status(400).json({ error: 'Video not yet produced' }); } const videoPath = video.video_file; - console.log('Video path:', videoPath); - fs.access(videoPath, fs.constants.F_OK, (err) => { - if (err) { - console.error('Video not found:', err); - return res.status(404).json({ error: 'Video not found' }); - } - res.download(videoPath); + const fileStream = fs.createReadStream(videoPath); + + res.writeHead(200, { + 'Content-Type': 'video/mp4', + 'Content-Disposition': `attachment; filename="${path.basename(videoPath)}"` + }); + fileStream.pipe(res); + + fileStream.on('error', (err) => { + console.error('File stream error:', err); + res.status(500).json({ error: 'Error streaming video' }); }); }); });