javascript - HTML 5(轨道元素)- Youtube 上未显示字幕

标签 javascript google-chrome-extension youtube webvtt

我正在用 ReactJS 编写一个 chrome 扩展,允许用户在 Youtube 上插入字幕。
我一直在尝试使用 track 元素在 Youtube 上插入字幕,但它不起作用。

Youtube 有以下元素:

<video tabindex="-1" class="video-stream html5-main-video" 
controlslist="nodownload" style="width: 760px; height: 428px; left: 
0px; top: 0px;" src="blob:https://www.youtube.com/eb4c349e-ac8a-465d- 
b6b1-53acfcb66aa8"> 
</video>

我设法用这个函数注入(inject)了一个 track 元素:
insertSubtitle() {
  var track = document.createElement("track");
  track.kind = "subtitles";
  track.label =  "YTSUBS";
  track.srclang =  "en";
  track.mode = "showing";
  track.src = "subs.vtt"

   var videoContainer = document.querySelector("video.video-stream.html5-main-video");
   if(videoContainer){
     videoContainer.prepend(track);
     console.log("loaded subs");
   } else {
     console.log("video container not found");
   }
 }
subs.vtt文件位于与上面代码的 javascript 文件相同的文件夹中。当代码在 Youtube 上加载时,我收到“加载的字幕”消息,但字幕不会出现。

我尝试将 track.src URL 更改为 gist ,尝试启动本地服务器
python -m SimpleHTTPServer

如图here ,并建议 here这样我就可以将 track.src URL 更改为 http://localhost:8000/subtitle.vtt .两种解决方案均无效。

有谁知道为什么它不起作用?

最佳答案

为了在 Youtube 上插入字幕,我关注了 this邮政。
我没有使用脚本标签,而是使用文本区域来获取用户的输入。

关于javascript - HTML 5(轨道元素)- Youtube 上未显示字幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51732786/

相关文章:

ios - 如何在播放 youtube 视频时访问 ios 媒体播放器实例

php - 用户喜欢/收藏的 Youtube API 调用

python - YouTube API nextPageToken返回不可用的结果

javascript - Node.JS : forEach vs for loop Asynchronous nature

javascript - 如何在 javascript 中捕获 "History.Back"事件?

javascript - 通用分析 : Multiple inline OnClick events triggered by single click

javascript - 如何在不重定向的情况下提交 HTML 表单?

jquery - Chrome 扩展 - 查找所有打开的选项卡并在所有选项卡上执行脚本

google-chrome-extension - 迁移 Chrome 扩展 v3 通知

javascript - 如何使用 Javascript 编辑网页的伪类?