JSFiddle - React, Tailwind, and code Playground

HTML

<a href="#" class="videoJumper" data-start="5" data-end="180" data-video="video1"><b>0:05</b> Dutch things go down.</a>

<br>
<a href="#" class="videoJumper" data-start="90" data-end="500" data-video="video1"><b>1:30</b> More dutch things go down.</a>

<br>
<div class="videoFacade" data-name="video1" data-video="ByJFdTFEwF4" data-start="8">
    <img src="http://i.imgur.com/xeUiWGn.png" />
</div>

CSS

.videoFacade, .videoIframe {
    position: relative;
    width: 360px;
    height: 202.5px;
    margin:5px;
}
.videoFacade {
    cursor: pointer;
    border:1px solid black;
}
.videoFacade img {
    position: absolute;
    width: 50px;
    height: 50px;
    left: 50%;
    top: 50%;
    margin: -25px 0 0 -25px;
}

JavaScript

window.addEventListener("load", initVideoFacade);

        function initVideoFacade() {
            var allFacades = document.querySelectorAll(".videoFacade");
            for (var i = 0; i < allFacades.length; i++) {
                var facade = allFacades[i];
                setUpFacade(facade);
            }

            var allJumpers = document.querySelectorAll(".videoJumper");
            for (var i = 0; i < allJumpers.length; i++) {
                var jumper = allJumpers[i];
                setUpJumper(jumper);
            }
        }

        function setUpJumper(jumper) {
            jumper.addEventListener("click", function (e) {
                e.preventDefault();
                jumpTo(jumper);
                var video = jumper.dataset.video;
                var facade = getFacadeByVideo(video);
                if (facade) playVideo(facade);
                return false;
            });
        }

        function setUpFacade(facade) {
            facade.addEventListener("click", function () {
                playVideo(facade);
            });
        }

        function getFacadeByVideo(video) {
            return document.querySelector(".videoFacade[data-name=" + video + "]");
        }

        function getIframeByVideo(video) {
            return document.querySelector(".videoIframe[data-name=" + video + "]");
        }

        function updateVideoSource(iframe,start, end) {
            var iframeSrc = iframe.src.replace(/start=[0-9]+/i, "start=" + start);
            var hasEnd = iframeSrc.indexOf("end") != -1;
            if (hasEnd) iframeSrc = iframeSrc.replace(/end=[0-9]+/i, "end=" + end);
            else iframeSrc += "&end=" + end;
            return iframeSrc;
        }
        
        function updateFacadeData(facade,start,end){
            facade.setAttribute("data-start", start);
            facade.setAttribute("data-end", end);
        }

        function jumpTo(jumper) {
            var start = jumper.dataset.start;
           ...