From 1d791a26de648d798df4ee1c04113baf7f1f3b4c Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Wed, 14 Feb 2018 15:56:07 +0100 Subject: Support thumbnails in youtube import --- server/tests/utils/videos/videos.ts | 2 +- server/tools/import-youtube.ts | 19 ++++++++++++++++++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/server/tests/utils/videos/videos.ts b/server/tests/utils/videos/videos.ts index 9d4267db8..8e58f1f0c 100644 --- a/server/tests/utils/videos/videos.ts +++ b/server/tests/utils/videos/videos.ts @@ -3,7 +3,7 @@ import { expect } from 'chai' import { existsSync, readFile } from 'fs' import * as parseTorrent from 'parse-torrent' -import { extname, isAbsolute, join } from 'path' +import { extname, join } from 'path' import * as request from 'supertest' import { buildAbsoluteFixturePath, diff --git a/server/tools/import-youtube.ts b/server/tools/import-youtube.ts index ccbc71029..325e9f7ba 100644 --- a/server/tools/import-youtube.ts +++ b/server/tools/import-youtube.ts @@ -3,6 +3,7 @@ import { join } from 'path' import * as youtubeDL from 'youtube-dl' import { VideoPrivacy } from '../../shared/models/videos' import { unlinkPromise } from '../helpers/core-utils' +import { doRequestAndSaveToFile } from '../helpers/requests' import { getClient, getVideoCategories, login, searchVideo, uploadVideo } from '../tests/utils' program @@ -98,6 +99,16 @@ async function uploadVideoOnPeerTube (videoInfo: any, videoPath: string) { const licence = getLicence(videoInfo.license) const language = 13 + let thumbnailfile + if (videoInfo.thumbnail) { + thumbnailfile = join(__dirname, 'thumbnail.jpg') + + await doRequestAndSaveToFile({ + method: 'GET', + uri: videoInfo.thumbnail + }, thumbnailfile) + } + const videoAttributes = { name: videoInfo.title, category, @@ -108,12 +119,18 @@ async function uploadVideoOnPeerTube (videoInfo: any, videoPath: string) { description: videoInfo.description, tags: videoInfo.tags.slice(0, 5), privacy: VideoPrivacy.PUBLIC, - fixture: videoPath + fixture: videoPath, + thumbnailfile } console.log('\nUploading on PeerTube video "%s".', videoAttributes.name) await uploadVideo(program['url'], accessToken, videoAttributes) + await unlinkPromise(videoPath) + if (thumbnailfile) { + await unlinkPromise(thumbnailfile) + } + console.log('Uploaded video "%s"!\n', videoAttributes.name) } -- cgit v1.2.3