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 /client/src/app/shared/video/modals/video-download.component.html | |
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 'client/src/app/shared/video/modals/video-download.component.html')
-rw-r--r-- | client/src/app/shared/video/modals/video-download.component.html | 38 |
1 files changed, 37 insertions, 1 deletions
diff --git a/client/src/app/shared/video/modals/video-download.component.html b/client/src/app/shared/video/modals/video-download.component.html index 976da03f3..391fe245e 100644 --- a/client/src/app/shared/video/modals/video-download.component.html +++ b/client/src/app/shared/video/modals/video-download.component.html | |||
@@ -20,7 +20,7 @@ | |||
20 | <div class="form-group"> | 20 | <div class="form-group"> |
21 | <div class="input-group input-group-sm"> | 21 | <div class="input-group input-group-sm"> |
22 | <div class="input-group-prepend peertube-select-container"> | 22 | <div class="input-group-prepend peertube-select-container"> |
23 | <select *ngIf="type === 'video'" [(ngModel)]="resolutionId"> | 23 | <select *ngIf="type === 'video'" [(ngModel)]="resolutionId" (ngModelChange)="onResolutionIdChange()"> |
24 | <option *ngFor="let file of getVideoFiles()" [value]="file.resolution.id">{{ file.resolution.label }}</option> | 24 | <option *ngFor="let file of getVideoFiles()" [value]="file.resolution.id">{{ file.resolution.label }}</option> |
25 | </select> | 25 | </select> |
26 | 26 | ||
@@ -38,6 +38,42 @@ | |||
38 | </div> | 38 | </div> |
39 | </div> | 39 | </div> |
40 | 40 | ||
41 | <ngb-tabset *ngIf="type === 'video' && videoFile?.metadata"> | ||
42 | <ngb-tab> | ||
43 | <ng-template ngbTabTitle i18n>Format</ng-template> | ||
44 | <ng-template ngbTabContent> | ||
45 | <div class="file-metadata"> | ||
46 | <div class="metadata-attribute metadata-attribute-tags" *ngFor="let item of videoFileMetadataFormat | keyvalue"> | ||
47 | <span i18n class="metadata-attribute-label">{{ item.value.label }}</span> | ||
48 | <span class="metadata-attribute-value">{{ item.value.value }}</span> | ||
49 | </div> | ||
50 | </div> | ||
51 | </ng-template> | ||
52 | </ngb-tab> | ||
53 | <ngb-tab [disabled]="videoFileMetadataVideoStream === undefined"> | ||
54 | <ng-template ngbTabTitle i18n>Video stream</ng-template> | ||
55 | <ng-template ngbTabContent> | ||
56 | <div class="file-metadata"> | ||
57 | <div class="metadata-attribute metadata-attribute-tags" *ngFor="let item of videoFileMetadataVideoStream | keyvalue"> | ||
58 | <span i18n class="metadata-attribute-label">{{ item.value.label }}</span> | ||
59 | <span class="metadata-attribute-value">{{ item.value.value }}</span> | ||
60 | </div> | ||
61 | </div> | ||
62 | </ng-template> | ||
63 | </ngb-tab> | ||
64 | <ngb-tab [disabled]="videoFileMetadataAudioStream === undefined"> | ||
65 | <ng-template ngbTabTitle i18n>Audio stream</ng-template> | ||
66 | <ng-template ngbTabContent> | ||
67 | <div class="file-metadata"> | ||
68 | <div class="metadata-attribute metadata-attribute-tags" *ngFor="let item of videoFileMetadataAudioStream | keyvalue"> | ||
69 | <span i18n class="metadata-attribute-label">{{ item.value.label }}</span> | ||
70 | <span class="metadata-attribute-value">{{ item.value.value }}</span> | ||
71 | </div> | ||
72 | </div> | ||
73 | </ng-template> | ||
74 | </ngb-tab> | ||
75 | </ngb-tabset> | ||
76 | |||
41 | <div class="download-type" *ngIf="type === 'video'"> | 77 | <div class="download-type" *ngIf="type === 'video'"> |
42 | <div class="peertube-radio-container"> | 78 | <div class="peertube-radio-container"> |
43 | <input type="radio" name="download" id="download-direct" [(ngModel)]="downloadType" value="direct"> | 79 | <input type="radio" name="download" id="download-direct" [(ngModel)]="downloadType" value="direct"> |