// ==UserScript==
// @name Youtube looper
// @namespace http://ayra.ch/
// @version 0.1
// @description Loops youtube videos
// @author You
// @match https://www.youtube.com/watch*
// @match http://www.youtube.com/watch*
// @grant none
// ==/UserScript==
/* jshint -W097 */
"use strict";
(function($){
var addBtn=function()
{
var buttons=$(".watch-secondary-actions");
if($(".looper-btn") || !buttons)
{
return;
}
var isLoop=false;
var isColor=false;
var looper=document.createElement("button");
var blinker=function()
{
if(isLoop || isColor)
{
looper.style.backgroundColor=isColor?"transparent":"#e62117";
isColor=!isColor;
}
};
var flasher=window.setInterval(blinker,500);
looper.innerHTML="<span class=\"yt-uix-button-content\">↺ Repeat</span>";
looper.onclick=function()
{
isLoop=!isLoop;
$("video").loop=isLoop;
};
looper.style.borderRadius="5px";
looper.setAttribute("class","looper-btn yt-uix-button yt-uix-button-size-default yt-uix-button-opacity yt-uix-tooltip");
looper.setAttribute("data-tooltip-text","enable or disable video looping");
looper.setAttribute("role","button");
buttons.appendChild(looper);
};
var mo=new MutationObserver(function(evt)
{
addBtn();
});
mo.observe($("body"),{childList:true});
addBtn();
})(document.querySelector.bind(document));
Comments
0 B
|👍
/👎