diff options
author | Rigel Kent <sendmemail@rigelk.eu> | 2020-03-10 14:39:40 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-03-10 14:39:40 +0100 |
commit | 8319d6ae72d4da6de51bd3d4b5c68040fc8dc3b4 (patch) | |
tree | 1f87041b2cd76222844960602cdc9f52fe206c7b /server/models/video/video.ts | |
parent | edb868655e52f934a71141175cf9dc6cb4753e11 (diff) | |
download | PeerTube-8319d6ae72d4da6de51bd3d4b5c68040fc8dc3b4.tar.gz PeerTube-8319d6ae72d4da6de51bd3d4b5c68040fc8dc3b4.tar.zst PeerTube-8319d6ae72d4da6de51bd3d4b5c68040fc8dc3b4.zip |
Add video file metadata to download modal, via ffprobe (#2411)
* Add video file metadata via ffprobe
* Federate video file metadata
* Add tests for file metadata generation
* Complete tests for videoFile metadata federation
* Lint migration and video-file for metadata
* Objectify metadata from getter in ffmpeg-utils
* Add metadataUrl to all videoFiles
* Simplify metadata API middleware
* Load playlist in videoFile when requesting metadata
Diffstat (limited to 'server/models/video/video.ts')
-rw-r--r-- | server/models/video/video.ts | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/server/models/video/video.ts b/server/models/video/video.ts index 7f94e834a..5e4b7d44c 100644 --- a/server/models/video/video.ts +++ b/server/models/video/video.ts | |||
@@ -216,7 +216,7 @@ export type AvailableForListIDsOptions = { | |||
216 | 216 | ||
217 | if (options.withFiles === true) { | 217 | if (options.withFiles === true) { |
218 | query.include.push({ | 218 | query.include.push({ |
219 | model: VideoFileModel.unscoped(), | 219 | model: VideoFileModel, |
220 | required: true | 220 | required: true |
221 | }) | 221 | }) |
222 | } | 222 | } |
@@ -337,7 +337,7 @@ export type AvailableForListIDsOptions = { | |||
337 | return { | 337 | return { |
338 | include: [ | 338 | include: [ |
339 | { | 339 | { |
340 | model: VideoFileModel.unscoped(), | 340 | model: VideoFileModel, |
341 | separate: true, // We may have multiple files, having multiple redundancies so let's separate this join | 341 | separate: true, // We may have multiple files, having multiple redundancies so let's separate this join |
342 | required: false, | 342 | required: false, |
343 | include: subInclude | 343 | include: subInclude |
@@ -348,7 +348,7 @@ export type AvailableForListIDsOptions = { | |||
348 | [ScopeNames.WITH_STREAMING_PLAYLISTS]: (withRedundancies = false) => { | 348 | [ScopeNames.WITH_STREAMING_PLAYLISTS]: (withRedundancies = false) => { |
349 | const subInclude: IncludeOptions[] = [ | 349 | const subInclude: IncludeOptions[] = [ |
350 | { | 350 | { |
351 | model: VideoFileModel.unscoped(), | 351 | model: VideoFileModel, |
352 | required: false | 352 | required: false |
353 | } | 353 | } |
354 | ] | 354 | ] |
@@ -1847,6 +1847,13 @@ export class VideoModel extends Model<VideoModel> { | |||
1847 | return baseUrlHttp + STATIC_PATHS.WEBSEED + getVideoFilename(this, videoFile) | 1847 | return baseUrlHttp + STATIC_PATHS.WEBSEED + getVideoFilename(this, videoFile) |
1848 | } | 1848 | } |
1849 | 1849 | ||
1850 | getVideoFileMetadataUrl (videoFile: MVideoFile, baseUrlHttp: string) { | ||
1851 | const path = '/api/v1/videos/' | ||
1852 | return videoFile.metadata | ||
1853 | ? baseUrlHttp + path + this.uuid + '/metadata/' + videoFile.id | ||
1854 | : videoFile.metadataUrl | ||
1855 | } | ||
1856 | |||
1850 | getVideoRedundancyUrl (videoFile: MVideoFile, baseUrlHttp: string) { | 1857 | getVideoRedundancyUrl (videoFile: MVideoFile, baseUrlHttp: string) { |
1851 | return baseUrlHttp + STATIC_PATHS.REDUNDANCY + getVideoFilename(this, videoFile) | 1858 | return baseUrlHttp + STATIC_PATHS.REDUNDANCY + getVideoFilename(this, videoFile) |
1852 | } | 1859 | } |