JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 5293
  • Score
    100M100P100Q122308F
  • License MIT

Vue.js and YouTube

Package Exports

  • vue-youtube-embed

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (vue-youtube-embed) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Vue YouTube Embed

This is a component for Vue.js to utilize YouTube iframe API easily. This is based on Angular YouTube Embed

License

MIT License

install

<script src="vue-youtube-embed.umd.js"></script>
<script>
Vue.use(VueYouTubeEmbed)
</script>

or

// NPM
npm i -S vue-youtube-embed

// or with Yarn
yarn add vue-youtube-embed
import Vue from 'vue'
import VueYouTubeEmbed from 'vue-youtube-embed'
Vue.use(VueYouTubeEmbed)
// if you don't want install the component globally
Vue.use(VueYouTubeEmbed, { global: false })
// if you want to install the component globally with a different name
Vue.use(VueYouTubeEmbed, { global: true, componentId: "youtube-media" })

Usage

Please pass the ID of the video that you'd like to show.

<youtube :video-id="videoId"></youtube>

<!-- or with a custom component identifier -->
<youtube-media :video-id="videoId"></youtube-media>

Props

These are available props.

  • player-width: String or Number, default value is 640
  • player-height: String or Number, default value is 360
  • player-vars: Object, default value is {start: 0, autoplay: 0} Can also specify rel.
  • video-id: String, required
  • mute: Boolean default value is false
  • host: String default value is https://www.youtube.com. Can be set to https://www.youtube-nocookie.com as well.

Methods

These functions are the same as the original one.

  • getIdFromURL
  • getTimeFromURL
import { getIdFromURL, getTimeFromURL } from 'vue-youtube-embed'
let videoId = getIdFromURL(url)
let startTime = getTimeFromURL(url)

or

export default {
  methods: {
    method (url) {
      this.videoId = this.$youtube.getIdFromURL(url)
      this.startTime = this.$youtube.getTimeFromURL(url)
    }
  }
}

Events

These are the events that will be emitted by the component.

  • ready
  • ended
  • playing
  • paused
  • buffering
  • qued
  • error

The first argument contains the instance of YT.Player at the parameter target.

The way of start playing video automatically

<youtube :player-vars="{ autoplay: 1 }"></youtube>

Example on vue-play

// yarn or npm
yarn install
yarn run play

Example code

<div id="#app">
  <section>
    <h2>listening events</h2>
    <youtube :video-id="videoId" @ready="ready" @playing="playing"></youtube>
  </section>
  <section>
    <h2>add options</h2>
    <youtube :video-id="videoId" player-width="1280" player-height="750" :player-vars="{autoplay: 1}"></youtube>
  </section>
</div>
'use strict'
import Vue from 'vue'
import VueYouTubeEmbed from 'vue-youtube-embed'

Vue.use(VueYouTubeEmbed)

const app = new Vue({
  el: '#app',
  data: {
    videoId: 'videoId',
  },
  methods: {
    ready (event) {
      this.player = event.target
    },
    playing (event) {
      // The player is playing a video.
    },
    change () {
      // when you change the value, the player will also change.
      // If you would like to change `playerVars`, please change it before you change `videoId`.
      // If `playerVars.autoplay` is 1, `loadVideoById` will be called.
      // If `playerVars.autoplay` is 0, `cueVideoById` will be called.
      this.videoId = 'another video id'
    },
    stop () {
      this.player.stopVideo()
    },
    pause () {
      this.player.pauseVideo()
    }
  }
})

Usage with Nuxt SSR

To get this component working with Nuxt, wrap it in Nuxt's no-ssr component.

Contribution

contribution welcome!