-export {
- createOrUpdateCacheFile,
- createCacheFile,
- updateCacheFile,
- cacheFileActivityObjectToDBAttributes
+function cacheFileActivityObjectToDBAttributes (cacheFileObject: CacheFileObject, video: MVideoWithAllFiles, byActor: MActorId) {
+
+ if (cacheFileObject.url.mediaType === 'application/x-mpegURL') {
+ const url = cacheFileObject.url
+
+ const playlist = video.VideoStreamingPlaylists.find(t => t.type === VideoStreamingPlaylistType.HLS)
+ if (!playlist) throw new Error('Cannot find HLS playlist of video ' + video.url)
+
+ return {
+ expiresOn: cacheFileObject.expires ? new Date(cacheFileObject.expires) : null,
+ url: cacheFileObject.id,
+ fileUrl: url.href,
+ strategy: null,
+ videoStreamingPlaylistId: playlist.id,
+ actorId: byActor.id
+ }
+ }
+
+ const url = cacheFileObject.url
+ const videoFile = video.VideoFiles.find(f => {
+ return f.resolution === url.height && f.fps === url.fps
+ })
+
+ if (!videoFile) throw new Error(`Cannot find video file ${url.height} ${url.fps} of video ${video.url}`)
+
+ return {
+ expiresOn: cacheFileObject.expires ? new Date(cacheFileObject.expires) : null,
+ url: cacheFileObject.id,
+ fileUrl: url.href,
+ strategy: null,
+ videoFileId: videoFile.id,
+ actorId: byActor.id
+ }