-import { VideoChannelAttribute, VideoConstant, VideosOverview as VideosOverviewServer } from '../../../../../shared/models'
+import { VideoChannelSummary, VideoConstant, VideosOverview as VideosOverviewServer } from '../../../../../shared/models'
import { Video } from '@app/shared/video/video.model'
export class VideosOverview implements VideosOverviewServer {
channels: {
- channel: VideoChannelAttribute
+ channel: VideoChannelSummary
videos: Video[]
}[]
tmp: 'storage/tmp/' # Used to download data (imports etc), store uploaded files before processing...
avatars: 'storage/avatars/'
videos: 'storage/videos/'
- playlists: 'storage/playlists/'
+ streaming_playlists: 'storage/streaming-playlists/'
redundancy: 'storage/redundancy/'
logs: 'storage/logs/'
previews: 'storage/previews/'
executeIfActivityPub(asyncMiddleware(videoFileRedundancyGetValidator)),
executeIfActivityPub(asyncMiddleware(videoRedundancyController))
)
-activityPubClientRouter.get('/redundancy/video-playlists/:streamingPlaylistType/:videoId',
+activityPubClientRouter.get('/redundancy/streaming-playlists/:streamingPlaylistType/:videoId',
executeIfActivityPub(asyncMiddleware(videoPlaylistRedundancyGetValidator)),
executeIfActivityPub(asyncMiddleware(videoRedundancyController))
)
import * as cors from 'cors'
import * as express from 'express'
-import { CONFIG, HLS_PLAYLIST_DIRECTORY, ROUTE_CACHE_LIFETIME, STATIC_DOWNLOAD_PATHS, STATIC_MAX_AGE, STATIC_PATHS } from '../initializers'
+import {
+ CONFIG,
+ HLS_STREAMING_PLAYLIST_DIRECTORY,
+ ROUTE_CACHE_LIFETIME,
+ STATIC_DOWNLOAD_PATHS,
+ STATIC_MAX_AGE,
+ STATIC_PATHS
+} from '../initializers'
import { VideosPreviewCache } from '../lib/cache'
import { cacheRoute } from '../middlewares/cache'
import { asyncMiddleware, videosGetValidator } from '../middlewares'
// HLS
staticRouter.use(
- STATIC_PATHS.PLAYLISTS.HLS,
+ STATIC_PATHS.STREAMING_PLAYLISTS.HLS,
cors(),
- express.static(HLS_PLAYLIST_DIRECTORY, { fallthrough: false }) // 404 if the file does not exist
+ express.static(HLS_STREAMING_PLAYLIST_DIRECTORY, { fallthrough: false }) // 404 if the file does not exist
)
// Thumbnails path for express
'database.hostname', 'database.port', 'database.suffix', 'database.username', 'database.password', 'database.pool.max',
'smtp.hostname', 'smtp.port', 'smtp.username', 'smtp.password', 'smtp.tls', 'smtp.from_address',
'storage.avatars', 'storage.videos', 'storage.logs', 'storage.previews', 'storage.thumbnails', 'storage.torrents', 'storage.cache',
- 'storage.redundancy', 'storage.tmp', 'storage.playlists',
+ 'storage.redundancy', 'storage.tmp', 'storage.streaming_playlists',
'log.level',
'user.video_quota', 'user.video_quota_daily',
'csp.enabled', 'csp.report_only', 'csp.report_uri',
AVATARS_DIR: buildPath(config.get<string>('storage.avatars')),
LOG_DIR: buildPath(config.get<string>('storage.logs')),
VIDEOS_DIR: buildPath(config.get<string>('storage.videos')),
- PLAYLISTS_DIR: buildPath(config.get<string>('storage.playlists')),
+ STREAMING_PLAYLISTS_DIR: buildPath(config.get<string>('storage.streaming_playlists')),
REDUNDANCY_DIR: buildPath(config.get<string>('storage.redundancy')),
THUMBNAILS_DIR: buildPath(config.get<string>('storage.thumbnails')),
PREVIEWS_DIR: buildPath(config.get<string>('storage.previews')),
TORRENTS: '/static/torrents/',
WEBSEED: '/static/webseed/',
REDUNDANCY: '/static/redundancy/',
- PLAYLISTS: {
- HLS: '/static/playlists/hls'
+ STREAMING_PLAYLISTS: {
+ HLS: '/static/streaming-playlists/hls'
},
AVATARS: '/static/avatars/',
VIDEO_CAPTIONS: '/static/video-captions/'
}
}
-const HLS_PLAYLIST_DIRECTORY = join(CONFIG.STORAGE.PLAYLISTS_DIR, 'hls')
+const HLS_STREAMING_PLAYLIST_DIRECTORY = join(CONFIG.STORAGE.STREAMING_PLAYLISTS_DIR, 'hls')
const HLS_REDUNDANCY_DIRECTORY = join(CONFIG.STORAGE.REDUNDANCY_DIR, 'hls')
const MEMOIZE_TTL = {
PRIVATE_RSA_KEY_SIZE,
ROUTE_CACHE_LIFETIME,
SORTABLE_COLUMNS,
- HLS_PLAYLIST_DIRECTORY,
+ HLS_STREAMING_PLAYLIST_DIRECTORY,
FEEDS,
JOB_TTL,
NSFW_POLICY_TYPES,
import { ApplicationModel } from '../models/application/application'
import { OAuthClientModel } from '../models/oauth/oauth-client'
import { applicationExist, clientsExist, usersExist } from './checker-after-init'
-import { CACHE, CONFIG, HLS_PLAYLIST_DIRECTORY, LAST_MIGRATION_VERSION } from './constants'
+import { CACHE, CONFIG, HLS_STREAMING_PLAYLIST_DIRECTORY, LAST_MIGRATION_VERSION } from './constants'
import { sequelizeTypescript } from './database'
import { remove, ensureDir } from 'fs-extra'
}
// Playlist directories
- tasks.push(ensureDir(HLS_PLAYLIST_DIRECTORY))
+ tasks.push(ensureDir(HLS_STREAMING_PLAYLIST_DIRECTORY))
return Promise.all(tasks)
}
}
function getVideoCacheStreamingPlaylistActivityPubUrl (video: VideoModel, playlist: VideoStreamingPlaylistModel) {
- return `${CONFIG.WEBSERVER.URL}/redundancy/video-playlists/${playlist.getStringType()}/${video.uuid}`
+ return `${CONFIG.WEBSERVER.URL}/redundancy/streaming-playlists/${playlist.getStringType()}/${video.uuid}`
}
function getVideoCommentActivityPubUrl (video: VideoModel, videoComment: VideoCommentModel) {
import { VideoModel } from '../models/video/video'
import { basename, join, dirname } from 'path'
-import { CONFIG, HLS_PLAYLIST_DIRECTORY } from '../initializers'
+import { CONFIG, HLS_STREAMING_PLAYLIST_DIRECTORY } from '../initializers'
import { close, ensureDir, move, open, outputJSON, pathExists, read, readFile, remove, writeFile } from 'fs-extra'
import { getVideoFileSize } from '../helpers/ffmpeg-utils'
import { sha256 } from '../helpers/core-utils'
import { flatten, uniq } from 'lodash'
async function updateMasterHLSPlaylist (video: VideoModel) {
- const directory = join(HLS_PLAYLIST_DIRECTORY, video.uuid)
+ const directory = join(HLS_STREAMING_PLAYLIST_DIRECTORY, video.uuid)
const masterPlaylists: string[] = [ '#EXTM3U', '#EXT-X-VERSION:3' ]
const masterPlaylistPath = join(directory, VideoStreamingPlaylistModel.getMasterHlsPlaylistFilename())
async function updateSha256Segments (video: VideoModel) {
const json: { [filename: string]: { [range: string]: string } } = {}
- const playlistDirectory = join(HLS_PLAYLIST_DIRECTORY, video.uuid)
+ const playlistDirectory = join(HLS_STREAMING_PLAYLIST_DIRECTORY, video.uuid)
// For all the resolutions available for this video
for (const file of video.VideoFiles) {
-import { CONFIG, HLS_PLAYLIST_DIRECTORY } from '../initializers'
+import { CONFIG, HLS_STREAMING_PLAYLIST_DIRECTORY } from '../initializers'
import { extname, join } from 'path'
import { getVideoFileFPS, getVideoFileResolution, transcode } from '../helpers/ffmpeg-utils'
import { copy, ensureDir, move, remove, stat } from 'fs-extra'
}
async function generateHlsPlaylist (video: VideoModel, resolution: VideoResolution, isPortraitMode: boolean) {
- const baseHlsDirectory = join(HLS_PLAYLIST_DIRECTORY, video.uuid)
- await ensureDir(join(HLS_PLAYLIST_DIRECTORY, video.uuid))
+ const baseHlsDirectory = join(HLS_STREAMING_PLAYLIST_DIRECTORY, video.uuid)
+ await ensureDir(join(HLS_STREAMING_PLAYLIST_DIRECTORY, video.uuid))
const videoInputPath = join(CONFIG.STORAGE.VIDEOS_DIR, video.getVideoFilename(video.getOriginalFile()))
const outputPath = join(baseHlsDirectory, VideoStreamingPlaylistModel.getHlsPlaylistFilename(resolution))
}
static getHlsMasterPlaylistStaticPath (videoUUID: string) {
- return join(STATIC_PATHS.PLAYLISTS.HLS, videoUUID, VideoStreamingPlaylistModel.getMasterHlsPlaylistFilename())
+ return join(STATIC_PATHS.STREAMING_PLAYLISTS.HLS, videoUUID, VideoStreamingPlaylistModel.getMasterHlsPlaylistFilename())
}
static getHlsPlaylistStaticPath (videoUUID: string, resolution: number) {
- return join(STATIC_PATHS.PLAYLISTS.HLS, videoUUID, VideoStreamingPlaylistModel.getHlsPlaylistFilename(resolution))
+ return join(STATIC_PATHS.STREAMING_PLAYLISTS.HLS, videoUUID, VideoStreamingPlaylistModel.getHlsPlaylistFilename(resolution))
}
static getHlsSha256SegmentsStaticPath (videoUUID: string) {
- return join(STATIC_PATHS.PLAYLISTS.HLS, videoUUID, VideoStreamingPlaylistModel.getHlsSha256SegmentsFilename())
+ return join(STATIC_PATHS.STREAMING_PLAYLISTS.HLS, videoUUID, VideoStreamingPlaylistModel.getHlsSha256SegmentsFilename())
}
getStringType () {
API_VERSION,
CONFIG,
CONSTRAINTS_FIELDS,
- HLS_PLAYLIST_DIRECTORY,
+ HLS_STREAMING_PLAYLIST_DIRECTORY,
HLS_REDUNDANCY_DIRECTORY,
PREVIEWS_SIZE,
REMOTE_SCHEME,
}
removeStreamingPlaylist (isRedundancy = false) {
- const baseDir = isRedundancy ? HLS_REDUNDANCY_DIRECTORY : HLS_PLAYLIST_DIRECTORY
+ const baseDir = isRedundancy ? HLS_REDUNDANCY_DIRECTORY : HLS_STREAMING_PLAYLIST_DIRECTORY
const filePath = join(baseDir, this.uuid)
return remove(filePath)