import { first, map, share, shareReplay, switchMap, tap } from 'rxjs/operators'
import { HttpClient } from '@angular/common/http'
import { Inject, Injectable, LOCALE_ID } from '@angular/core'
-import { getDevLocale, isOnDevLocale, peertubeLocalStorage, sortBy } from '@app/helpers'
-import {
- getCompleteLocale,
- isDefaultLocale,
- peertubeTranslate,
- SearchTargetType,
- ServerConfig,
- ServerStats,
- VideoConstant
-} from '@shared/models'
+import { getDevLocale, isOnDevLocale, sortBy } from '@app/helpers'
+import { peertubeLocalStorage } from '@root-helpers/peertube-web-storage'
+import { getCompleteLocale, isDefaultLocale, peertubeTranslate } from '@shared/core-utils/i18n'
+import { SearchTargetType, ServerConfig, ServerStats, VideoConstant } from '@shared/models'
import { environment } from '../../../environments/environment'
@Injectable()
name: 'PeerTube',
shortDescription: 'PeerTube, a federated (ActivityPub) video streaming platform ' +
'using P2P (BitTorrent) directly in the web browser with WebTorrent and Angular.',
- defaultClientRoute: '',
isNSFW: false,
defaultNSFWPolicy: 'do_not_list' as 'do_not_list',
+ defaultClientRoute: '',
customizations: {
javascript: '',
css: ''
requiresEmailVerification: false
},
transcoding: {
+ profile: 'default',
+ availableProfiles: [ 'default' ],
enabledResolutions: [],
hls: {
enabled: false
enabled: true
}
},
+ live: {
+ enabled: false,
+ allowReplay: true,
+ maxDuration: null,
+ maxInstanceLives: -1,
+ maxUserLives: -1,
+ transcoding: {
+ enabled: false,
+ profile: 'default',
+ availableProfiles: [ 'default' ],
+ enabledResolutions: []
+ },
+ rtmp: {
+ port: 1935
+ }
+ },
avatar: {
file: {
size: { max: 0 },
},
trending: {
videos: {
- intervalDays: 0
+ intervalDays: 0,
+ algorithms: {
+ enabled: [ 'best', 'hot', 'most-viewed', 'most-liked' ],
+ default: 'most-viewed'
+ }
}
},
autoBlacklist: {