import { generateVideoTmpPath } from './utils'
import { join } from 'path'
import { root } from './core-utils'
import { generateVideoTmpPath } from './utils'
import { join } from 'path'
import { root } from './core-utils'
function getYoutubeDLInfo (url: string, opts?: string[]): Promise<YoutubeDLInfo> {
return new Promise<YoutubeDLInfo>(async (res, rej) => {
const options = opts || [ '-j', '--flat-playlist' ]
function getYoutubeDLInfo (url: string, opts?: string[]): Promise<YoutubeDLInfo> {
return new Promise<YoutubeDLInfo>(async (res, rej) => {
const options = opts || [ '-j', '--flat-playlist' ]
return new Promise<string>(async (res, rej) => {
const youtubeDL = await safeGetYoutubeDL()
return new Promise<string>(async (res, rej) => {
const youtubeDL = await safeGetYoutubeDL()
- youtubeDL.exec(url, options, err => {
- if (err) return rej(err)
+ youtubeDL.exec(url, options, processOptions, err => {
+ clearTimeout(timer)
+
+ if (err) {
+ remove(path)
+ .catch(err => logger.error('Cannot delete path on YoutubeDL error.', { err }))
+
+ return rej(err)
+ }