aboutsummaryrefslogblamecommitdiffhomepage
path: root/shared/core-utils/videos/common.ts
blob: 2c6efdb7f38bad9ee2130826307b2e896f490d45 (plain) (tree)
1
2
3
4
5
6
7
8
                                                           
                                                                     
                                                              




                                                                                                    


                                                                                           

                                         



              



                                                                                      
        
                  

              
 
import { VideoStreamingPlaylistType } from '@shared/models'
import { VideoPrivacy } from '../../models/videos/video-privacy.enum'
import { VideoDetails } from '../../models/videos/video.model'

function getAllPrivacies () {
  return [ VideoPrivacy.PUBLIC, VideoPrivacy.INTERNAL, VideoPrivacy.PRIVATE, VideoPrivacy.UNLISTED ]
}

function getAllFiles (video: Partial<Pick<VideoDetails, 'files' | 'streamingPlaylists'>>) {
  const files = video.files

  const hls = getHLS(video)
  if (hls) return files.concat(hls.files)

  return files
}

function getHLS (video: Partial<Pick<VideoDetails, 'streamingPlaylists'>>) {
  return video.streamingPlaylists.find(p => p.type === VideoStreamingPlaylistType.HLS)
}

export {
  getAllPrivacies,
  getAllFiles,
  getHLS
}