diff options
Diffstat (limited to 'server/lib/paths.ts')
-rw-r--r-- | server/lib/paths.ts | 92 |
1 files changed, 0 insertions, 92 deletions
diff --git a/server/lib/paths.ts b/server/lib/paths.ts deleted file mode 100644 index db1cdede2..000000000 --- a/server/lib/paths.ts +++ /dev/null | |||
@@ -1,92 +0,0 @@ | |||
1 | import { join } from 'path' | ||
2 | import { CONFIG } from '@server/initializers/config' | ||
3 | import { DIRECTORIES, VIDEO_LIVE } from '@server/initializers/constants' | ||
4 | import { isStreamingPlaylist, MStreamingPlaylistVideo, MVideo, MVideoFile, MVideoUUID } from '@server/types/models' | ||
5 | import { removeFragmentedMP4Ext } from '@shared/core-utils' | ||
6 | import { buildUUID } from '@shared/extra-utils' | ||
7 | import { isVideoInPrivateDirectory } from './video-privacy' | ||
8 | |||
9 | // ################## Video file name ################## | ||
10 | |||
11 | function generateWebVideoFilename (resolution: number, extname: string) { | ||
12 | return buildUUID() + '-' + resolution + extname | ||
13 | } | ||
14 | |||
15 | function generateHLSVideoFilename (resolution: number) { | ||
16 | return `${buildUUID()}-${resolution}-fragmented.mp4` | ||
17 | } | ||
18 | |||
19 | // ################## Streaming playlist ################## | ||
20 | |||
21 | function getLiveDirectory (video: MVideo) { | ||
22 | return getHLSDirectory(video) | ||
23 | } | ||
24 | |||
25 | function getLiveReplayBaseDirectory (video: MVideo) { | ||
26 | return join(getLiveDirectory(video), VIDEO_LIVE.REPLAY_DIRECTORY) | ||
27 | } | ||
28 | |||
29 | function getHLSDirectory (video: MVideo) { | ||
30 | if (isVideoInPrivateDirectory(video.privacy)) { | ||
31 | return join(DIRECTORIES.HLS_STREAMING_PLAYLIST.PRIVATE, video.uuid) | ||
32 | } | ||
33 | |||
34 | return join(DIRECTORIES.HLS_STREAMING_PLAYLIST.PUBLIC, video.uuid) | ||
35 | } | ||
36 | |||
37 | function getHLSRedundancyDirectory (video: MVideoUUID) { | ||
38 | return join(DIRECTORIES.HLS_REDUNDANCY, video.uuid) | ||
39 | } | ||
40 | |||
41 | function getHlsResolutionPlaylistFilename (videoFilename: string) { | ||
42 | // Video file name already contain resolution | ||
43 | return removeFragmentedMP4Ext(videoFilename) + '.m3u8' | ||
44 | } | ||
45 | |||
46 | function generateHLSMasterPlaylistFilename (isLive = false) { | ||
47 | if (isLive) return 'master.m3u8' | ||
48 | |||
49 | return buildUUID() + '-master.m3u8' | ||
50 | } | ||
51 | |||
52 | function generateHlsSha256SegmentsFilename (isLive = false) { | ||
53 | if (isLive) return 'segments-sha256.json' | ||
54 | |||
55 | return buildUUID() + '-segments-sha256.json' | ||
56 | } | ||
57 | |||
58 | // ################## Torrents ################## | ||
59 | |||
60 | function generateTorrentFileName (videoOrPlaylist: MVideo | MStreamingPlaylistVideo, resolution: number) { | ||
61 | const extension = '.torrent' | ||
62 | const uuid = buildUUID() | ||
63 | |||
64 | if (isStreamingPlaylist(videoOrPlaylist)) { | ||
65 | return `${uuid}-${resolution}-${videoOrPlaylist.getStringType()}${extension}` | ||
66 | } | ||
67 | |||
68 | return uuid + '-' + resolution + extension | ||
69 | } | ||
70 | |||
71 | function getFSTorrentFilePath (videoFile: MVideoFile) { | ||
72 | return join(CONFIG.STORAGE.TORRENTS_DIR, videoFile.torrentFilename) | ||
73 | } | ||
74 | |||
75 | // --------------------------------------------------------------------------- | ||
76 | |||
77 | export { | ||
78 | generateHLSVideoFilename, | ||
79 | generateWebVideoFilename, | ||
80 | |||
81 | generateTorrentFileName, | ||
82 | getFSTorrentFilePath, | ||
83 | |||
84 | getHLSDirectory, | ||
85 | getLiveDirectory, | ||
86 | getLiveReplayBaseDirectory, | ||
87 | getHLSRedundancyDirectory, | ||
88 | |||
89 | generateHLSMasterPlaylistFilename, | ||
90 | generateHlsSha256SegmentsFilename, | ||
91 | getHlsResolutionPlaylistFilename | ||
92 | } | ||