如何在使用YouTube播放器IFrame API时获取视频标题?

时间:2012-11-07 21:08:45

标签: video youtube youtube-api gdata gdata-api

我有一个视频ID。然后我通过YouTube Player API的IFrame API显示视频。视频会显示,现在我需要立即获取此视频的标题。

请注意,当我通过YouTube播放器IFrame API显示YouTube视频时,我需要立即获取视频标题。

最快获取视频标题的方式是什么?我需要解决方案。

谢谢。

4 个答案:

答案 0 :(得分:9)

确实可以获得视频标题

调用您的YouTube播放器API的IFrame API后,您就可以访问' event.target.getVideoData()。title &# 39;功能:

new YT.Player('player', {
height: '390',
width: '640',
videoId: 'D3pYbbA1kfk',
events: {
  'onReady': function onPlayerReady(event) {
    alert("The video title is: " +  event.target.getVideoData().title);
  }
}
});

完整的工作示例:https://codepen.io/anon/pen/vGOzqy?editors=0010

答案 1 :(得分:2)

似乎无法从Player IFrame API中获取:

https://groups.google.com/forum/?fromgroups=#!topic/youtube-api-gdata/D0w8wA0UV7A

“使用Players API无法获取该信息。您需要使用Data API。”

答案 2 :(得分:0)

检查onStateChange事件中的未启动和播放状态。我用它作为解决方案,也许不是最好的但工作正常。

    var info = null;
    function onStateChange(e) 
    {
        switch(e.data) {
        case YT.PlayerState.UNSTARTED:
            info = null;
            break;
        case YT.PlayerState.PLAYING:
            if(info == null)
            {
                info = {title: player.getVideoData().title, duration: player.getDuration()};
                // use info here...
            }
            break;
        }
    }

答案 3 :(得分:0)

Swift 3

您可以使用YTPlayerState + Extension.swift

extension YTPlayerView {
    var videoTitle: String {
        let callString = "player.getVideoData().title"
        return webView?.stringByEvaluatingJavaScript(from: callString) ?? "no title"
    }
}