]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/commitdiff
Add peertube import test
authorChocobozzz <me@florianbigard.com>
Fri, 27 Aug 2021 14:21:19 +0000 (16:21 +0200)
committerChocobozzz <me@florianbigard.com>
Fri, 27 Aug 2021 14:21:19 +0000 (16:21 +0200)
server/controllers/api/videos/import.ts
server/tests/api/videos/video-imports.ts
shared/extra-utils/miscs/tests.ts

index 39fc577885459313ca6e2ba4d01e258d2a9b4d65..5f90e430888ff538c468b0d50c29b4b761746352 100644 (file)
@@ -3,6 +3,7 @@ import { move, readFile } from 'fs-extra'
 import { decode } from 'magnet-uri'
 import parseTorrent, { Instance } from 'parse-torrent'
 import { join } from 'path'
+import { isVideoFileExtnameValid } from '@server/helpers/custom-validators/videos'
 import { ServerConfigManager } from '@server/lib/server-config-manager'
 import { setVideoTags } from '@server/lib/video'
 import { FilteredModelAttributes } from '@server/types'
@@ -185,11 +186,14 @@ async function addYoutubeDLImport (req: express.Request, res: express.Response)
   // Get video subtitles
   await processYoutubeSubtitles(youtubeDL, targetUrl, video.id)
 
+  let fileExt = `.${youtubeDLInfo.ext}`
+  if (!isVideoFileExtnameValid(fileExt)) fileExt = '.mp4'
+
   // Create job to import the video
   const payload = {
     type: 'youtube-dl' as 'youtube-dl',
     videoImportId: videoImport.id,
-    fileExt: `.${youtubeDLInfo.ext || 'mp4'}`
+    fileExt
   }
   await JobQueue.Instance.createJobWithPromise({ type: 'video-import', payload })
 
index 2eac130d2a638186c2d44b872c4d2a3c6f0c76c3..1086886513633b3a1d2f1bb11af2a5471b76fe17 100644 (file)
@@ -336,6 +336,32 @@ Ajouter un sous-titre est vraiment facile`)
     expect(maxResolution, 'expected max resolution not met').to.equals(VideoResolution.H_1080P)
   })
 
+  it('Should import a peertube video', async function () {
+    this.timeout(120_000)
+
+    // TODO: include peertube_short when https://github.com/ytdl-org/youtube-dl/pull/29475 is merged
+    for (const targetUrl of [ FIXTURE_URLS.peertube_long ]) {
+    // for (const targetUrl of [ FIXTURE_URLS.peertube_long, FIXTURE_URLS.peertube_short ]) {
+      await servers[0].config.disableTranscoding()
+
+      const attributes = {
+        targetUrl,
+        channelId: channelIdServer1,
+        privacy: VideoPrivacy.PUBLIC
+      }
+      const { video } = await servers[0].imports.importVideo({ attributes })
+      const videoUUID = video.uuid
+
+      await waitJobs(servers)
+
+      for (const server of servers) {
+        const video = await server.videos.get({ id: videoUUID })
+
+        expect(video.name).to.equal('E2E tests')
+      }
+    }
+  })
+
   after(async function () {
     await cleanupTests(servers)
   })
index dd86041fef9c95d9566ed8d586766a4a073c0606..5b543027816a6f0e94c9ab1582c296be24c44ae3 100644 (file)
@@ -2,6 +2,9 @@ import { stat } from 'fs-extra'
 import { basename, isAbsolute, join, resolve } from 'path'
 
 const FIXTURE_URLS = {
+  peertube_long: 'https://peertube2.cpy.re/videos/watch/122d093a-1ede-43bd-bd34-59d2931ffc5e',
+  peertube_short: 'https://peertube2.cpy.re/w/3fbif9S3WmtTP8gGsC5HBd',
+
   youtube: 'https://www.youtube.com/watch?v=msX3jv1XdvM',
 
   /**