This is a component for Vue.js to utilize YouTube iframe API easily. This is based on Angular YouTube Embed
MIT License
<script src="vue-youtube-embed.js"></script>
<script>
Vue.use(VueYouTubeEmbed)
</script>
or
// yarn or npm
yarn install --save vue-youtube-embed
'use strict'
import Vue from 'vue'
import VueYouTubeEmbed from 'vue-youtube-embed'
Vue.use(VueYouTubeEmbed)
Please pass the ID of the video that you'd like to show.
<youtube :video-id="videoId"></youtube>
These are available props.
player-width
:String
orNumber
, default value is640
player-height
:String
orNumber
, default value is390
player-vars
:Object
, default value is{start: 0, autoplay: 0}
video-id
:String
,required
mute
:Boolean
default value isfalse
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)
}
}
}
These are the events that will be emitted by the component.
ready
ended
playing
paused
buffering
qued
error
The first argument is an instance of YT.Player
.
<youtube :player-vars="{ autoplay: 1 }"></youtube>
// yarn or npm
yarn install
yarn run play
<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 (player) {
this.player = player
},
playing (player) {
// 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()
}
}
})
- contribution welcome!