import { copyToClipboard } from '@root-helpers/utils'
import { buildVideoOrPlaylistEmbed } from '@root-helpers/video'
import { isIOS, isSafari } from '@root-helpers/web-browser'
-import { buildVideoLink, decorateVideoLink } from '@shared/core-utils'
+import { buildVideoLink, decorateVideoLink, pick } from '@shared/core-utils'
import { isDefaultLocale } from '@shared/core-utils/i18n'
import { VideoJSPluginOptions } from '../../types'
import { CommonOptions, PeertubePlayerManagerOptions, PlayerMode } from '../../types/manager-options'
}
- getVideojsOptions (alreadyPlayed: boolean): videojs.PlayerOptions {
+ async getVideojsOptions (alreadyPlayed: boolean): Promise<videojs.PlayerOptions> {
const commonOptions = this.options.common
let autoplay = this.getAutoPlayValue(commonOptions.autoplay, alreadyPlayed)
peertube: {
mode: this.mode,
autoplay, // Use peertube plugin autoplay because we could get the file by webtorrent
- videoViewUrl: commonOptions.videoViewUrl,
- videoDuration: commonOptions.videoDuration,
- userWatching: commonOptions.userWatching,
- subtitle: commonOptions.subtitle,
- videoCaptions: commonOptions.videoCaptions,
- stopTime: commonOptions.stopTime,
- isLive: commonOptions.isLive,
- videoUUID: commonOptions.videoUUID
+
+ ...pick(commonOptions, [
+ 'videoViewUrl',
+ 'authorizationHeader',
+ 'startTime',
+ 'videoDuration',
+ 'subtitle',
+ 'videoCaptions',
+ 'stopTime',
+ 'isLive',
+ 'videoUUID'
+ ])
+ },
+ metrics: {
+ mode: this.mode,
+
+ ...pick(commonOptions, [
+ 'metricsUrl',
+ 'videoUUID'
+ ])
}
}
if (this.mode === 'p2p-media-loader') {
const hlsOptionsBuilder = new HLSOptionsBuilder(this.options, this.p2pMediaLoaderModule)
+ const options = await hlsOptionsBuilder.getPluginOptions()
- Object.assign(plugins, hlsOptionsBuilder.getPluginOptions())
+ Object.assign(plugins, pick(options, [ 'hlsjs', 'p2pMediaLoader' ]))
+ Object.assign(html5, options.html5)
} else if (this.mode === 'webtorrent') {
const webtorrentOptionsBuilder = new WebTorrentOptionsBuilder(this.options, this.getAutoPlayValue(autoplay, alreadyPlayed))
icon: 'code',
label: player.localize('Copy embed code'),
listener: () => {
- copyToClipboard(buildVideoOrPlaylistEmbed(commonOptions.embedUrl, commonOptions.embedTitle))
+ copyToClipboard(buildVideoOrPlaylistEmbed({ embedUrl: commonOptions.embedUrl, embedTitle: commonOptions.embedTitle }))
}
}
]