VIDEOS_DIR: buildPath(config.get<string>('storage.videos')),
THUMBNAILS_DIR: buildPath(config.get<string>('storage.thumbnails')),
PREVIEWS_DIR: buildPath(config.get<string>('storage.previews')),
+ CAPTIONS_DIR: buildPath(config.get<string>('storage.captions')),
TORRENTS_DIR: buildPath(config.get<string>('storage.torrents')),
CACHE_DIR: buildPath(config.get<string>('storage.cache'))
},
CACHE: {
PREVIEWS: {
get SIZE () { return config.get<number>('cache.previews.size') }
+ },
+ VIDEO_CAPTIONS: {
+ get SIZE () { return config.get<number>('cache.captions.size') }
}
},
INSTANCE: {
SUPPORT: { min: 3, max: 500 }, // Length
URL: { min: 3, max: 2000 } // Length
},
+ VIDEO_CAPTIONS: {
+ CAPTION_FILE: {
+ EXTNAME: [ '.vtt', '.srt' ],
+ FILE_SIZE: {
+ max: 2 * 1024 * 1024 // 2MB
+ }
+ }
+ },
VIDEOS: {
NAME: { min: 3, max: 120 }, // Length
LANGUAGE: { min: 1, max: 10 }, // Length
'image/jpeg': '.jpg'
}
+const VIDEO_CAPTIONS_MIMETYPE_EXT = {
+ 'text/vtt': '.vtt',
+ 'application/x-subrip': '.srt'
+}
+
// ---------------------------------------------------------------------------
const SERVER_ACTOR_NAME = 'peertube'
THUMBNAILS: '/static/thumbnails/',
TORRENTS: '/static/torrents/',
WEBSEED: '/static/webseed/',
- AVATARS: '/static/avatars/'
+ AVATARS: '/static/avatars/',
+ VIDEO_CAPTIONS: '/static/video-captions/'
}
const STATIC_DOWNLOAD_PATHS = {
TORRENTS: '/download/torrents/',
// Sub folders of cache directory
const CACHE = {
- DIRECTORIES: {
- PREVIEWS: join(CONFIG.STORAGE.CACHE_DIR, 'previews')
+ PREVIEWS: {
+ DIRECTORY: join(CONFIG.STORAGE.CACHE_DIR, 'previews'),
+ MAX_AGE: 1000 * 3600 * 3 // 3 hours
+ },
+ VIDEO_CAPTIONS: {
+ DIRECTORY: join(CONFIG.STORAGE.CACHE_DIR, 'video-captions'),
+ MAX_AGE: 1000 * 3600 * 3 // 3 hours
}
}
VIDEO_VIEW_LIFETIME = 1000 // 1 second
JOB_ATTEMPTS['email'] = 1
+
+ CACHE.VIDEO_CAPTIONS.MAX_AGE = 3000
}
updateWebserverConfig()
export {
API_VERSION,
+ VIDEO_CAPTIONS_MIMETYPE_EXT,
AVATARS_SIZE,
ACCEPT_HEADERS,
BCRYPT_SALT_SIZE,