// ==UserScript== // @name Youtube Cobalt Quick Download // @namespace https://cobalt.meowing.de/ // @version 2.0.0 // @description Open cobalt.meowing.de with the URL already set // @author Black0S // @match https://www.youtube.com/watch* // @noframes // @run-at document-idle // @grant none // ==/UserScript== (function () { 'use strict'; // ═══════════════════════════════════════════════════════════════════════════ // 0. SENTINEL // ═══════════════════════════════════════════════════════════════════════════ const SENTINEL = '__cbd_injected__'; if (window[SENTINEL]) return; window[SENTINEL] = true; // ═══════════════════════════════════════════════════════════════════════════ // 1. CONSTANTS // ═══════════════════════════════════════════════════════════════════════════ const COBALT_URL = 'https://cobalt.meowing.de/'; const BTN_ID = 'cbd-yt-btn'; const POLL_MS = 700; const NAV_DELAY_MS = 1600; const URL_CHECK_MS = 600; const MAX_POLLS = 150; // ═══════════════════════════════════════════════════════════════════════════ // 2. CSS // Une