如何捕捉 Youtube 视频的图像并显示在网站上

问题描述 投票:0回答:2

我有兴趣创建一个在屏幕上显示一些“屏幕截图”的网站。这些“屏幕截图”可以是任何图像文件类型(例如:jpeg、png 等)我希望能够显示 Youtube 视频的第一帧屏幕截图。当用户点击它时,用户将被重定向到 Youtube URL。

如何在给定 URL 的情况下检索 Youtube 视频的屏幕截图或第一帧图像?例如:http://www.youtube.com/watch?v=gbcmYbMB9mo 使用这个,我想要一张 GoPro 相机的图像。是否有 API 可以捕获 Youtube 视频的第一张图片?

谢谢

video youtube screenshot video-capture
2个回答
1
投票

您可以使用YouTube IFrame API(参见https://developers.google.com/youtube/iframe_api_reference)。

这里是播放您问题中提供的视频的示例(

gbcmYbMB9mo
):

<body onload="LoadYouTubeIframeAPI()">
    <script type="text/javascript">
        var player = null;
        var playerParams =
        {
            playerVars:
            {
                "enablejsapi":1,
                "origin":document.domain,
                "rel":0
            },
            events:
            {
                "onReady":onPlayerReady,
                "onError":onPlayerError,
                "onStateChange":onPlayerStateChange
            }
        };
        function LoadYouTubeIframeAPI()
        {
            var scriptElement = document.createElement("script");
            scriptElement.src = "http://www.youtube.com/iframe_api";
            var firstScriptElement = document.getElementsByTagName("script")[0];
            firstScriptElement.parentNode.insertBefore(scriptElement,firstScriptElement);
        }
        function onYouTubeIframeAPIReady()
        {
            player = new YT.Player("player",playerParams);
        }
        function onPlayerReady(event)
        {
            player.loadVideoById("gbcmYbMB9mo");
        }
        function onPlayerError(event)
        {
            ...
        }
        function onPlayerStateChange(event)
        {
            if (event.data == YT.PlayerState.ENDED)
            {
                ...
            }
        }
    </script>
</body>

您可能需要使用此代码“玩一点”,以防止视频自动启动......


0
投票

由于视频可能与运行代码的位置(您的网站)不同

origin
,因此无法完成。直接视频嵌入可以使用画布 API 截取屏幕截图。

对于 youtube 和其他 iframe 方法,您需要服务器端处理。为此存在库,例如:https://github.com/jsgilberto/youtube-frames

© www.soinside.com 2019 - 2024. All rights reserved.