mirror of
https://github.com/Chocobozzz/PeerTube.git
synced 2025-10-05 10:49:28 +02:00
Add ability to disable webtorrent
In favour of HLS
This commit is contained in:
parent
14981d7331
commit
d7a25329f9
80 changed files with 1189 additions and 540 deletions
64
server/lib/video-paths.ts
Normal file
64
server/lib/video-paths.ts
Normal file
|
@ -0,0 +1,64 @@
|
|||
import { isStreamingPlaylist, MStreamingPlaylistVideo, MVideo, MVideoFile } from '@server/typings/models'
|
||||
import { extractVideo } from './videos'
|
||||
import { join } from 'path'
|
||||
import { CONFIG } from '@server/initializers/config'
|
||||
import { HLS_STREAMING_PLAYLIST_DIRECTORY } from '@server/initializers/constants'
|
||||
|
||||
// ################## Video file name ##################
|
||||
|
||||
function getVideoFilename (videoOrPlaylist: MVideo | MStreamingPlaylistVideo, videoFile: MVideoFile) {
|
||||
const video = extractVideo(videoOrPlaylist)
|
||||
|
||||
if (isStreamingPlaylist(videoOrPlaylist)) {
|
||||
return generateVideoStreamingPlaylistName(video.uuid, videoFile.resolution)
|
||||
}
|
||||
|
||||
return generateWebTorrentVideoName(video.uuid, videoFile.resolution, videoFile.extname)
|
||||
}
|
||||
|
||||
function generateVideoStreamingPlaylistName (uuid: string, resolution: number) {
|
||||
return `${uuid}-${resolution}-fragmented.mp4`
|
||||
}
|
||||
|
||||
function generateWebTorrentVideoName (uuid: string, resolution: number, extname: string) {
|
||||
return uuid + '-' + resolution + extname
|
||||
}
|
||||
|
||||
function getVideoFilePath (videoOrPlaylist: MVideo | MStreamingPlaylistVideo, videoFile: MVideoFile, isRedundancy = false) {
|
||||
if (isStreamingPlaylist(videoOrPlaylist)) {
|
||||
const video = extractVideo(videoOrPlaylist)
|
||||
return join(HLS_STREAMING_PLAYLIST_DIRECTORY, video.uuid, getVideoFilename(videoOrPlaylist, videoFile))
|
||||
}
|
||||
|
||||
const baseDir = isRedundancy ? CONFIG.STORAGE.REDUNDANCY_DIR : CONFIG.STORAGE.VIDEOS_DIR
|
||||
return join(baseDir, getVideoFilename(videoOrPlaylist, videoFile))
|
||||
}
|
||||
|
||||
// ################## Torrents ##################
|
||||
|
||||
function getTorrentFileName (videoOrPlaylist: MVideo | MStreamingPlaylistVideo, videoFile: MVideoFile) {
|
||||
const video = extractVideo(videoOrPlaylist)
|
||||
const extension = '.torrent'
|
||||
|
||||
if (isStreamingPlaylist(videoOrPlaylist)) {
|
||||
return `${video.uuid}-${videoFile.resolution}-${videoOrPlaylist.getStringType()}${extension}`
|
||||
}
|
||||
|
||||
return video.uuid + '-' + videoFile.resolution + extension
|
||||
}
|
||||
|
||||
function getTorrentFilePath (videoOrPlaylist: MVideo | MStreamingPlaylistVideo, videoFile: MVideoFile) {
|
||||
return join(CONFIG.STORAGE.TORRENTS_DIR, getTorrentFileName(videoOrPlaylist, videoFile))
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
export {
|
||||
generateVideoStreamingPlaylistName,
|
||||
generateWebTorrentVideoName,
|
||||
getVideoFilename,
|
||||
getVideoFilePath,
|
||||
|
||||
getTorrentFileName,
|
||||
getTorrentFilePath
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue