YouTube power-user: hide Shorts, auto-skip intro, własne shortcuts — 6 reguł JustZix
YouTube w 2026 to 60% UI clutter, 40% video player. Shorts spam'ują feed, "Up next" auto-play z 5s zostawia ci anxiety, sponsorzy w intro 30 sekund. Wszystko fixable w 6 regułach JustZix. Domain match: *://youtube.com/* + *://www.youtube.com/*.
Reguła 1 — CSS: Hide Shorts wszędzie
/* Shorts shelf w feed'zie i w sidebarze */
ytd-rich-shelf-renderer[is-shorts],
ytd-reel-shelf-renderer,
a[title="Shorts"], a[href="/shorts"],
ytd-guide-entry-renderer:has(a[title="Shorts"]),
ytd-mini-guide-entry-renderer[aria-label="Shorts"] {
display: none !important;
}
/* Shorts video w search results */
ytd-video-renderer:has(a[href*="/shorts/"]) {
display: none !important;
}
Reguła 2 — CSS: Hide "Up next" + Suggested
/* Suggested videos sidebar (prawy bok) */
ytd-watch-next-secondary-results-renderer { display: none !important; }
/* Plus: powiększ player video do max-width */
ytd-watch-flexy[is-two-columns_] #primary {
max-width: 100% !important;
}
ytd-watch-flexy #primary-inner #player {
max-width: 1600px !important;
margin: 0 auto !important;
}
Reguła 3 — JS: Auto-skip ads
// JS rule. MutationObserver bo player się rebuild'uje przy każdym video.
const skipAds = () => {
// Standard skip button po 5s
const skip = document.querySelector('.ytp-ad-skip-button, .ytp-skip-ad-button');
if (skip) skip.click();
// "Sponsored video" overlay
const close = document.querySelector('.ytp-ad-overlay-close-button');
if (close) close.click();
// Mute video player podczas ads (visual ads still play, ale cięższe)
const v = document.querySelector('video');
const adShowing = document.querySelector('.ad-showing');
if (v && adShowing && !v.muted) { v.muted = true; v.dataset.jzReMute = '1'; }
if (v && !adShowing && v.dataset.jzReMute === '1') {
v.muted = false; delete v.dataset.jzReMute;
}
};
setInterval(skipAds, 500);
JUSTZIX.log('YouTube ad-skipper aktywny.');
Reguła 4 — JS: Keyboard shortcuts (J/L for ±10s, S for skip intro)
document.addEventListener('keydown', (e) => {
// Ignore podczas typing w textarea/input (komentarze)
if (['INPUT','TEXTAREA'].includes(e.target.tagName)) return;
if (e.target.isContentEditable) return;
const v = document.querySelector('video');
if (!v) return;
if (e.key === 'j' || e.key === 'J') { v.currentTime -= 10; e.preventDefault(); }
if (e.key === 'l' || e.key === 'L') { v.currentTime += 10; e.preventDefault(); }
// S = skip 30s (typowa długość sponsora w intro)
if (e.key === 's' && !e.shiftKey) {
v.currentTime += 30;
JUSTZIX.log(`Skip +30s @ ${Math.round(v.currentTime)}s`);
e.preventDefault();
}
});
Reguła 5 — JS: Disable autoplay next video
// Czeka aż player się załaduje
const dis = setInterval(() => {
const toggle = document.querySelector('[aria-label*="utoplay"]');
if (toggle && toggle.getAttribute('aria-checked') !== 'false') {
toggle.click();
JUSTZIX.log('Autoplay disabled.');
clearInterval(dis);
}
}, 1000);
Reguła 6 — BUTTON akcja: Screenshot z timestamp
Click → kopiuje URL z &t=Xs timestamp i timestamp jako tekst:
// Akcja BUTTON "📸 Share clip"
const v = document.querySelector('video');
if (!v) return;
const sec = Math.floor(v.currentTime);
const min = Math.floor(sec / 60);
const remSec = sec % 60;
const url = new URL(location.href);
url.searchParams.set('t', sec + 's');
const ts = `${min}:${String(remSec).padStart(2, '0')}`;
const result = `${url.toString()}\n(@ ${ts})`;
navigator.clipboard.writeText(result);
JUSTZIX.log(`Copied: ${url.toString()} (${ts})`);
Setup snap'nięty w prawym górnym
Pasek akcji z BUTTON "📸 Share" + TOGGLE3 "Quality" (Auto/720p/1080p) + SLIDER "Speed" (0.5x-2x). Snap'nięty w prawym górnym rogu. Output Console pokazuje JUSTZIX.log'i dla każdej akcji — bo nie trackuje YouTube'a, tylko swoje akcje.
Co dalej
- Skróty klawiszowe na każdej stronie — pattern dla shortcuts
- Customize AI chat apps — ten sam CSS+JS pattern
- Mini-IDE w karcie — pełna mapa
Zainstaluj JustZix i ciesz się YouTube'em bez clutter'a.
Oceń ten wpis
Brak ocen — oceń jako pierwszy.