+ getFile (resolution: number) {
+ if (Array.isArray(this.VideoFiles) === false) return undefined
+
+ return this.VideoFiles.find(f => f.resolution === resolution)
+ }
+
+ async addAndSaveThumbnail (thumbnail: MThumbnail, transaction: Transaction) {
+ thumbnail.videoId = this.id
+
+ const savedThumbnail = await thumbnail.save({ transaction })
+
+ if (Array.isArray(this.Thumbnails) === false) this.Thumbnails = []
+
+ // Already have this thumbnail, skip
+ if (this.Thumbnails.find(t => t.id === savedThumbnail.id)) return
+
+ this.Thumbnails.push(savedThumbnail)
+ }
+
+ getVideoFilename (videoFile: MVideoFile) {