gpt4 book ai didi

javascript - 获取 Openload VTT 字幕链接

转载 作者:搜寻专家 更新时间:2023-11-01 05:19:27 26 4
gpt4 key购买 nike

我想使用 Greasemonkey 为 Openload VTT 字幕添加字幕下载按钮。但是,我不知道如何访问 标签。

以这个 French video clip 为例有英文字幕。当我在 Firefox 中查看源代码时,我发现了这一点:

<video id="olvideo" width="100%" height="100%" crossorigin="anonymous" controls>
<track kind="captions" src="https://thumb.oloadcdn.net/subtitle/rjC09fkPLYs/vt8zTaIaVqQ.vtt" srclang="en" label="English" default />
</video>

为什么我的概念验证 Greasemonkey 代码不起作用?

// ==UserScript==
// @name Openload
// @include *openload.co*
// @run-at document-idle
// ==/UserScript==

var video = document.querySelector("video");

if (video) {
var track = video.querySelector("track");
if (track) {
alert ("<track> FOUND.");
} else {
alert ("<track> NOT found!");
}

} else {
alert ("<video> tag not found");
}

(当我运行脚本时,我收到消息“ NOT found!”。)

最佳答案

link you gave 从来没有<track>节点,至少对我来说(未登录,而不是视频的创建者)。

不过,这可能是一个标准的 AJAX 问题。也就是说,如果节点是通过 javascript (AJAX) 添加的,Tampermonkey 脚本将在加载目标节点之前完成。

为此使用标准的 ajax 感知技术。一种方式:

// ==UserScript==
// @name Openload.co, Report on track nodes
// @match *://openload.co/embed/*
// @match *://interactive-examples.mdn.mozilla.net/pages/tabbed/track.html
// @require https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js
// @require https://gist.github.com/raw/2625891/waitForKeyElements.js
// @grant GM_addStyle
// @grant GM.getValue
// ==/UserScript==
//- The @grant directives are needed to restore the proper sandbox.

waitForKeyElements ("track", reportTrackNode);

//-- For Mozilla page, which uses shadow DOM:
waitForKeyElements ("shadow-output", reportTrackNodeWithinShadowDOM);

function reportTrackNode (jNode) {
console.log ("Found <track>:", jNode[0]);
}

function reportTrackNodeWithinShadowDOM (jNode) {
var sr = jNode[0].shadowRoot;
var trck = $(sr.childNodes).find ("track");
if (trck.length === 0) return true; // Keep waiting.

console.log ("Found <track>:", trck[0]);
}

请注意,以上代码适用于 Tampermonkey、Violentmonkey 和 Greasemonkey 的早期版本。它应该在 Greasemonkey 4+ 中工作,但那个引擎很坏,所以不能保证。

通过安装脚本并访问 this MDN video demo page,您可以看到代码在轨道存在时确实找到了轨道(即使在影子 DOM 中) .

关于javascript - 获取 Openload VTT 字幕链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53066525/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com