VideoChain-API / src /services /downloadVideo.mts
jbilcke-hf's picture
jbilcke-hf HF staff
seems to work, nice
e2472ff
raw
history blame
649 Bytes
import path from 'node:path'
import fs from 'node:fs'
import tmpDir from 'temp-dir'
export const downloadVideo = async (remoteUrl: string, fileName: string): Promise<string> => {
const filePath = path.resolve(tmpDir, fileName)
const controller = new AbortController()
const timeoutId = setTimeout(() => controller.abort(), 15 * 60 * 60 * 1000) // 15 minutes
// download the video
const response = await fetch(remoteUrl, {
signal: controller.signal
})
// write it to the disk
const arrayBuffer = await response.arrayBuffer()
await fs.promises.writeFile(
filePath,
Buffer.from(arrayBuffer)
)
return fileName
}