import './embed.scss'
import * as videojs from 'video.js'
-import 'videojs-hotkeys'
-import '../../assets/player/peertube-videojs-plugin'
-import 'videojs-dock/dist/videojs-dock.es.js'
+
import { VideoDetails } from '../../../../shared'
+import { getVideojsOptions } from '../../assets/player/peertube-player'
function getVideoUrl (id: string) {
return window.location.origin + '/api/v1/videos/' + id
loadVideoInfo(videoId)
.then(videoInfo => {
- const videoElement = document.getElementById('video-container') as HTMLVideoElement
- const previewUrl = window.location.origin + videoInfo.previewPath
- videoElement.poster = previewUrl
-
- const videojsOptions = {
- controls: true,
- autoplay: false,
- inactivityTimeout: 500,
- plugins: {
- peertube: {
- videoFiles: videoInfo.files,
- playerElement: videoElement,
- videoViewUrl: getVideoUrl(videoId) + '/views',
- videoDuration: videoInfo.duration
- },
- hotkeys: {
- enableVolumeScroll: false
- }
- },
- controlBar: {
- children: [
- 'playToggle',
- 'currentTimeDisplay',
- 'timeDivider',
- 'durationDisplay',
- 'liveDisplay',
-
- 'flexibleWidthSpacer',
- 'progressControl',
+ const videoContainerId = 'video-container'
- 'webTorrentButton',
+ const videoElement = document.getElementById(videoContainerId) as HTMLVideoElement
+ let autoplay = false
+ let startTime = 0
- 'muteToggle',
- 'volumeControl',
+ try {
+ let params = new URL(window.location.toString()).searchParams
+ autoplay = params.has('autoplay') && (params.get('autoplay') === '1' || params.get('autoplay') === 'true')
- 'resolutionMenuButton',
- 'peerTubeLinkButton',
-
- 'fullscreenToggle'
- ]
- }
+ const startTimeParamString = params.get('start')
+ const startTimeParamNumber = parseInt(startTimeParamString, 10)
+ if (isNaN(startTimeParamNumber) === false) startTime = startTimeParamNumber
+ } catch (err) {
+ console.error('Cannot get params from URL.', err)
}
- videojs('video-container', videojsOptions, function () {
+
+ const videojsOptions = getVideojsOptions({
+ autoplay,
+ inactivityTimeout: 1500,
+ videoViewUrl: getVideoUrl(videoId) + '/views',
+ playerElement: videoElement,
+ videoFiles: videoInfo.files,
+ videoDuration: videoInfo.duration,
+ enableHotkeys: true,
+ peertubeLink: true,
+ poster: window.location.origin + videoInfo.previewPath,
+ startTime
+ })
+ videojs(videoContainerId, videojsOptions, function () {
const player = this
player.dock({