// ==UserScript==
// @name YouTubeAdSolutions
// @name:ar YouTubeAdSolutions
// @name:be YouTubeAdSolutions
// @name:bg YouTubeAdSolutions
// @name:ckb YouTubeAdSolutions
// @name:cs YouTubeAdSolutions
// @name:da YouTubeAdSolutions
// @name:de YouTubeAdSolutions
// @name:el YouTubeAdSolutions
// @name:en YouTubeAdSolutions
// @name:eo YouTubeAdSolutions
// @name:es YouTubeAdSolutions
// @name:es-419 YouTubeAdSolutions
// @name:fi YouTubeAdSolutions
// @name:fr YouTubeAdSolutions
// @name:fr-CA YouTubeAdSolutions
// @name:he YouTubeAdSolutions
// @name:hr YouTubeAdSolutions
// @name:hu YouTubeAdSolutions
// @name:id YouTubeAdSolutions
// @name:it YouTubeAdSolutions
// @name:ja YouTubeAdSolutions
// @name:ka YouTubeAdSolutions
// @name:ko YouTubeAdSolutions
// @name:mr YouTubeAdSolutions
// @name:nb YouTubeAdSolutions
// @name:nl YouTubeAdSolutions
// @name:pl YouTubeAdSolutions
// @name:pt-BR YouTubeAdSolutions
// @name:ro YouTubeAdSolutions
// @name:ru YouTubeAdSolutions
// @name:sk YouTubeAdSolutions
// @name:sr YouTubeAdSolutions
// @name:sv YouTubeAdSolutions
// @name:th YouTubeAdSolutions
// @name:tr YouTubeAdSolutions
// @name:uk YouTubeAdSolutions
// @name:ug YouTubeAdSolutions
// @name:vi YouTubeAdSolutions
// @name:zh-CN YouTubeAdSolutions
// @name:zh-TW YouTubeAdSolutions
// @description Premium-Logo, Downloader, Audio-Features, Skip-Highlight, Picture-in-Picture, Miniplayer, Speed-Control & Shorts Volume Slider.
// @description:ar شعار بريميوم، أداة تنزيل، ميزات الصوت، تخطي التمييز، صورة داخل صورة، مشغل مصغر، التحكم بالسرعة ومنزلق صوت Shorts.
// @description:be Прэміум-лагатып, загрузнік, аўдыя-функцыі, прапуск падсветкі, малюнак у малюнку, міні-плэер, кантроль хуткасці і рэгулятар гучнасці Shorts.
// @description:bg Premium лого, изтегляне, аудио функции, пропускане на акценти, картина в картината, мини плейър, контрол на скоростта и плъзгач за силата на Shorts.
// @description:ckb لۆگۆی پرێمیوم، داگرتن، تایبەتمەندیی دەنگ، تێپەڕاندنی دیاریکردن، وێنە لە ناو وێنەدا، مینی پلەیەر، کۆنترۆڵی خێرایی و سلایدەری دەنگی Shorts.
// @description:cs Prémiové logo, stahování, zvukové funkce, přeskočení zvýraznění, obraz v obraze, minipřehrávač, ovládání rychlosti a posuvník hlasitosti Shorts.
// @description:da Premium-logo, downloader, lydfunktioner, spring markeringer over, billede-i-billede, miniafspiller, hastighedskontrol og lydstyrkeskyder til Shorts.
// @description:de Premium-Logo, Downloader, Audio-Funktionen, Skip-Highlight, Picture-in-Picture, Miniplayer, Geschwindigkeitskontrolle & Lautstärkeregler für Shorts.
// @description:el Λογότυπο Premium, λήψη, λειτουργίες ήχου, παράλειψη επισήμανσης, εικόνα σε εικόνα, mini player, έλεγχος ταχύτητας και ρυθμιστικό έντασης Shorts.
// @description:en Premium logo, downloader, audio features, skip highlight, picture-in-picture, miniplayer, speed control & Shorts volume slider.
// @description:eo Premium-emblemo, elŝutilo, sonaj funkcioj, preterpasi emfazon, bildo-en-bildo, mini-ludilo, rapideca kontrolo kaj glitilo de Shorts-laŭteco.
// @description:es Logotipo Premium, descargador, funciones de audio, omitir resaltado, imagen en imagen, minirreproductor, control de velocidad y control de volumen de Shorts.
// @description:es-419 Logotipo Premium, descargador, funciones de audio, omitir resaltados, imagen en imagen, minirreproductor, control de velocidad y control de volumen de Shorts.
// @description:fi Premium-logo, latausohjelma, ääniominaisuudet, korostusten ohitus, kuva kuvassa, minisoitin, nopeudensäätö ja Shorts-äänenvoimakkuussäädin.
// @description:fr Logo Premium, téléchargeur, fonctions audio, saut de surbrillance, image dans l’image, mini-lecteur, contrôle de vitesse et curseur de volume Shorts.
// @description:fr-CA Logo Premium, téléchargeur, fonctions audio, saut de surbrillance, image dans l’image, mini-lecteur, contrôle de vitesse et curseur de volume Shorts.
// @description:he לוגו פרימיום, הורדה, תכונות שמע, דילוג על הדגשות, תמונה בתוך תמונה, נגן מוקטן, שליטת מהירות ומחוון עוצמת קול ל-Shorts.
// @description:hr Premium logo, preuzimanje, audio funkcije, preskakanje isticanja, slika u slici, mini player, kontrola brzine i klizač glasnoće za Shorts.
// @description:hu Prémium logó, letöltő, hangfunkciók, kiemelések kihagyása, kép a képben, mini lejátszó, sebességszabályzás és Shorts hangerőcsúszka.
// @description:id Logo Premium, pengunduh, fitur audio, lewati sorotan, gambar dalam gambar, pemutar mini, kontrol kecepatan dan penggeser volume Shorts.
// @description:it Logo Premium, downloader, funzioni audio, salta evidenziazioni, picture-in-picture, mini player, controllo velocità e cursore volume Shorts.
// @description:ja プレミアムロゴ、ダウンローダー、音声機能、ハイライトのスキップ、ピクチャーインピクチャー、ミニプレーヤー、速度調整とShorts音量スライダー。
// @description:ka პრემიუმ ლოგო, ჩამოტვირთვა, აუდიო ფუნქციები, გამოკვეთების გამოტოვება, სურათი სურათში, მინი დამკვრელი, სიჩქარის კონტროლი და Shorts ხმის რეგულატორი.
// @description:ko 프리미엄 로고, 다운로드, 오디오 기능, 하이라이트 건너뛰기, 화면 속 화면, 미니 플레이어, 속도 조절 및 Shorts 볼륨 슬라이더.
// @description:mr प्रीमियम लोगो, डाउनलोडर, ऑडिओ वैशिष्ट्ये, हायलाइट वगळा, पिक्चर-इन-पिक्चर, मिनी प्लेअर, गती नियंत्रण आणि Shorts व्हॉल्यूम स्लायडर.
// @description:nb Premium-logo, nedlasting, lydfunksjoner, hopp over høydepunkter, bilde-i-bilde, minispiller, hastighetskontroll og volumskyveknapp for Shorts.
// @description:nl Premium-logo, downloader, audiofuncties, markeringen overslaan, picture-in-picture, minispeler, snelheidsregeling en volumeschuif voor Shorts.
// @description:pl Logo Premium, pobieranie, funkcje audio, pomijanie wyróżnień, obraz w obrazie, mini odtwarzacz, kontrola prędkości i suwak głośności Shorts.
// @description:pt-BR Logotipo Premium, downloader, recursos de áudio, pular destaques, picture-in-picture, mini player, controle de velocidade e controle de volume do Shorts.
// @description:ro Logo Premium, descărcare, funcții audio, sărire evidențieri, imagine în imagine, mini player, control viteză și glisor volum Shorts.
// @description:ru Премиум-логотип, загрузчик, аудиофункции, пропуск выделений, картинка в картинке, мини-плеер, контроль скорости и регулятор громкости Shorts.
// @description:sk Prémiové logo, sťahovanie, zvukové funkcie, preskočenie zvýraznení, obraz v obraze, mini prehrávač, ovládanie rýchlosti a posuvník hlasitosti Shorts.
// @description:sr Premium logo, preuzimanje, audio funkcije, preskakanje isticanja, slika u slici, mini plejer, kontrola brzine i klizač jačine zvuka za Shorts.
// @description:sv Premium-logotyp, nedladdning, ljudfunktioner, hoppa över markeringar, bild-i-bild, minispelare, hastighetskontroll och volymreglage för Shorts.
// @description:th โลโก้พรีเมียม, ดาวน์โหลด, ฟีเจอร์เสียง, ข้ามไฮไลต์, ภาพซ้อนภาพ, มินิเพลเยอร์, ควบคุมความเร็ว และตัวปรับเสียง Shorts
// @description:tr Premium logo, indirici, ses özellikleri, vurguları atla, resim içinde resim, mini oynatıcı, hız kontrolü ve Shorts ses kaydırıcısı.
// @description:uk Преміум-логотип, завантажувач, аудіофункції, пропуск виділень, зображення в зображенні, мініплеєр, контроль швидкості та регулятор гучності Shorts.
// @description:ug Premium لوگو، چۈشۈرگۈچ، ئاۋاز ئىقتىدارلىرى، يورۇتۇشنى ئۆتكۈزۈش، رەسىم ئىچىدە رەسىم، كىچىك قويغۇچ، سۈرئەت كونترول ۋە Shorts ئاۋاز سىيرىغۇچى.
// @description:vi Logo Premium, trình tải xuống, tính năng âm thanh, bỏ qua nổi bật, hình trong hình, trình phát mini, điều khiển tốc độ và thanh âm lượng Shorts.
// @description:zh-CN 高级徽标、下载器、音频功能、跳过高亮、画中画、迷你播放器、速度控制和 Shorts 音量滑块。
// @description:zh-TW 高級標誌、下載器、音訊功能、跳過重點、子母畫面、迷你播放器、速度控制與 Shorts 音量滑桿。
// @namespace http://tampermonkey.net/
// @version 2.0
// @author Pascal
// @match https://www.youtube.com/*
// @grant none
// @icon https://www.youtube.com/s/desktop/ee47b5e0/img/logos/favicon_144x144.png
// @run-at document-start
// @license MIT
// @downloadURL none
// ==/UserScript==
(function() {
'use strict';
let audioCtx, source, gainNode, bassFilter;
let isAudioInited = false;
let isAdActive = false;
const tripleControlClass = 'custom-audio-control';
// --- 0. ANTI-BLOCK-ENFORCEMENT ---
function removeEnforcementMessage() {
const enforcement = document.querySelector('ytd-enforcement-message-view-model');
if (enforcement) {
enforcement.remove();
const video = document.querySelector('video');
if (video && video.paused) video.play();
console.log("YouTube Sperr-Dialog entfernt.");
}
const overlay = document.querySelector('tp-yt-iron-overlay-backdrop');
if (overlay) { overlay.remove(); }
}
// --- 1. TRUSTED TYPES BYPASS ---
if (window.trustedTypes && trustedTypes.createPolicy) {
if (!trustedTypes.defaultPolicy) {
try {
const passThroughFn = (x) => x;
trustedTypes.createPolicy('default', {
createHTML: passThroughFn, createScriptURL: passThroughFn, createScript: passThroughFn,
});
} catch (e) {}
}
}
// --- 2. CSS ANPASSUNGEN (Global & Shorts) ---
const style = document.createElement('style');
style.innerHTML = `
ytd-masthead, #masthead-container { z-index: 50000 !important; }
#search-form, yt-searchbox { z-index: 60000 !important; position: relative !important; }
.ytp-pip-btn svg, #custom-miniplayer-button svg { fill: white !important; }
/* SHORTS SLIDER STYLING */
.custom-shorts-slider {
position: fixed;
right: 60px;
bottom: 50%;
transform: rotate(-90deg) translateX(50%);
transform-origin: right center;
width: 600px; /* EXTRA LANG */
height: 8px;
accent-color: #ff0000;
z-index: 999999;
cursor: pointer;
opacity: 0;
transition: opacity 0.3s, visibility 0.3s;
visibility: hidden;
filter: drop-shadow(0px 0px 4px rgba(0,0,0,0.6));
}
body[is-shorts] .custom-shorts-slider {
opacity: 0.5;
visibility: visible;
}
body[is-shorts] .custom-shorts-slider:hover {
opacity: 1;
}
`;
document.head.appendChild(style);
// --- 3. AUDIO LOGIK ---
function initAudio() {
const video = document.querySelector('video');
if (!video || isAudioInited) return;
try {
audioCtx = new (window.AudioContext || window.webkitAudioContext)();
source = audioCtx.createMediaElementSource(video);
gainNode = audioCtx.createGain();
bassFilter = audioCtx.createBiquadFilter();
bassFilter.type = "lowshelf";
bassFilter.frequency.value = 150;
source.connect(bassFilter);
bassFilter.connect(gainNode);
gainNode.connect(audioCtx.destination);
isAudioInited = true;
} catch (e) { console.warn("Audio Fehler:", e); }
}
function createControlPair(color, title) {
const $container = document.createElement('span');
$container.className = tripleControlClass;
$container.style.cssText = 'display: inline-flex; align-items: center; height: 100%; vertical-align: middle; margin-right: 8px;';
const $btn = document.createElement('button');
$btn.className = 'ytp-button';
$btn.title = title;
$btn.innerHTML = ``;
$btn.style.cssText = 'display: inline-flex; align-items: center; justify-content: center; min-width: 36px; height: 100%; cursor: pointer; background: none; border: none;';
const $slider = document.createElement('input');
$slider.type = 'range';
$slider.style.cssText = `display: none; width: 8vw; accent-color: ${color}; margin: 0 5px; cursor: pointer;`;
const $label = document.createElement('span');
$label.style.cssText = `display: none; color: ${color}; font-size: 11px; font-weight: bold; min-width: 30px; font-family: Roboto;`;
$btn.onclick = (e) => {
e.preventDefault();
const show = ($slider.style.display === 'none');
$slider.style.display = $label.style.display = show ? 'inline-block' : 'none';
};
$container.append($btn, $slider, $label);
return { $container, $slider, $label };
}
// --- 4. PiP LOGIK ---
async function togglePiP() {
const video = document.querySelector('video');
if (!video) return;
try {
if (document.pictureInPictureElement) { await document.exitPictureInPicture(); }
else { await video.requestPictureInPicture(); }
} catch (err) {}
}
// --- 5. PREMIUM LOGO ---
function applyPremiumLogo() {
const logoSelectors = ["ytd-logo #logo-icon", "ytd-topbar-logo-renderer #logo", "a#logo svg"];
logoSelectors.forEach(selector => {
const container = document.querySelector(selector);
if (container) {
const svg = container.tagName === 'svg' ? container : container.querySelector("svg");
if (svg && !svg.getAttribute('data-is-premium')) {
svg.setAttribute('width', '101');
svg.setAttribute('viewBox', '0 0 101 20');
svg.setAttribute('data-is-premium', 'true');
svg.innerHTML = '