aboutsummaryrefslogtreecommitdiffhomepage
path: root/server
diff options
context:
space:
mode:
Diffstat (limited to 'server')
-rw-r--r--server/controllers/api/videos/import.ts6
-rw-r--r--server/tests/api/videos/video-imports.ts26
2 files changed, 31 insertions, 1 deletions
diff --git a/server/controllers/api/videos/import.ts b/server/controllers/api/videos/import.ts
index 39fc57788..5f90e4308 100644
--- a/server/controllers/api/videos/import.ts
+++ b/server/controllers/api/videos/import.ts
@@ -3,6 +3,7 @@ import { move, readFile } from 'fs-extra'
3import { decode } from 'magnet-uri' 3import { decode } from 'magnet-uri'
4import parseTorrent, { Instance } from 'parse-torrent' 4import parseTorrent, { Instance } from 'parse-torrent'
5import { join } from 'path' 5import { join } from 'path'
6import { isVideoFileExtnameValid } from '@server/helpers/custom-validators/videos'
6import { ServerConfigManager } from '@server/lib/server-config-manager' 7import { ServerConfigManager } from '@server/lib/server-config-manager'
7import { setVideoTags } from '@server/lib/video' 8import { setVideoTags } from '@server/lib/video'
8import { FilteredModelAttributes } from '@server/types' 9import { FilteredModelAttributes } from '@server/types'
@@ -185,11 +186,14 @@ async function addYoutubeDLImport (req: express.Request, res: express.Response)
185 // Get video subtitles 186 // Get video subtitles
186 await processYoutubeSubtitles(youtubeDL, targetUrl, video.id) 187 await processYoutubeSubtitles(youtubeDL, targetUrl, video.id)
187 188
189 let fileExt = `.${youtubeDLInfo.ext}`
190 if (!isVideoFileExtnameValid(fileExt)) fileExt = '.mp4'
191
188 // Create job to import the video 192 // Create job to import the video
189 const payload = { 193 const payload = {
190 type: 'youtube-dl' as 'youtube-dl', 194 type: 'youtube-dl' as 'youtube-dl',
191 videoImportId: videoImport.id, 195 videoImportId: videoImport.id,
192 fileExt: `.${youtubeDLInfo.ext || 'mp4'}` 196 fileExt
193 } 197 }
194 await JobQueue.Instance.createJobWithPromise({ type: 'video-import', payload }) 198 await JobQueue.Instance.createJobWithPromise({ type: 'video-import', payload })
195 199
diff --git a/server/tests/api/videos/video-imports.ts b/server/tests/api/videos/video-imports.ts
index 2eac130d2..108688651 100644
--- a/server/tests/api/videos/video-imports.ts
+++ b/server/tests/api/videos/video-imports.ts
@@ -336,6 +336,32 @@ Ajouter un sous-titre est vraiment facile`)
336 expect(maxResolution, 'expected max resolution not met').to.equals(VideoResolution.H_1080P) 336 expect(maxResolution, 'expected max resolution not met').to.equals(VideoResolution.H_1080P)
337 }) 337 })
338 338
339 it('Should import a peertube video', async function () {
340 this.timeout(120_000)
341
342 // TODO: include peertube_short when https://github.com/ytdl-org/youtube-dl/pull/29475 is merged
343 for (const targetUrl of [ FIXTURE_URLS.peertube_long ]) {
344 // for (const targetUrl of [ FIXTURE_URLS.peertube_long, FIXTURE_URLS.peertube_short ]) {
345 await servers[0].config.disableTranscoding()
346
347 const attributes = {
348 targetUrl,
349 channelId: channelIdServer1,
350 privacy: VideoPrivacy.PUBLIC
351 }
352 const { video } = await servers[0].imports.importVideo({ attributes })
353 const videoUUID = video.uuid
354
355 await waitJobs(servers)
356
357 for (const server of servers) {
358 const video = await server.videos.get({ id: videoUUID })
359
360 expect(video.name).to.equal('E2E tests')
361 }
362 }
363 })
364
339 after(async function () { 365 after(async function () {
340 await cleanupTests(servers) 366 await cleanupTests(servers)
341 }) 367 })