如何在YouTube网站开发者工具中获取当前播放视频的相关信息
可行解决方案
方法1:通过ytplayer全局对象获取实时播放数据
这是目前YouTube页面全局暴露的实时播放器实例,所有当前播放的视频元数据、播放状态都会实时同步到该对象中,直接在开发者工具控制台运行对应代码即可获取数据:
- 核心元数据获取:运行
window.ytplayer.config.args.raw_player_response
该返回值包含当前播放视频的视频ID、标题、总时长、上传者信息、可用分辨率列表、字幕轨道、各尺寸缩略图地址等所有核心元数据,就算是同页面跳转播放推荐视频、选集切换后的数据也会自动同步更新,无需刷新页面 - 实时播放状态获取:运行
window.ytplayer.playerInfo
可直接拿到当前播放进度、实时音量、暂停状态、播放速度等动态状态数据
方法2:调用播放器内置公开方法获取数据
该方案兼容性更高,调用的是YouTube播放器对外暴露的原生方法,不受全局变量赋值逻辑变更影响,直接在控制台运行以下代码即可:
// 获取播放器DOM实例 const player = document.getElementById('movie_player'); // 按需调用对应方法获取数据 console.log('当前视频标题:', player.getVideoData().title); console.log('当前视频ID:', player.getVideoData().video_id); console.log('当前播放进度(秒):', player.getCurrentTime()); console.log('视频总时长(秒):', player.getDuration()); console.log('当前播放速度:', player.getPlaybackRate());
切换播放视频后重新调用上述方法,返回的就是最新播放内容的对应数据,完全适配YouTube单页应用的路由跳转逻辑。
注意事项
- 上述两种方法均无需依赖已经下线的
window.getPageData(),也不需要读取仅初始化时赋值的ytInitialData,适配所有动态切换播放的场景 - 如果运行代码无返回,可刷新页面等播放器完全加载后再重试,部分广告拦截插件会拦截播放器对象的注入,临时禁用插件后即可正常获取数据
内容的提问来源于stack exchange,提问作者Ethan O'Brien
相关产品推荐
相关产品推荐

