Скрипт Tampermonkey для повтора видео Youtube

Обновление скрипта 11.05.2026. Хотя, он уже не актуален. В Youtube появилась кнопка меню повтора.

Иногда хочется повторить проигрывание видео Youtube несколько раз. Однако, кнопки такой у него нет. Этот простой скрипт реализует такой функционал.

// ==UserScript==
// @name         Repeat on Youtube
// @namespace    http://tampermonkey.net/
// @version      0.4
// @description  Repeat on Youtube
// @author       VVSite
// @match        https://www.youtube.com/*
// @icon         https://www.google.com/s2/favicons?domain=youtube.com
// @grant        none
// ==/UserScript==

(function() {
    'use strict';
    top.rep = false;

    var b_style = 'font-size: 15px; display: inline-block; position: relative; top: 0px; left: 0px; cursor: pointer; font-weight: bold; padding: 0 5px;border: 1px solid #cacaca; border-radius: 50%; padding-bottom: 3px; z-index: 29999;';
    let b_span = document.createElement('span');
    b_span.id = "vvs-rep";
    b_span.style.cssText = b_style;
    b_span.textContent = '↻';

    let sp = null;

    let video_player = document.querySelectorAll('#movie_player')[0];

    if (video_player)
    {
        let t_obr = setInterval( function(){

            let url = location.href;
            if (/watch\?v\=/.test(url))
            {
                //let zag = document.querySelectorAll('.ytd-video-primary-info-renderer')[0];
                var zag = document.querySelectorAll('h1.style-scope.ytd-watch-metadata')[0];

                zag.after(b_span);

                sp = b_span;
                if(sp)
                {
                    sp.onmouseover = function(e)
                    {
                        this.setAttribute('style', 'background: orange; color: #fff; ' + b_style);
                    }
                    sp.onmouseout = function(e)
                    {
                        this.setAttribute('style', 'background: transparent; color: #fff; ' + b_style);
                    }
                    sp.onclick = function(e)
                    {
                        if (!top.rep)
                        {
                            b_style += 'color: red; background: #eaeaea;';
                            this.setAttribute('style', b_style);
                            top.rep = true;
                        }
                        else
                        {
                            b_style = b_style.substr(0, b_style.length - 32);
                            this.setAttribute('style', b_style);
                            top.rep = false;
                        }
                    }

                    if (video_player.getCurrentTime() == video_player.getDuration() && top.rep)
                    {
                        video_player.playVideo();
                    }
                }

            }

        }, 1500);
    }
    else
    {
        //clearInterval(t_obr);
    }
})();

 

Протестировано в Firefox 96.0.2. Для использования скрипта:

1. Установите плагин Tampermonkey для Firefox.

2. Скопируйте содержимое кода скрипта вверху.

3. Щелкните на кнопке плагина, чтобы вызвать меню и выберите «Создать новый скрипт».

4. Удалите весь текст, который Tampermonkey автоматически добавляет в новый скрипт и вставьте из буфера скопированный в п.2 код.

5. Сохраните скрипт по «Файл — Сохранить».

6. Откройте любой ролик Youtube, вы должны увидеть появившуюся кнопку повтора слева от заголовка видео. Если ее нажать, она станет красной и после окончания воспроизведения ролик автоматически запустится вновь.

7. Повторное нажатие прекратит автоматическое воспроизведение.