diff --git a/server/controllers/api/videos/import.ts b/server/controllers/api/videos/import.ts index 7053d5253..626c81eca 100644 --- a/server/controllers/api/videos/import.ts +++ b/server/controllers/api/videos/import.ts @@ -172,7 +172,8 @@ function buildVideo (channelId: number, body: VideoImportCreate, importData: You support: body.support || null, privacy: body.privacy || VideoPrivacy.PRIVATE, duration: 0, // duration will be set by the import job - channelId: channelId + channelId: channelId, + originallyPublishedAt: importData.originallyPublishedAt } const video = new VideoModel(videoData) video.url = getVideoActivityPubUrl(video) diff --git a/server/helpers/youtube-dl.ts b/server/helpers/youtube-dl.ts index b74351b42..4d4b37ef9 100644 --- a/server/helpers/youtube-dl.ts +++ b/server/helpers/youtube-dl.ts @@ -16,6 +16,7 @@ export type YoutubeDLInfo = { nsfw?: boolean tags?: string[] thumbnailUrl?: string + originallyPublishedAt?: string } const processOptions = { @@ -173,6 +174,9 @@ function normalizeObject (obj: any) { } function buildVideoInfo (obj: any) { + + const date = obj.upload_date.slice(0,4)+","+obj.upload_date.slice(4,6)+","+obj.upload_date.slice(6,8) + return { name: titleTruncation(obj.title), description: descriptionTruncation(obj.description), @@ -180,7 +184,8 @@ function buildVideoInfo (obj: any) { licence: getLicence(obj.license), nsfw: isNSFW(obj), tags: getTags(obj.tags), - thumbnailUrl: obj.thumbnail || undefined + thumbnailUrl: obj.thumbnail || undefined, + originallyPublishedAt: new Date(date).toISOString() } } diff --git a/shared/models/videos/import/video-import.model.ts b/shared/models/videos/import/video-import.model.ts index e2a56617d..92856c70f 100644 --- a/shared/models/videos/import/video-import.model.ts +++ b/shared/models/videos/import/video-import.model.ts @@ -11,6 +11,7 @@ export interface VideoImport { createdAt: string updatedAt: string + originallyPublishedAt?: string state: VideoConstant error?: string