]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/commitdiff
Fix youtube import
authorChocobozzz <me@florianbigard.com>
Mon, 18 Jan 2021 13:29:06 +0000 (14:29 +0100)
committerChocobozzz <me@florianbigard.com>
Mon, 18 Jan 2021 13:29:16 +0000 (14:29 +0100)
server/helpers/youtube-dl.ts

index 23982d52821052a4a5624e065541103130559254..72d457bc1a0ae4d4cbdc31bc5382fea65a955e11 100644 (file)
@@ -55,6 +55,8 @@ function getYoutubeDLInfo (url: string, opts?: string[]): Promise<YoutubeDLInfo>
             // this is a merge format and its extension will be appended
             if (info.ext === 'mp4') {
               info.mergeExt = 'mp4'
+            } else if (info.ext === 'webm') {
+              info.mergeExt = 'webm'
             } else {
               info.mergeExt = 'mkv'
             }
@@ -132,11 +134,15 @@ function getYoutubeDLVideoFormat () {
 }
 
 function downloadYoutubeDLVideo (url: string, extension: string, timeout: number, mergeExtension?: string) {
-  const path = generateVideoImportTmpPath(url, extension)
-  const finalPath = mergeExtension ? path.replace(new RegExp(`${extension}$`), mergeExtension) : path
+  let path = generateVideoImportTmpPath(url, extension)
+
+  path = mergeExtension
+    ? path.replace(new RegExp(`${extension}$`), mergeExtension)
+    : path
+
   let timer
 
-  logger.info('Importing youtubeDL video %s to %s', url, finalPath)
+  logger.info('Importing youtubeDL video %s to %s', url, path)
 
   let options = [ '-f', getYoutubeDLVideoFormat(), '-o', path ]
   options = wrapWithProxyOptions(options)
@@ -145,6 +151,8 @@ function downloadYoutubeDLVideo (url: string, extension: string, timeout: number
     options = options.concat([ '--ffmpeg-location', process.env.FFMPEG_PATH ])
   }
 
+  logger.debug('YoutubeDL options for %s.', url, { options })
+
   return new Promise<string>((res, rej) => {
     safeGetYoutubeDL()
       .then(youtubeDL => {
@@ -158,7 +166,7 @@ function downloadYoutubeDLVideo (url: string, extension: string, timeout: number
             return rej(err)
           }
 
-          return res(finalPath)
+          return res(path)
         })
 
         timer = setTimeout(() => {