import { join } from 'path'
import { CONFIG } from '@server/initializers/config'
-import { HLS_REDUNDANCY_DIRECTORY, HLS_STREAMING_PLAYLIST_DIRECTORY } from '@server/initializers/constants'
+import { DIRECTORIES, VIDEO_LIVE } from '@server/initializers/constants'
import { isStreamingPlaylist, MStreamingPlaylistVideo, MVideo, MVideoFile, MVideoUUID } from '@server/types/models'
import { removeFragmentedMP4Ext } from '@shared/core-utils'
import { buildUUID } from '@shared/extra-utils'
+import { isVideoInPrivateDirectory } from './video-privacy'
// ################## Video file name ##################
// ################## Streaming playlist ##################
-function getLiveDirectory (video: MVideoUUID) {
+function getLiveDirectory (video: MVideo) {
return getHLSDirectory(video)
}
-function getHLSDirectory (video: MVideoUUID) {
- return join(HLS_STREAMING_PLAYLIST_DIRECTORY, video.uuid)
+function getLiveReplayBaseDirectory (video: MVideo) {
+ return join(getLiveDirectory(video), VIDEO_LIVE.REPLAY_DIRECTORY)
+}
+
+function getHLSDirectory (video: MVideo) {
+ if (isVideoInPrivateDirectory(video.privacy)) {
+ return join(DIRECTORIES.HLS_STREAMING_PLAYLIST.PRIVATE, video.uuid)
+ }
+
+ return join(DIRECTORIES.HLS_STREAMING_PLAYLIST.PUBLIC, video.uuid)
}
function getHLSRedundancyDirectory (video: MVideoUUID) {
- return join(HLS_REDUNDANCY_DIRECTORY, video.uuid)
+ return join(DIRECTORIES.HLS_REDUNDANCY, video.uuid)
}
function getHlsResolutionPlaylistFilename (videoFilename: string) {
getHLSDirectory,
getLiveDirectory,
+ getLiveReplayBaseDirectory,
getHLSRedundancyDirectory,
generateHLSMasterPlaylistFilename,