2023-03-28 15:52:17 +01:00
|
|
|
const child_process = require('child_process')
|
|
|
|
const logger = require('./logger.js')
|
|
|
|
|
|
|
|
async function downloadVideo(url) {
|
|
|
|
return new Promise((resolve, reject) => {
|
2023-10-04 14:21:50 +01:00
|
|
|
const child = child_process.spawn("../yt-dlp", [url, ' -f 248+250/22/18/17'], {cwd: 'videos', shell: false})
|
2023-03-28 15:52:17 +01:00
|
|
|
|
|
|
|
child.stdout.on("data", data => {
|
|
|
|
const msg = data.toString().trim()
|
|
|
|
if (!msg) return
|
|
|
|
|
|
|
|
logger.info({ message: `${url.replace('https://www.youtube.com/watch?v=', '')} -> ${msg}` })
|
|
|
|
})
|
|
|
|
|
|
|
|
child.on("close", async (code, signal) => {
|
|
|
|
if (code == 2) {
|
|
|
|
reject({
|
|
|
|
fail: true,
|
|
|
|
message: 'Video file is above 2GB.'
|
|
|
|
})
|
|
|
|
} else {
|
|
|
|
resolve({
|
|
|
|
fail: false
|
|
|
|
})
|
|
|
|
}
|
|
|
|
})
|
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
module.exports = { downloadVideo }
|