YouTube 小助手

YouTube 1.视频循环播放 2.截图下载 3.主题进度条

目前为 2025-03-26 提交的版本。查看 最新版本

// ==UserScript==
// @name              YouTube Helper
// @name:ar           مساعد يوتيوب
// @name:bg           YouTube асистент
// @name:cs           Asistent YouTube
// @name:da           YouTube -assistent
// @name:de           YouTube -Assistent
// @name:el           Βοηθός του YouTube
// @name:en           YouTube Assistant
// @name:eo           YouTube -Asistanto
// @name:es           Asistente de YouTube
// @name:fi           YouTube -avustaja
// @name:fr           Assistant YouTube
// @name:fr-CA        Assistant YouTube
// @name:he           עוזר YouTube
// @name:hr           YouTube pomoćnik
// @name:hu           YouTube asszisztens
// @name:id           Asisten YouTube
// @name:it           Assistente YouTube
// @name:ja           YouTubeアシスタント
// @name:ka           YouTube ასისტენტი
// @name:ko           YouTube Assistant
// @name:nb           YouTube -assistent
// @name:nl           YouTube -assistent
// @name:pl           Asystent YouTube
// @name:pt-BR        Assistente do YouTube
// @name:ro           Asistent YouTube
// @name:ru           YouTube Assistant
// @name:sk           Asistent YouTube
// @name:sr           ИоуТубе асистент
// @name:sv           YouTube Assistant
// @name:th           ผู้ช่วย YouTube
// @name:tr           YouTube Assistant
// @name:ug           YouTube ياردەمچىسى
// @name:uk           Асистент YouTube
// @name:vi           Trợ lý YouTube
// @name:zh           YouTube 小助手
// @name:zh-CN        YouTube 小助手
// @name:zh-HK        YouTube 小助手
// @name:zh-SG        YouTube 小助手
// @name:zh-TW        YouTube 小助手
// @description       YouTube 1.Loop playback of YouTube videos 2.screenshot download 3.themed progress bar.
// @description:ar    YouTube 1. تشغيل حلقة الفيديو 2. تنزيل لقطة الشاشة 3.
// @description:bg    YouTube 1. Възпроизвеждане на видео контур 2. Изтегляне на екранна снимка 3. Бар за напредък на темата
// @description:cs    YouTube 1.. Přehrávání video smyčky 2.
// @description:da    YouTube 1. Video Loop Playback 2.. Skærmbillede Download 3. Tema -statuslinje
// @description:de    YouTube 1. Video Loop -Wiedergabe 2. Screenshot Download 3. Thema Fortschrittsleiste
// @description:el    YouTube 1. Αναπαραγωγή βρόχου βίντεο 2. ΠΕΡΙΕΧΟΜΕΝΟ ΣΤΟΙΧΕΙΑ 3.
// @description:en    YouTube 1. Video loop playback 2. Screenshot download 3. Theme progress bar
// @description:eo    YouTube 1. Video Loop Playback 2.
// @description:es    YouTube 1. Video Loop Playback 2. Descarga de captura de pantalla 3. Barra de progreso del tema
// @description:fi    YouTube 1.
// @description:fr    YouTube 1. Playback de boucle vidéo 2. Capture d’écran Télécharger 3. Bar de progression du thème
// @description:fr-CA YouTube 1. Playback de boucle vidéo 2. Capture d’écran Télécharger 3. Bar de progression du thème
// @description:he    YouTube 1. השמעת לולאת וידאו 2. הורדת צילום מסך 3. סרגל התקדמות נושא
// @description:hr    YouTube 1. Video petlja reprodukcija 2. Snimka zaslona Preuzmite 3.
// @description:hu    YouTube 1. Video hurok lejátszása 2. képernyőkép letöltése 3. Téma előrehaladási sáv
// @description:id    YouTube 1. Video Loop Playback 2. Screenshot Unduh 3. Tema Kemajuan Bilah
// @description:it    YouTube 1. Riproduzione del loop video 2. Screenshot Download 3. Barra di avanzamento del tema
// @description:ja    YouTube1。ビデオループ再生2。スクリーンショットダウンロード3。テーマの進行状況バー
// @description:ka    YouTube 1. ვიდეო მარყუჟის დაკვრა 2. სკრინშოტის ჩამოტვირთვა 3. თემის პროგრესის ბარი
// @description:ko    YouTube 1. 비디오 루프 재생 2. 스크린 샷 다운로드 3. 테마 진행률 바
// @description:nb    YouTube 1. Video Loop Playback 2. Skjermbilde nedlasting 3. Tema Progress Bar
// @description:nl    YouTube 1. Video Loop Playback 2. Screenshot Download 3. Theme voortgangsbalk
// @description:pl    YouTube 1. Pętla wideo odtwarzanie 2. Pobierz zrzut ekranu 3.
// @description:pt-BR YouTube 1. Playback de loop de vídeo.
// @description:ro    YouTube 1. Redarea buclelor video 2. Descărcare de ecran 3. Tema Progress Bar
// @description:ru    YouTube 1. Playback Video Playback 2. Скачать экрана 3.
// @description:sk    YouTube 1. Prehrávanie video slučky 2. Screenshot Stiahnutie 3.
// @description:sr    ИоуТубе 1. Репродукција видео петље 2. Сцреенсхот Довнлоад 3. Тхеме Топресс Бар
// @description:sv    YouTube 1. Video Loop Playback 2. Skärmdump nedladdning 3. Theme Progress Bar
// @description:th    YouTube 1. การเล่นวิดีโอลูป 2. การดาวน์โหลดภาพหน้าจอ 3. ธีมความคืบหน้าแถบ
// @description:tr    YouTube 1. Video Döngüsü Oynatma 2. Ekran Görüntüsü İndir 3. Tema İlerleme Çubuğu
// @description:ug    YouTube 1. سىن ئايلانما قويۇش 2. ئېكران رەسىمى 3 نى چۈشۈرۈڭ. باشتېمىنى ئىلگىرى سۈرۈش بالدىقى
// @description:uk    YouTube 1. Відеокласник відеокліту
// @description:vi    YouTube 1. Video Loop Playback 2. Ảnh chụp màn hình tải xuống 3. Thanh tiến trình chủ đề
// @description:zh    YouTube 1.视频循环播放 2.截图下载 3.主题进度条
// @description:zh-CN YouTube 1.视频循环播放 2.截图下载 3.主题进度条
// @description:zh-HK YouTube 1.視頻循環播放 2.截圖下載 3.主題進度條
// @description:zh-SG YouTube 1.视频循环播放 2.截图下载 3.主题进度条
// @description:zh-TW YouTube 1.視頻循環播放 2.截圖下載 3.主題進度條
// @author            Carokahn,bernzrdo,FunnyMonkey,人民的勤务员 <[email protected]>
// @namespace         https://github.com/ChinaGodMan/UserScripts
// @supportURL        https://github.com/ChinaGodMan/UserScripts/issues
// @homepageURL       https://github.com/ChinaGodMan/UserScripts
// @license           MIT
// @icon              https://www.youtube.com/s/desktop/ee47b5e0/img/logos/favicon_144x144.png
// @match             https://www.youtube.com/*
// @match             https://m.youtube.com/*
// @compatible        chrome
// @compatible        firefox
// @compatible        edge
// @compatible        opera
// @compatible        safari
// @compatible        kiwi
// @compatible        qq
// @compatible        via
// @compatible        brave
// @version           2025.03.15.0436
// @grant             GM_addStyle
// @created           2025-03-14 20:36:01
// @modified          2025-03-14 20:36:01
// ==/UserScript==
/**
 * File: youtube-helper.user.js
 * Project: UserScripts
 * File Created: 2025/03/15,Saturday 04:36:02
 * Author: 人民的勤务员@ChinaGodMan ([email protected])
 * -----
 * Last Modified: 2025/03/15,Saturday 05:57:23
 * Modified By: 人民的勤务员@ChinaGodMan ([email protected])
 * -----
 * License: MIT License
 * Copyright © 2024 - 2025 ChinaGodMan,Inc
 */
const directDownload = true
const infiniteLool = true





const loopVideo = () => {
    const video = document.querySelector('video')
    if (video && !video.loop) {
        video.loop = true
    }
}
const ThemeProgressbar = () => {
    const css_248z = '.html5-play-progress,.ytp-play-progress{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAMCAIAAAAs6UAAAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QUNCQzIyREQ0QjdEMTFFMzlEMDM4Qzc3MEY0NzdGMDgiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QUNCQzIyREU0QjdEMTFFMzlEMDM4Qzc3MEY0NzdGMDgiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpBQ0JDMjJEQjRCN0QxMUUzOUQwMzhDNzcwRjQ3N0YwOCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpBQ0JDMjJEQzRCN0QxMUUzOUQwMzhDNzcwRjQ3N0YwOCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PovDFgYAAAAmSURBVHjaYvjPwMAAxjMZmBhA9H8INv4P4TPM/A+m04zBNECAAQBCWQv9SUQpVgAAAABJRU5ErkJggg==") repeat-x!important;background:linear-gradient(180deg,red 0,red 16.5%,#f90 0,#f90 33%,#ff0 0,#ff0 50%,#3f0 0,#3f0 66%,#09f 0,#09f 83.5%,#63f 0,#63f)!important;background:-webkit-linear-gradient(top,red,red 16.5%,#f90 0,#f90 33%,#ff0 0,#ff0 50%,#3f0 0,#3f0 66%,#09f 0,#09f 83.5%,#63f 0,#63f)!important;background:-moz-linear-gradient(top,red 0,red 16.5%,#f90 16.5%,#f90 33%,#ff0 33%,#ff0 50%,#3f0 50%,#3f0 66%,#09f 66%,#09f 83.5%,#63f 83.5%,#63f 100%)!important}.html5-load-progress,.ytp-load-progress{background:url("data:image/gif;base64,R0lGODlhMAAMAIAAAAxBd////yH/C05FVFNDQVBFMi4wAwEAAAAh+QQECgAAACwAAAAAMAAMAAACJYSPqcvtD6MKstpLr24Z9A2GYvJ544mhXQmxoesElIyCcB3dRgEAIfkEBAoAAAAsAQACAC0ACgAAAiGEj6nLHG0enNQdWbPefOHYhSLydVhJoSYXPO04qrAmJwUAIfkEBAoAAAAsBQABACkACwAAAiGEj6nLwQ8jcC5ViW3evHt1GaE0flxpphn6BNTEqvI8dQUAIfkEBAoAAAAsAQABACoACwAAAiGEj6nLwQ+jcU5VidPNvPtvad0GfmSJeicUUECbxnK0RgUAIfkEBAoAAAAsAAAAACcADAAAAiCEj6mbwQ+ji5QGd6t+c/v2hZzYiVpXmuoKIikLm6hXAAAh+QQECgAAACwAAAAALQAMAAACI4SPqQvBD6NysloTXL480g4uX0iW1Wg21oem7ismLUy/LFwAACH5BAQKAAAALAkAAAAkAAwAAAIghI8Joe0Po0yBWTaz3g/z7UXhMX7kYmplmo0rC8cyUgAAIfkEBAoAAAAsBQAAACUACgAAAh2Ejwmh7Q+jbIFZNrPeEXPudU74IVa5kSiYqOtRAAAh+QQECgAAACwEAAAAIgAKAAACHISPELfpD6OcqTGKs4bWRp+B36YFi0mGaVmtWQEAIfkEBAoAAAAsAAAAACMACgAAAh2EjxC36Q+jnK8xirOW1kavgd+2BYtJhmnpiGtUAAAh+QQECgAAACwAAAAALgALAAACIYSPqcvtD+MKicqLn82c7e6BIhZQ5jem6oVKbfdqQLzKBQAh+QQECgAAACwCAAIALAAJAAACHQx+hsvtD2OStDplKc68r2CEm0eW5uSN6aqe1lgAADs=")!important}.html5-scrubber-button,.ytp-scrubber-button{background:url("data:image/gif;base64,R0lGODlhIgAVAKIHAL3/9/+Zmf8zmf/MmZmZmf+Z/wAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtYTVAgRGF0YVhNUDw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpDMkJBNjY5RTU1NEJFMzExOUM4QUM2MDAwNDQzRERBQyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCREIzOEIzMzRCN0IxMUUzODhEQjgwOTYzMTgyNTE0QiIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCREIzOEIzMjRCN0IxMUUzODhEQjgwOTYzMTgyNTE0QiIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkM1QkE2NjlFNTU0QkUzMTE5QzhBQzYwMDA0NDNEREFDIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkMyQkE2NjlFNTU0QkUzMTE5QzhBQzYwMDA0NDNEREFDIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8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")!important;border:none!important;height:21px!important;margin-left:-18px!important;margin-top:0!important;transform:scale(.8);-webkit-transform:scale(.8);-moz-transform:scale(.8);-ms-transform:scale(.8);width:34px!important}.ytp-progress-bar-container:hover .ytp-load-progress,.ytp-progress-bar-container:hover .ytp-scrubber-button{image-rendering:pixelated}.html5-progress-bar-container,.ytp-progress-bar-container{height:12px!important}.html5-progress-bar,.ytp-progress-bar{margin-top:12px!important}.html5-progress-list,.video-ads .html5-progress-list.html5-ad-progress-list,.video-ads .ytp-progress-list.ytp-ad-progress-list,.ytp-progress-list{height:12px!important}.ytp-volume-slider-track{background:#0c4177!important}'
    GM_addStyle(css_248z)
}

let escapeHTMLPolicy = 'trustedTypes' in window
    ? trustedTypes.createPolicy('forceInner', { createHTML: html => html })
    : { createHTML: html => html }
function screenBtnUpdate() {
    let $miniplayerBtn = document.querySelector('button.ytp-miniplayer-button')
    if ($miniplayerBtn && !document.getElementById('ytp-screenshot-button')) {
        const $btn = document.createElement('button')
        $btn.id = 'ytp-screenshot-button'
        $btn.classList.add('ytp-screenshot-button', 'ytp-button')
        $btn.dataset.priority = '5'
        $btn.dataset.tooltipTargetId = 'ytp-screenshot-button'
        $btn.dataset.titleNoTooltip = 'Screenshot'
        $btn.ariaLabel = 'Screenshot'
        $btn.title = 'Screenshot'
        $btn.innerHTML = escapeHTMLPolicy.createHTML(`<svg height="100%" version="1.1" viewBox="-300 -1260 1560 1560" width="100%">
            <use class="ytp-svg-shadow" xlink:href="#ytp-id-screenshot-svg"></use>
            <path
                d="M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120H200Zm0-80h560v-560H200v560Zm40-80h480L570-480 450-320l-90-120-120 160Zm-40 80v-560 560Z"
                fill="#fff" id="ytp-id-screenshot-svg"></path>
        </svg>`)
        $btn.addEventListener('click', screenshot)

        insertBefore($btn, $miniplayerBtn)
    }

    requestAnimationFrame(screenBtnUpdate)
}
function insertBefore($element, $sibling) {
    $sibling.parentElement.insertBefore($element, $sibling)
}
function screenshot() {

    const $video = document.querySelector('#player video')
    if (!$video) {
        console.error('No video found to screenshot!')
        return
    }

    let wasPlaying = !$video.paused
    if (wasPlaying) $video.pause()

    const $canvas = document.createElement('canvas')
    $canvas.width = $video.videoWidth
    $canvas.height = $video.videoHeight

    let oldCss = $video.style.cssText
    $video.style.width = $video.videoWidth + 'px'
    $video.style.height = $video.videoHeight + 'px'

    const ctx = $canvas.getContext('2d')
    ctx.drawImage($video, 0, 0, $video.videoWidth, $video.videoHeight)

    $canvas.toBlob(blob => {

        if (directDownload) {
            const a = document.createElement('a')
            a.href = URL.createObjectURL(blob)
            a.download = `${getFileName()}.png`
            a.click()
        } else {
            const item = new ClipboardItem({ 'image/png': blob })
            navigator.clipboard.write([item])
        }

        $video.style.cssText = oldCss
        $canvas.remove()
        if (wasPlaying) $video.play()

    })

}
function getFileName() {
    const safeFileName = document.title.replace(/[\\/:*?"<>|]/g, '').replace(' - YouTube', '')
    return safeFileName
}
if (infiniteLool) {
    const observer = new MutationObserver(loopVideo)
    observer.observe(document.body, { childList: true, subtree: true })
}

requestAnimationFrame(screenBtnUpdate)
ThemeProgressbar()

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址