From what I can tell, Iframe API's getVideoData()
always calls home to https://www.youtube.com/get_video_info
.
Nit: I would suggest not going outside the onPlayer*
functions to call getVideoData()
by getting it off of the event
object rather than the player
object.
In either case the function returns and object like so:
Object { video_id: "XXX", author: "AUTHOR", title: "TITLE" }
Here's an example that sets a Google Analytics Event with the video Id:
var onPlayerStateChange = function(event) {
videoId = typeof event.target.getVideoData().video_id !== 'undefined' ? event.target.getVideoData().video_id : 'unknown';
if (event.data == YT.PlayerState.PLAYING) {
if (window.ga && ga.loaded) {
ga('send', 'event', 'Video', 'play', videoId);
}
}
if (event.data == YT.PlayerState.PAUSED) {
if (window.ga && ga.loaded) {
ga('send', 'event', 'Video', 'pause', videoId);
}
}
if (event.data == YT.PlayerState.ENDED) {
if (window.ga && ga.loaded) {
ga('send', 'event', 'Video', 'ended', videoId);
}
}
};