Skip to content

kinescope/vue-kinescope-player

Repository files navigation

Vue wrapper for Kinescope Embed Player

Starting from version 2.0.0, this package works with Vue 3.

Installation

Using npm:

npm install @kinescope/vue-kinescope-player --save

Using yarn:

yarn add @kinescope/vue-kinescope-player

Getting Started

You can either import it in your whole project

import KinescopePlayer from "@kinescope/vue-kinescope-player";
import { createApp } from "vue";

const app = createApp(App);
app.use(KinescopePlayer);
app.mount("#app");

or import it locally in a component

import { KinescopePlayer } from "@kinescope/vue-kinescope-player";

export default {
  components: { KinescopePlayer },
};
<!-- events -->
<template>
  <kinescope-player
    :video-id="200702846"
    @ready="handleReady"
    @play="handlePlay"
  ></kinescope-player>
</template>
<!-- methods -->
<template>
  <div>
    <kinescope-player
      ref="kinescope"
      :video-id="200702846"
      @ready="handleReady"
    ></kinescope-player>
    <button @click="handleClick" :disabled="!ready">Play</button>
  </div>
</template>

<script>
import { ref } from "vue";
import { KinescopePlayer } from "@kinescope/vue-kinescope-player";

export default {
  components: { KinescopePlayer },
  setup() {
    const ready = ref(false);
    const kinescope = ref(null);

    const handleReady = () => {
      ready.value = true;
    };

    const handleClick = () => {
      kinescope.value.player.play();
    };

    return {
      ready,
      kinescope,
      handleReady,
      handleClick,
    };
  },
};
</script>

Props

General

Prop Type Default Description Required
video-id Number, String - Video id from app.kinescope.io Yes
width Number, String 100% Player width No
height Number, String 100% Player height No
external-id String - External user ID passed to Kinescope analytics No

Behavior

Prop Type Default Description Required
auto-play Boolean, String false Autostart playback. 'viewable' — start when player enters viewport, 'hover' — play while cursor is over player No
muted Boolean false Start video muted No
loop Boolean false Loop the video No
plays-inline Boolean true Play inline on mobile without auto-entering fullscreen No
volume Number - Initial volume level (0–1). Reactive: updates volume without reloading the player No
playback-rate Number - Initial playback rate (1 = normal). Reactive: updates speed without reloading the player No
text-track Boolean, String - Enable subtitles on load. Pass true for default or a language code e.g. 'ru' No

UI

Prop Type Default Description Required
language String en Player UI language No
controls Boolean true Show all player controls. When false, hides everything including title and control bar No
title Boolean true Show video title overlay No
control-bar Boolean, String true Show bottom control bar. 'always' — keep visible even during playback No
progress-bar Boolean true Show progress / seek bar No
main-play-button Boolean true Show the large center play button No
play-button Boolean true Show play/pause button in the control bar No
volume-button Boolean true Show volume button in the control bar No
playback-rate-button Boolean false Show playback rate button in the control bar No
playback-rates Array, Boolean - Available playback rates list e.g. [0.5, 1, 1.5, 2]. false hides the button No
subtitles-button Boolean true Show subtitles (CC) button in the control bar No
settings-button Boolean true Show settings button in the control bar No
pip-button Boolean true Show Picture-in-Picture button in the control bar No
fullscreen-button Boolean, String true Show fullscreen button. 'force' — always show even if fullscreen API is unavailable No
video-fit String contain How video fits the player container: 'contain' | 'cover' | 'fill' No
watermark String, Object - Watermark displayed over the video. Pass a string as shorthand or a full options object:
{ text: string, mode?: 'random' | 'stripes', scale?: number, displayTimeout?: number | { visible: number, hidden: number } }
Reactive: changing this prop updates the watermark without reloading the player.
No

Events

Event Data
js-load No
js-load-error No
ready currentTime: number
duration: number
quality: string | number
qualityLevels: {}
quality-changed quality: string | number
auto-quality-changed quality: string | number
seek-chapter position: number
size-changed width: number
height: number
play No
playing No
waiting No
pause No
ended No
time-update currentTime: number
progress bufferedTime: number
duration-change duration: number
volume-change muted: boolean
volume: number
playback-rate-change playbackRate: number
seeking No
seeked No
fullscreen-change isFullscreen: boolean
video: boolean
call-action id: string
title?: string
type: string
call-bookmark id: string
time: number
title?: string
error error: unknown
destroy No

Methods

Method Params Result
isPaused No Promise<boolean>
isEnded No Promise<boolean>
play No Promise<void>
pause No Promise<boolean>
stop No Promise<void>
getCurrentTime No Promise<number>
getDuration No Promise<number>
seekTo (time: number) Promise<void>
isMuted No Promise<boolean>
mute No Promise<void>
unmute No Promise<void>
getVolume No Promise<number>
setVolume (value: number) Promise<void>
getPlaybackRate No Promise<number>
setPlaybackRate (value: number) Promise<void>
getVideoQualityList No Promise<VideoQuality[]>
getCurrentVideoQuality No Promise<VideoQuality>
setVideoQuality (quality: VideoQuality) Promise<void>
enableTextTrack (lang: string) Promise<void>
disableTextTrack No Promise<void>
closeCTA No Promise<void>
isFullscreen No Promise<boolean>
setFullscreen (fullscreen: boolean) Promise<void>
isPip No Promise<boolean>
setPip (pip: boolean) Promise<void>
getPlaylistItem No Promise<object>
switchTo (id: string) Promise<void>
next No Promise<void>
previous No Promise<void>

About

Vue bridge for the Kinescope player

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors