const express = require('express'); const request = require('request'); const app = express(); const PORT = 7860; const eachfilesize = {}; const REQUEST_URL = process.env.REQUEST_URL; const TOKEN = process.env.TOKEN; async function getFileSize(link) { return new Promise((resolve, reject) => { request.head(link, (err, res, body) => { if (err) { reject(err); } else { const contentLength = (parseInt(res.headers['content-length']) || 0.1).toString(); eachfilesize[link] = contentLength; resolve(contentLength); } }); }); } app.get('*', async (req, res) => { if (req.method !== 'GET') { return res.status(405).send('Method Not Allowed'); } const filename = req.params[0]; if (filename) { const originalUrl = REQUEST_URL ? `${REQUEST_URL}${filename}` : `https://huggingface.co/tranquan24/video/resolve/main/${filename}`; const headers = { 'Authorization': `Bearer ${TOKEN}`, 'Range': req.headers.range || '' }; try { request.get({ url: originalUrl, headers: headers }, (err, response, body) => { if (err) { console.error(err); return res.status(500).send('500'); } res.set(response.headers); res.status(response.statusCode).send(body); }); } catch (err) { console.error(err); return res.status(500).send('500'); } } else { return res.status(400).send('400'); } }); app.listen(PORT, '0.0.0.0', () => { console.log(`Server is running on http://0.0.0.0:${PORT}`); });