Question: when activating youtube subtitles, if you try to select a word in the caption of subtitles witch identified in the DOM by `id="caption-window-1"` , the first thing noticed is that : it is not selectable, so to make it selectable, i run this script in the js console using the developer tool on chrome browser: 

```
(function() {
var caption= document.getElementById("caption-window-1");
caption.style.cursor="text";
caption.style["-webkit-user-select"]="all";
            })();

```

its turn perfectly, but the caption still moving when click on it (you can try it by your self on [YouTube](https://www.youtube.com))

so i can't select easily a word in the caption, it still moving whatever i do.

I want to disable the caption movement on onclick event any idea to fix that using javascript ?

Answer: 
Run this script in the console:

```
setInterval(make_subtitles_selectable, 250);
function make_subtitles_selectable(){
    elem=document.querySelector("span.ytp-caption-segment:not([selectable='true']");
    if(elem!=null){
        elem.style.userSelect="text";
        elem.style.cursor="text";
        elem.setAttribute("selectable", "true");
    }
    elem=document.querySelector("#caption-window-1:not([selectable='true']");
    if(elem!=null){
        elem.addEventListener("mousedown", function (event) {
            event.stopPropagation();
        }, true);
        elem.setAttribute("selectable", "true");
    }
}

```
The problem is that the textfield is draggable to allow the user position the field anywhere on the screen so it conflicts with what you're trying to do. You could instead just record and push the text to an array and parse it after the video is done.

The snippet is not very elegant but should get you started:

```
var wordsAll = [];
var wordsPrev = [];
var previousLine = '';
function checkText() {
  var caption= document.getElementById("caption-window-1");
  requestAnimationFrame(checkText);
  if ( caption === null ) return;
  var wordsNow = caption.textContent.split(' ');
  if ( wordsPrev.length > 0 && wordsPrev.length < wordsNow.length ) {
    for ( var i=0,l= wordsNow.length; i<l; i++ ) {
      wordsAll.push(wordsPrev[i]);
    }
  }
  wordsPrev = wordsNow.slice(l);
}
checkText(); 

```

Then just do something like `console.log(wordsAll.join(' '))`

Hope that helps!