You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Bookmarklet获取iframe嵌入的YouTube播放器当前播放时间

问题原因
  • 你定义的onYouTubePlayerAPIReady回调不会被触发:该函数是YouTube Iframe API加载完成时的一次性回调,如果你运行Bookmarklet时站点已经完成了API加载,后续再定义该函数不会被自动执行,因此没有任何响应
  • 播放器实例初始化是异步过程:就算回调能触发,你刚执行new YT.Player('widget2')就调用getCurrentTime(),此时播放器实例还未完成初始化,也无法拿到正确的播放时间
  • 原主站可用的代码在嵌入站失效:YouTube主站的movie_player是当前页面内的原生DOM元素,而嵌入站的YouTube播放器在跨域iframe中,父页面无法直接访问iframe内部的DOM元素,因此原逻辑不适用
修复后的代码

你提供的示例站点已经加载了YouTube Iframe API,且iframe已经开启了JS API权限,直接调用官方提供的YT.get方法即可获取对应ID的已初始化播放器实例,不需要重新创建实例,修改后的Bookmarklet代码如下:

javascript:(function(){
    const ytplayer = YT.get('widget2');
    const secs = ytplayer.getCurrentTime();
    alert(`${secs}`);
})();

内容的提问来源于stack exchange,提问作者Katherine Dudo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 18:27:03