]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/commitdiff
Fix channel import with some channels
authorChocobozzz <me@florianbigard.com>
Mon, 10 Oct 2022 13:33:32 +0000 (15:33 +0200)
committerChocobozzz <me@florianbigard.com>
Mon, 10 Oct 2022 13:33:32 +0000 (15:33 +0200)
server/helpers/youtube-dl/youtube-dl-cli.ts

index fc4c40787ca9181851be75bd8467495aa8913f85..a2f63095378e2c57b3d876cd697384d8561cc025 100644 (file)
@@ -128,14 +128,14 @@ export class YoutubeDLCLI {
     const data = await this.run({ url, args: completeArgs, processOptions })
     if (!data) return undefined
 
-    const info = data.map(this.parseInfo)
+    const info = data.map(d => JSON.parse(d))
 
     return info.length === 1
       ? info[0]
       : info
   }
 
-  getListInfo (options: {
+  async getListInfo (options: {
     url: string
     latestVideosCount?: number
     processOptions: execa.NodeOptions
@@ -151,12 +151,17 @@ export class YoutubeDLCLI {
       additionalYoutubeDLArgs.push('--playlist-end', options.latestVideosCount.toString())
     }
 
-    return this.getInfo({
+    const result = await this.getInfo({
       url: options.url,
       format: YoutubeDLCLI.getYoutubeDLVideoFormat([], false),
       processOptions: options.processOptions,
       additionalYoutubeDLArgs
     })
+
+    if (!result) return result
+    if (!Array.isArray(result)) return [ result ]
+
+    return result
   }
 
   async getSubs (options: {
@@ -241,8 +246,4 @@ export class YoutubeDLCLI {
 
     return args
   }
-
-  private parseInfo (data: string) {
-    return JSON.parse(data)
-  }
 }