我一直不知道如何在Chrome中运行的Netflix视频播放器中进行视频搜索(自动前进到视频中的某一点)。currentTime
属性可以读取,但不能在Netflix播放器中设置,当设置时,会立即触发错误“哇!出了问题。”其他动作,如播放和暂停,工作得很好。例如,您可以尝试执行以下操作:
<ENTER>
var video = document.evaluate('//*[@id="5670317"]/video',document).iterateNext()
注意: id值特定于世界末日。如果您选择了另一部电影,可以根据该电影的URL中的id更改id。
<Enter>
:video.play()
。观察视频恢复播放。很简单,但是如何让视频自动前进到视频中的特定点呢?您可能希望参考this doc。显然,您可以通过从左向右拖动视频播放器滑块并将其释放到某个位置来手动查找。您可能希望在执行此操作时发现调用了哪个方法或事件,并对其进行模拟。到目前为止,我还没有走运。
有什么想法吗?
发布于 2017-10-19 02:31:19
看起来netflix改变了播放器api。这是我发现的:
const videoPlayer = netflix
.appContext
.state
.playerApp
.getAPI()
.videoPlayer
// Getting player id
const playerSessionId = videoPlayer
.getAllPlayerSessionIds()[0]
const player = videoPlayer
.getVideoPlayerBySessionId(playerSessionId)
现在您可以使用全播放器API了。例如player.seek
、player.getCurrentTime
或player.pause
等。
发布于 2019-10-31 19:13:14
它只会在netflix的控制台日志中工作,如果你想让它在chrome扩展中工作,那么你需要在脚本标签中注入这段代码才能让它工作。
const videoPlayer = netflix.appContext.state.playerApp.getAPI().videoPlayer;
const player = videoPlayer.getVideoPlayerBySessionId(videoPlayer.getAllPlayerSessionIds()[0]);
player.seek(1091243) //seek to roughly 18mins
player.getCurrentTime() // will give you the current video time.
发布于 2017-12-13 13:49:39
基于Dmitry的响应,提前10秒
player.seek(player.getCurrentTime() - 10000)
https://stackoverflow.com/questions/42105028
复制相似问题