// ==UserScript==
// @name YouTube™ Classic 📺 — (Remove rounded design + Return YouTube dislikes)
// @version 2024.11.21
// @author Adam Lui, Magma_Craft, Anarios, JRWR, Fuim & hoothin
// @namespace https://github.com/adamlui
// @description Reverts YouTube to its classic design (before all the rounded corners & hidden dislikes) + redirects YouTube Shorts
// @license MIT
// @icon https://media.ytclassic.com/images/icon48.png
// @icon64 https://media.ytclassic.com/images/icon64.png
// @compatible chrome
// @compatible firefox
// @compatible opera
// @compatible safari
// @compatible edge
// @match *://*.youtube.com/*
// @grant GM_registerMenuCommand
// @grant GM_unregisterMenuCommand
// @grant GM_getValue
// @grant GM_setValue
// @run-at document-end
// @homepageURL https://www.ytclassic.com
// @supportURL https://support.ytclassic.com
// ==/UserScript==
(() => {
// Define FUNCTIONS
function loadSetting(...keys) { keys.forEach(key => { config[key] = GM_getValue(config.prefix + '_' + key, false) })}
function saveSetting(key, value) { GM_setValue(config.prefix + '_' + key, value) ; config[key] = value }
function getUserscriptManager() { try { return GM_info.scriptHandler } catch (error) { return 'other' }}
function registerMenu() {
const menuIDs = [] // to store registered commands for removal while preserving order
const state = {
symbol: ['✔️', '❌'], word: ['ON', 'OFF'],
separator: getUserscriptManager() === 'Tampermonkey' ? ' — ' : ': ' }
// Add command to toggle Shorts redirect
const rsLabel = state.symbol[+!config.disableShorts] + ' Redirect Shorts '
+ state.separator + state.word[+!config.disableShorts]
menuIDs.push(GM_registerMenuCommand(rsLabel, () => {
saveSetting('disableShorts', !config.disableShorts)
for (const id of menuIDs) { GM_unregisterMenuCommand(id) } registerMenu() // refresh menu
if (unsafeWindow.location.href.match(/shorts\/.+/))
unsafeWindow.location.replace(unsafeWindow.location.toString().replace('/shorts/', '/watch?v='))
}))
}
// Run MAIN routine
const config = { prefix: 'ytClassic' }
loadSetting('disableShorts')
registerMenu()
// Redirect Shorts
if (config.disableShorts) {
var oldHref = location.href;
if (unsafeWindow.location.href.match(/shorts\/.+/))
unsafeWindow.location.replace(unsafeWindow.location.toString().replace('/shorts/', '/watch?v='))
unsafeWindow.onload = () => {
var bodyList = document.querySelector('body')
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function() {
if (oldHref != location.href) {
oldHref = location.href
if (unsafeWindow.location.href.match(/shorts\/.+/))
unsafeWindow.location.replace(unsafeWindow.location.toString().replace('/shorts/', '/watch?v='))
}})})
var config = { childList: true, subtree: true }
observer.observe(bodyList, config);
}
}
// Config keys
const CONFIGS = { BUTTON_REWORK: false }
// Experiment flags
const EXPFLAGS = {
enable_channel_page_header_profile_section: false,
enable_header_channel_handler_ui: false,
kevlar_unavailable_video_error_ui_client: false,
kevlar_refresh_on_theme_change: false,
kevlar_modern_sd_v2: false,
kevlar_watch_cinematics: false,
kevlar_watch_comments_panel_button: false,
kevlar_watch_grid: false,
kevlar_watch_grid_hide_chips: false,
kevlar_watch_metadata_refresh: false,
kevlar_watch_metadata_refresh_no_old_secondary_data: false,
kevlar_watch_modern_metapanel: false,
kevlar_watch_modern_panels: false,
kevlar_watch_panel_height_matches_player: false,
smartimation_background: false,
web_amsterdam_playlists: false,
web_animated_actions: false,
web_animated_like: false,
web_button_rework: false,
web_button_rework_with_live: false,
web_darker_dark_theme: false,
web_enable_youtab: false,
web_guide_ui_refresh: false,
web_modern_ads: false,
web_modern_buttons: false,
web_modern_chips: false,
web_modern_collections_v2: false,
web_modern_dialogs: false,
web_modern_playlists: false,
web_modern_subscribe: true,
web_modern_tabs: false,
web_rounded_containers: false,
web_rounded_thumbnails: false,
web_searchbar_style: 'default',
web_segmented_like_dislike_button: false,
web_sheets_ui_refresh: false,
web_snackbar_ui_refresh: false,
web_watch_rounded_player_large: false
}
// Player flags
const PLYRFLAGS = {
web_rounded_containers: 'false',
web_rounded_thumbnails: 'false'
}
class YTP {
static observer = new MutationObserver(this.onNewScript);
static _config = {};
static isObject(item) {
return (item && typeof item === 'object' && !Array.isArray(item));
}
static mergeDeep(target, ...sources) {
if (!sources.length) return target;
const source = sources.shift();
if (this.isObject(target) && this.isObject(source)) {
for (const key in source) {
if (this.isObject(source[key])) {
if (!target[key]) Object.assign(target, { [key]: {} });
this.mergeDeep(target[key], source[key]);
} else {
Object.assign(target, { [key]: source[key] });
}
}
}
return this.mergeDeep(target, ...sources);
}
static onNewScript(mutations) {
for (var mut of mutations) {
for (var node of mut.addedNodes) { // eslint-disable-line no-unused-vars
YTP.bruteforce();
}
}
}
static start() { this.observer.observe(document, {childList: true, subtree: true}); }
static stop() { this.observer.disconnect(); }
static bruteforce() {
if (!unsafeWindow.yt) return;
if (!unsafeWindow.yt.config_) return;
this.mergeDeep(unsafeWindow.yt.config_, this._config);
}
static setCfg(name, value) { this._config[name] = value; }
static setCfgMulti(configs) { this.mergeDeep(this._config, configs); }
static setExp(name, value) {
if (!('EXPERIMENT_FLAGS' in this._config)) this._config.EXPERIMENT_FLAGS = {};
this._config.EXPERIMENT_FLAGS[name] = value;
}
static setExpMulti(exps) {
if (!('EXPERIMENT_FLAGS' in this._config)) this._config.EXPERIMENT_FLAGS = {};
this.mergeDeep(this._config.EXPERIMENT_FLAGS, exps);
}
static decodePlyrFlags(flags) {
var obj = {},
dflags = flags.split('&');
for (var i = 0; i < dflags.length; i++) {
var dflag = dflags[i].split('=');
obj[dflag[0]] = dflag[1];
}
return obj;
}
static encodePlyrFlags(flags) {
var keys = Object.keys(flags),
response = '';
for (var i = 0; i < keys.length; i++) {
if (i > 0) { response += '&'; }
response += keys[i] + '=' + flags[keys[i]];
}
return response;
}
static setPlyrFlags(flags) {
if (!unsafeWindow.yt) return;
if (!unsafeWindow.yt.config_) return;
if (!unsafeWindow.yt.config_.WEB_PLAYER_CONTEXT_CONFIGS) return;
var conCfgs = unsafeWindow.yt.config_.WEB_PLAYER_CONTEXT_CONFIGS;
if (!('WEB_PLAYER_CONTEXT_CONFIGS' in this._config)) this._config.WEB_PLAYER_CONTEXT_CONFIGS = {};
for (var cfg in conCfgs) {
var dflags = this.decodePlyrFlags(conCfgs[cfg].serializedExperimentFlags);
this.mergeDeep(dflags, flags);
this._config.WEB_PLAYER_CONTEXT_CONFIGS[cfg] = {
serializedExperimentFlags: this.encodePlyrFlags(dflags)
}
}
}
}
const ATTRS = [ // Attributes to remove from <html>
'darker-dark-theme', 'darker-dark-theme-deprecate'
];
unsafeWindow.addEventListener('yt-page-data-updated', function tmp() {
const ytLogo = document.getElementById('logo-icon'),
classicLogo = document.createElement('img')
classicLogo.style.marginLeft = '5px' ; classicLogo.height = 65
classicLogo.src = document.querySelector('ytd-masthead').getAttribute('dark') != null
? 'https://i.imgur.com/brCETJj.png' // Dark mode
: 'https://i.imgur.com/rHLcxEs.png' // Light mode
ytLogo.textContent = '' ; ytLogo.append(classicLogo)
YTP.stop()
for (var i = 0; i < ATTRS.length; i++) { document.getElementsByTagName('html')[0].removeAttribute(ATTRS[i]) }
unsafeWindow.removeEventListener('yt-page-date-updated', tmp)
})
YTP.start();
YTP.setCfgMulti(CONFIGS);
YTP.setExpMulti(EXPFLAGS);
YTP.setPlyrFlags(PLYRFLAGS);
function $(q) { return document.querySelector(q) }
// Re-add 'Explore' tab in sidebar (it also replaces the 'Shorts' tab)
function waitForElem(selector) {
return new Promise(resolve => {
if (document.querySelector(selector)) resolve(true)
else new MutationObserver((_, obs) => {
if (document.querySelector(selector)) { resolve(true) ; obs.disconnect() }
}).observe(document.documentElement, { childList: true, subtree: true })
})
}
function restoreTrending() {
var trendingData = {
'navigationEndpoint': {
'clickTrackingParams': 'CBwQtSwYASITCNqYh-qO_fACFcoRrQYdP44D9Q==',
'commandMetadata': {
'webCommandMetadata': {
'url': '/feed/explore',
'webPageType': 'WEB_PAGE_TYPE_BROWSE',
'rootVe': 6827,
'apiUrl': '/youtubei/v1/browse'
}
},
'browseEndpoint': { 'browseId': 'FEtrending' }
},
'icon': { 'iconType': 'EXPLORE' },
'trackingParams': 'CBwQtSwYASITCNqYh-qO_fACFcoRrQYdP44D9Q==',
'formattedTitle': { 'simpleText': 'Explore' },
'accessibility': { 'accessibilityData': { 'label': 'Explore' }},
'isPrimary': true
}
document.querySelector('#items > ytd-guide-entry-renderer:nth-child(2)').data = trendingData
document.querySelector('#items > ytd-mini-guide-entry-renderer:nth-child(2)').data = trendingData
}
waitForElem('#items.ytd-guide-section-renderer').then(() => { restoreTrending() })
waitForElem('#items.ytd-mini-guide-section-renderer').then(() => { restoreTrending() })
// Fix YouTube dislikes
addEventListener('yt-page-data-updated', function() {
if(!location.pathname.startsWith('/watch')) return;
var lds = $('ytd-video-primary-info-renderer div#top-level-buttons-computed');
var like = $('ytd-video-primary-info-renderer div#segmented-like-button > ytd-toggle-button-renderer');
var share = $('ytd-video-primary-info-renderer div#top-level-buttons-computed > ytd-segmented-like-dislike-button-renderer + ytd-button-renderer');
lds.insertBefore(like, share);
like.setAttribute('class', like.getAttribute('class').replace('ytd-segmented-like-dislike-button-renderer', 'ytd-menu-renderer force-icon-button'));
like.removeAttribute('is-paper-button-with-icon');
like.removeAttribute('is-paper-button');
like.setAttribute('style-action-button', '');
like.setAttribute('is-icon-button', '');
like.querySelector('a').insertBefore(like.querySelector('yt-formatted-string'), like.querySelector('tp-yt-paper-tooltip'));
try { like.querySelector('paper-ripple').remove(); } catch(e) {}
var paper = like.querySelector('tp-yt-paper-button');
paper.removeAttribute('style-target');
paper.removeAttribute('animated');
paper.removeAttribute('elevation');
like.querySelector('a').insertBefore(paper.querySelector('yt-icon'), like.querySelector('yt-formatted-string'));
paper.outerHTML = paper.outerHTML.replace('<tp-yt-paper-button ', '<yt-icon-button ').replace('</tp-yt-paper-button>', '</yt-icon-button>');
paper = like.querySelector('yt-icon-button');
paper.querySelector('button#button').appendChild(like.querySelector('yt-icon'));
var dislike = $('ytd-video-primary-info-renderer div#segmented-dislike-button > ytd-toggle-button-renderer');
lds.insertBefore(dislike, share);
$('ytd-video-primary-info-renderer ytd-segmented-like-dislike-button-renderer').remove();
dislike.setAttribute('class', dislike.getAttribute('class').replace('ytd-segmented-like-dislike-button-renderer', 'ytd-menu-renderer force-icon-button'));
dislike.removeAttribute('has-no-text');
dislike.setAttribute('style-action-button', '');
var dlabel = document.createElement('yt-formatted-stringx');
dlabel.setAttribute('id', 'text');
if (dislike.getAttribute('class').includes('style-default-active')) {
dlabel.setAttribute('class', dlabel.getAttribute('class').replace('style-default', 'style-default-active')) }
dislike.querySelector('a').insertBefore(dlabel, dislike.querySelector('tp-yt-paper-tooltip'));
$('ytd-video-primary-info-renderer').removeAttribute('flex-menu-enabled');
});
// Restore classic comments UI
var hl;
const cfconfig = { unicodeEmojis: false };
const cfi18n = {
en: {
viewSingular: 'View reply',
viewMulti: 'View %s replies',
viewSingularOwner: 'View reply from %s',
viewMultiOwner: 'View %s replies from %s and others',
hideSingular: 'Hide reply',
hideMulti: 'Hide replies',
replyCountIsolator: /( REPLIES)|( REPLY)/
}
}
function getString(string, hl = 'en', ...args) {
if (!string) return;
var str;
if (cfi18n[hl]) {
if (cfi18n[hl][string]) {
str = cfi18n[hl][string];
} else if (cfi18n.en[string]) {
str = cfi18n.en[string];
} else {
return;
}
} else { if (cfi18n.en[string]) str = cfi18n.en[string]; }
for (var i = 0; i < args.length; i++) {
str = str.replace(/%s/, args[i]);
}
return str;
}
function getSimpleString(object) {
if (object.simpleText) return object.simpleText;
var str = '';
for (var i = 0; i < object.runs.length; i++) {
str += object.runs[i].text;
}
return str;
}
function formatComment(comment) {
if (cfconfig.unicodeEmojis) {
var runs;
try {
runs = comment.contentText.runs
for (var i = 0; i < runs.length; i++) {
delete runs[i].emoji;
delete runs[i].loggingDirectives;
}
} catch(err) {}
}
return comment;
}
async function formatCommentThread(thread) {
if (thread.comment.commentRenderer) {
thread.comment.commentRenderer = formatComment(thread.comment.commentRenderer);
}
var replies;
try {
replies = thread.replies.commentRepliesRenderer;
if (replies.viewRepliesIcon) {
replies.viewReplies.buttonRenderer.icon = replies.viewRepliesIcon.buttonRenderer.icon;
delete replies.viewRepliesIcon;
}
if (replies.hideRepliesIcon) {
replies.hideReplies.buttonRenderer.icon = replies.hideRepliesIcon.buttonRenderer.icon;
delete replies.hideRepliesIcon;
}
var creatorName;
try {
creatorName = replies.viewRepliesCreatorThumbnail.accessibility.accessibilityData.label;
delete replies.viewRepliesCreatorThumbnail;
} catch(err) {}
var replyCount = getSimpleString(replies.viewReplies.buttonRenderer.text);
replyCount = +replyCount.replace(getString('replyCountIsolator', hl), '');
var viewMultiString = creatorName ? 'viewMultiOwner' : 'viewMulti';
var viewSingleString = creatorName ? 'viewSingularOwner' : 'viewSingular';
replies.viewReplies.buttonRenderer.text = {
runs: [
{
text: (replyCount > 1) ? getString(viewMultiString, hl, replyCount, creatorName) : getString(viewSingleString, hl, creatorName)
}
]
}
replies.hideReplies.buttonRenderer.text = {
runs: [{ text: (replyCount > 1) ? getString('hideMulti', hl) : getString('hideSingular', hl) }]
};
} catch(err) {}
return thread;
}
function refreshData(element) {
var clone = element.cloneNode();
clone.data = element.data;
clone.data.fixedByCF = true;
for (var i in element.properties) { clone[i] = element[i]; }
element.insertAdjacentElement('afterend', clone);
element.remove();
}
var commentObserver = new MutationObserver((list) => {
list.forEach(async(mutation) => {
if (mutation.addedNodes) {
for (var i = 0; i < mutation.addedNodes.length; i++) {
var elm = mutation.addedNodes[i];
if (elm.classList && elm.data && !elm.data.fixedByCF) {
if (elm.tagName == 'YTD-COMMENT-THREAD-RENDERER') {
elm.data = await formatCommentThread(elm.data);
refreshData(elm);
} else if (elm.tagName == 'YTD-COMMENT-RENDERER') {
if (!elm.classList.contains('ytd-comment-thread-renderer')) {
elm.data = formatComment(elm.data);
refreshData(elm);
}
}
}
}
}
});
});
document.addEventListener('yt-page-data-updated', async() => {
commentObserver.observe(document.querySelector('ytd-app'), { childList: true, subtree: true });
});
// CSS adjustments and UI fixes
const fixesStyle = document.createElement('style')
fixesStyle.innerText = `
/* Revert old background color and buttons */
html[dark] {
--yt-spec-general-background-a: #181818 !important;
--yt-spec-general-background-b: #0f0f0f !important;
--yt-spec-brand-background-primary: rgba(33, 33, 33, 0.98) !important;
--yt-spec-10-percent-layer: rgba(255, 255, 255, 0.1) !important;
}
html:not([dark]) {
--yt-spec-general-background-a: #f9f9f9 !important;
--yt-spec-general-background-b: #f1f1f1 !important;
--yt-spec-brand-background-primary: rgba(255, 255, 255, 0.98) !important;
--yt-spec-10-percent-layer: rgba(0, 0, 0, 0.1) !important;
}
ytd-masthead {
background: var(--yt-spec-brand-background-solid) !important;
}
ytd-app {
background: var(--yt-spec-general-background-a) !important;
}
ytd-browse[page-subtype="channels"] {
background: var(--yt-spec-general-background-b) !important;
}
ytd-c4-tabbed-header-renderer {
--yt-lightsource-section1-color: var(--yt-spec-general-background-a) !important;
}
ytd-mini-guide-renderer, ytd-mini-guide-entry-renderer {
background-color: var(--yt-spec-brand-background-solid) !important;
}
#cinematics.ytd-watch-flexy {
display: none !important;
}
#tabs-divider.ytd-c4-tabbed-header-renderer {
border-bottom: 0px !important;
}
#header.ytd-rich-grid-renderer {
width: 100% !important;
}
[page-subtype="home"] #chips-wrapper.ytd-feed-filter-chip-bar-renderer {
background-color: var(--yt-spec-brand-background-primary) !important;
border-top: 1px solid var(--yt-spec-10-percent-layer) !important;
border-bottom: 1px solid var(--yt-spec-10-percent-layer) !important;
}
ytd-feed-filter-chip-bar-renderer[is-dark-theme] #left-arrow.ytd-feed-filter-chip-bar-renderer::after {
background: linear-gradient(to right, var(--yt-spec-brand-background-primary) 20%, rgba(33, 33, 33, 0) 80%) !important;
}
ytd-feed-filter-chip-bar-renderer[is-dark-theme] #right-arrow.ytd-feed-filter-chip-bar-renderer::before {
background: linear-gradient(to left, var(--yt-spec-brand-background-primary) 20%, rgba(33, 33, 33, 0) 80%) !important;
}
ytd-feed-filter-chip-bar-renderer #left-arrow-button.ytd-feed-filter-chip-bar-renderer,
ytd-feed-filter-chip-bar-renderer #right-arrow-button.ytd-feed-filter-chip-bar-renderer {
background-color: var(--yt-spec-brand-background-primary) !important;
}
yt-chip-cloud-renderer[is-dark-theme] #right-arrow.yt-chip-cloud-renderer::before {
background: linear-gradient(to left, var(--ytd-chip-cloud-background, var(--yt-spec-general-background-a)) 10%, rgba(24, 24, 24, 0) 90%) !important;
}
yt-chip-cloud-renderer #left-arrow-button.yt-chip-cloud-renderer,
yt-chip-cloud-renderer #right-arrow-button.yt-chip-cloud-renderer {
background: var(--ytd-chip-cloud-background, var(--yt-spec-general-background-a)) !important;
}
yt-chip-cloud-renderer[is-dark-theme] #left-arrow.yt-chip-cloud-renderer::after {
background: linear-gradient(to right, var(--ytd-chip-cloud-background, var(--yt-spec-general-background-a)) 10%, rgba(24, 24, 24, 0) 90%) !important;
}
yt-chip-cloud-renderer #left-arrow.yt-chip-cloud-renderer::after {
background: linear-gradient(to right, var(--ytd-chip-cloud-background, var(--yt-spec-general-background-a)) 10%, rgba(249, 249, 249, 0) 90%) !important;
}
yt-chip-cloud-renderer #right-arrow.yt-chip-cloud-renderer::before {
background: linear-gradient(to left, var(--ytd-chip-cloud-background, var(--yt-spec-general-background-a)) 10%, rgba(249, 249, 249, 0) 90%) !important;
}
ytd-feed-filter-chip-bar-renderer[component-style="FEED_FILTER_CHIP_BAR_STYLE_TYPE_HASHTAG_LANDING_PAGE"] #chips-wrapper.ytd-feed-filter-chip-bar-renderer,
ytd-feed-filter-chip-bar-renderer[component-style="FEED_FILTER_CHIP_BAR_STYLE_TYPE_CHANNEL_PAGE_GRID"] #chips-wrapper.ytd-feed-filter-chip-bar-renderer {
background-color: var(--yt-spec-general-background-b) !important;
}
yt-chip-cloud-chip-renderer {
height: 32px !important;
border: 1px solid var(--yt-spec-10-percent-layer) !important;
border-radius: 16px !important;
box-sizing: border-box !important;
}
/* Remove rounded corners on buttons and boxes */
#container.ytd-searchbox {
background-color: var(--ytd-searchbox-background) !important;
border-radius: 2px 0 0 2px !important;
box-shadow: inset 0 1px 2px var(--ytd-searchbox-legacy-border-shadow-color) !important;
color: var(--ytd-searchbox-text-color) !important;
padding: 2px 6px !important;
}
ytd-searchbox[desktop-searchbar-style="rounded_corner_dark_btn"] #searchbox-button.ytd-searchbox {
display: none !important;
}
ytd-searchbox[desktop-searchbar-style="rounded_corner_light_btn"] #searchbox-button.ytd-searchbox {
display: none !important;
}
#search[has-focus] #search-input {
margin-left: 32px !important;
}
#search-icon-legacy.ytd-searchbox {
display: block !important;
border-radius: 0px 2px 2px 0px !important;
}
.sbsb_a {
border-radius: 2px !important;
}
.sbsb_c {
padding-left: 10px !important;
}
div.sbqs_c::before {
margin-right: 10px !important;
}
ytd-searchbox[has-focus] #search-icon.ytd-searchbox {
padding-left: 10px !important;
padding-right: 10px !important;
}
#voice-search-button.ytd-masthead {
background-color: var(--yt-spec-general-background-a) !important;
margin-left: 4px !important;
}
#guide-content.ytd-app {
background: var(--yt-spec-brand-background-solid) !important;
}
yt-interaction.ytd-guide-entry-renderer,
ytd-guide-entry-renderer {
border-radius: 0px !important;
}
a#endpoint.yt-simple-endpoint.style-scope.ytd-mini-guide-entry-renderer {
margin: 0px !important;
}
ytd-guide-entry-renderer[guide-refresh] {
width: 100% !important;
border-radius: 0px !important;
}
tp-yt-paper-item.ytd-guide-entry-renderer {
--paper-item-focused-before-border-radius: 0px !important;
}
ytd-mini-guide-entry-renderer {
border-radius: 0 !important;
}
ytd-guide-section-renderer.style-scope.ytd-guide-renderer {
padding-left: 0px !important;
}
ytd-mini-guide-renderer[guide-refresh] {
padding: 0 !important;
}
ytd-guide-entry-renderer[active] {
border-radius: 0px !important;
}
.style-scope.ytd-guide-entry-renderer:hover {
border-radius: 0 !important;
}
tp-yt-paper-item.style-scope.ytd-guide-entry-renderer {
border-radius: 0px !important;
padding-left: 24px !important;
}
#guide-section-title.ytd-guide-section-renderer {
color: var(--yt-spec-text-secondary) !important;
padding: 8px 24px !important;
font-size: var(--ytd-tab-system-font-size) !important;
font-weight: var(--ytd-tab-system-font-weight) !important;
letter-spacing: var(--ytd-tab-system-letter-spacing) !important;
text-transform: var(--ytd-tab-system-text-transform) !important;
}
.style-scope.ytd-rich-item-renderer {
border-radius: 2px !important;
}
.style-scope.ytd-item-section-renderer {
border-radius: 0px !important;
}
#tooltip.tp-yt-paper-tooltip {
border-radius: 2px !important;
}
div.style-scope.yt-tooltip-renderer {
border-radius: 0px !important;
}
.style-scope.ytd-topic-link-renderer {
border-radius: 2px !important;
}
.bold.style-scope.yt-formatted-string {
font-family: Roboto !important;
}
.style-scope.yt-formatted-string {
font-family: Roboto !important;
}
#bar {
border-radius: 2px !important;
}
ytd-multi-page-menu-renderer {
border-radius: 0px !important;
border: 1px solid var(--yt-spec-10-percent-layer) !important;
border-top: none !important;
box-shadow: none !important;
}
yt-dropdown-menu {
--paper-menu-button-content-border-radius: 2px !important;
}
ytd-menu-popup-renderer {
border-radius: 2px !important;
}
.style-scope.ytd-shared-post-renderer {
border-radius: 0px !important;
}
div#repost-context.style-scope.ytd-shared-post-renderer {
border-radius: 0px !important;
}
ytd-post-renderer.style-scope.ytd-shared-post-renderer {
border-radius: 0px !important;
}
div#dismissed.style-scope.ytd-compact-video-renderer {
border-radius: 0px !important;
}
.style-scope.ytd-feed-nudge-renderer {
border-radius: 2px !important;
}
.style-scope.ytd-inline-survey-renderer {
border-radius: 2px !important;
}
.style-scope.ytd-brand-video-shelf-renderer {
border-radius: 0px !important;
}
div#dismissible.style-scope.ytd-brand-video-singleton-renderer {
border-radius: 0px !important;
}
#inline-survey-compact-video-renderer {
border-radius: 0px !important;
}
tp-yt-paper-button#button.style-scope.ytd-button-renderer.style-inactive-outline.size-default {
border-radius: 2px !important;
}
div#dismissed.style-scope.ytd-rich-grid-media {
border-radius: 0px !important;
}
ytd-thumbnail[size="large"] a.ytd-thumbnail, ytd-thumbnail[size="large"]::before {
border-radius: 0 !important;
}
ytd-thumbnail[size="medium"] a.ytd-thumbnail, ytd-thumbnail[size="medium"]::before {
border-radius: 0 !important;
}
ytd-playlist-thumbnail[size="medium"] a.ytd-playlist-thumbnail, ytd-playlist-thumbnail[size="medium"]::before {
border-radius: 0 !important;
}
ytd-playlist-thumbnail[size="large"] a.ytd-playlist-thumbnail, ytd-playlist-thumbnail[size="large"]::before {
border-radius: 0 !important;
}
ytd-playlist-panel-renderer[modern-panels]:not([within-miniplayer]) #container.ytd-playlist-panel-renderer {
border-radius: 0 !important;
}
ytd-thumbnail-overlay-toggle-button-renderer.style-scope.ytd-thumbnail {
border-radius: 2px !important;
}
ytd-compact-link-renderer.ytd-settings-sidebar-renderer {
margin: 0px !important;
border-radius: 0 !important;
}
ytd-compact-link-renderer[compact-link-style=compact-link-style-type-settings-sidebar][active] {
border-radius: 0 !important;
}
tp-yt-paper-item.style-scope.ytd-compact-link-renderer::before {
border-radius: 0 !important;
}
ytd-compact-link-renderer[compact-link-style=compact-link-style-type-settings-sidebar] tp-yt-paper-item.ytd-compact-link-renderer {
padding-left: 24px !important;
padding-right: 24px !important;
}
img#img.style-scope.yt-image-shadow {
border-radius: 50px !important;
}
#title.style-scope.ytd-feed-nudge-renderer {
font-family: Roboto !important;
}
yt-chip-cloud-chip-renderer.style-scope.ytd-feed-nudge-renderer {
border-radius: 50px !important;
}
div#label-container.style-scope.ytd-thumbnail-overlay-toggle-button-renderer {
border: 2px !important;
text-transform: uppercase !important;
}
ytd-thumbnail-overlay-time-status-renderer.style-scope.ytd-thumbnail {
border-radius: 2px !important;
}
ytd-backstage-post-dialog-renderer {
border-radius: 2px !important;
}
yt-bubble-hint-renderer {
border-radius: 2px !important;
}
#top-row.ytd-watch-metadata > div#actions.item.style-scope.ytd-watch-metadata > div#actions-inner.style-scope.ytd-watch-metadata > div#menu.style-scope.ytd-watch-metadata > ytd-menu-renderer.style-scope.ytd-watch-metadata > div#top-level-buttons-computed.top-level-buttons.style-scope.ytd-menu-renderer > ytd-button-renderer, #top-row.ytd-watch-metadata > div#actions.item.style-scope.ytd-watch-metadata > div#actions-inner.style-scope.ytd-watch-metadata > div#menu.style-scope.ytd-watch-metadata > ytd-menu-renderer.style-scope.ytd-watch-metadata > div#flexible-item-buttons.style-scope.ytd-menu-renderer > ytd-button-renderer, #top-row.ytd-watch-metadata > div#actions.item.style-scope.ytd-watch-metadata > div#actions-inner.style-scope.ytd-watch-metadata > div#menu.style-scope.ytd-watch-metadata > ytd-menu-renderer.style-scope.ytd-watch-metadata > div#top-level-buttons-computed.top-level-buttons.style-scope.ytd-menu-renderer > ytd-segmented-like-dislike-button-renderer.style-scope.ytd-menu-renderer > yt-smartimation.style-scope.ytd-segmented-like-dislike-button-renderer > div#segmented-buttons-wrapper.style-scope.ytd-segmented-like-dislike-button-renderer > div#segmented-like-button.style-scope.ytd-segmented-like-dislike-button-renderer > ytd-toggle-button-renderer {
text-transform: capitalize !important;
}
#top-row.ytd-watch-metadata > div#actions.item.style-scope.ytd-watch-metadata > div#actions-inner.style-scope.ytd-watch-metadata > div#menu.style-scope.ytd-watch-metadata > ytd-menu-renderer.style-scope.ytd-watch-metadata > div#top-level-buttons-computed.top-level-buttons.style-scope.ytd-menu-renderer > ytd-segmented-like-dislike-button-renderer.style-scope.ytd-menu-renderer > yt-smartimation.style-scope.ytd-segmented-like-dislike-button-renderer > div#segmented-buttons-wrapper.style-scope.ytd-segmented-like-dislike-button-renderer > div#segmented-dislike-button.style-scope.ytd-segmented-like-dislike-button-renderer > ytd-toggle-button-renderer.style-scope.ytd-segmented-like-dislike-button-renderer.style-text > a.yt-simple-endpoint.style-scope.ytd-toggle-button-renderer > yt-icon-button#button.yt-simple-endpoint.style-scope.ytd-toggle-button-renderer > button#button.style-scope.yt-icon-button {
width: 24px !important;
height: 24px !important;
}
#top-row.ytd-watch-metadata > div#actions.item.style-scope.ytd-watch-metadata > div#actions-inner.style-scope.ytd-watch-metadata > div#menu.style-scope.ytd-watch-metadata > ytd-menu-renderer.style-scope.ytd-watch-metadata > div#top-level-buttons-computed.top-level-buttons.style-scope.ytd-menu-renderer > ytd-segmented-like-dislike-button-renderer.style-scope.ytd-menu-renderer > yt-smartimation.style-scope.ytd-segmented-like-dislike-button-renderer > div#segmented-buttons-wrapper.style-scope.ytd-segmented-like-dislike-button-renderer > div#segmented-dislike-button.style-scope.ytd-segmented-like-dislike-button-renderer > ytd-toggle-button-renderer.style-scope.ytd-segmented-like-dislike-button-renderer.style-text > a.yt-simple-endpoint.style-scope.ytd-toggle-button-renderer > yt-icon-button#button.yt-simple-endpoint.style-scope.ytd-toggle-button-renderer {
padding: 6px !important;
}
ytd-watch-metadata[modern-metapanel] #description.ytd-watch-metadata, #description.ytd-watch-metadata {
background-color: transparent !important;
border-radius: 0px !important;
}
ytd-watch-metadata[modern-metapanel] #description-inner.ytd-watch-metadata, #description-inner.ytd-watch-metadata {
margin: 0px !important;
}
ytd-watch-metadata[modern-metapanel-order] #comment-teaser.ytd-watch-metadata, #comment-teaser.ytd-watch-metadata {
border: 1px solid var(--yt-spec-10-percent-layer) !important;
border-radius: 4px !important;
}
ytd-comments-entry-point-header-renderer[modern-metapanel], #comment-teaser.ytd-watch-metadata {
background-color: transparent !important;
}
div#title.text-shell.skeleton-bg-color {
border-radius: 2px !important;
}
div#count.text-shell.skeleton-bg-color {
border-radius: 2px !important;
}
div#owner-name.text-shell.skeleton-bg-color {
border-radius: 2px !important;
}
div#published-date.text-shell.skeleton-bg-color {
border-radius: 2px !important;
}
div#subscribe-button.skeleton-bg-color {
border-radius: 4px !important;
}
div.rich-thumbnail.skeleton-bg-color {
border-radius: 0px !important;
}
div.rich-video-title.text-shell.skeleton-bg-color {
border-radius: 2px !important;
}
div.rich-video-meta.text-shell.skeleton-bg-color {
border-radius: 2px !important;
}
ytd-video-view-count-renderer {
font-size: 1.4rem !important;
}
#meta #avatar {
width: 48px;
height: 48px;
margin-right: 16px;
}
#meta #avatar img {
width: 100%;
}
#channel-name.ytd-video-owner-renderer {
font-size: 1.4rem !important;
}
#info.ytd-video-primary-info-renderer {
height: 40px !important;
}
ytd-merch-shelf-renderer {
background-color: transparent !important;
}
div#clarify-box.attached-message.style-scope.ytd-watch-flexy {
margin-top: 0px !important;
}
ytd-clarification-renderer.style-scope.ytd-item-section-renderer, ytd-clarification-renderer.style-scope.ytd-watch-flexy {
border: 1px solid !important;
border-color: #0000001a !important;
border-radius: 0px !important;
}
yt-formatted-string.description.style-scope.ytd-clarification-renderer {
font-size: 1.4rem !important;
}
div.content-title.style-scope.ytd-clarification-renderer {
padding-bottom: 4px !important;
}
ytd-watch-flexy[rounded-player-large]:not([fullscreen]):not([theater]) #ytd-player.ytd-watch-flexy {
border-radius: 0px !important;
}
ytd-rich-metadata-renderer[rounded] {
border-radius: 0px !important;
}
ytd-live-chat-frame[rounded-container], ytd-live-chat-frame[rounded-container] #show-hide-button.ytd-live-chat-frame ytd-toggle-button-renderer.ytd-live-chat-frame, iframe.style-scope.ytd-live-chat-frame {
border-radius: 0px !important;
}
ytd-toggle-button-renderer.style-scope.ytd-live-chat-frame, yt-live-chat-header-renderer.style-scope.yt-live-chat-renderer {
background: var(--yt-spec-brand-background-solid) !important;
}
ytd-toggle-button-renderer.style-scope.ytd-live-chat-frame > a.yt-simple-endpoint.style-scope.ytd-toggle-button-renderer > tp-yt-paper-button.style-scope.ytd-toggle-button-renderer {
padding-top: 4px !important;
padding-bottom: 4px !important;
}
ytd-playlist-panel-renderer[modern-panels]:not([within-miniplayer]) #container.ytd-playlist-panel-renderer, ytd-tvfilm-offer-module-renderer[modern-panels], ytd-donation-shelf-renderer.style-scope.ytd-watch-flexy {
border-radius: 0px !important;
}
ytd-playlist-panel-renderer[modern-panels]:not([hide-header-text]) .title.ytd-playlist-panel-renderer {
font-family: Roboto !important;
font-size: 1.4rem !important;
line-height: 2rem !important;
font-weight: 500 !important;
}
ytd-tvfilm-offer-module-renderer[modern-panels] #header.ytd-tvfilm-offer-module-renderer {
border-radius: 0px !important;
font-family: Roboto !important;
font-size: 1.6rem !important;
line-height: 2.2rem !important;
font-weight: 400 !important;
}
ytd-donation-shelf-renderer[modern-panels] #header-text.ytd-donation-shelf-renderer {
font-family: Roboto !important;
font-size: 1.6rem !important;
font-weight: 500 !important;
}
ytd-universal-watch-card-renderer[rounded] #header.ytd-universal-watch-card-renderer, ytd-universal-watch-card-renderer[rounded] #hero.ytd-universal-watch-card-renderer {
border-radius: 0px !important;
}
/* Remove rounded corners from the video player (Thanks to oldbutgoldyt for the code) */
.ytp-ad-player-overlay-flyout-cta-rounded {
border-radius: 2px !important;
}
.ytp-flyout-cta .ytp-flyout-cta-action-button.ytp-flyout-cta-action-button-rounded {
font-family: Arial !important;
background: #167ac6 !important;
border: solid 1px transparent !important;
border-color: #167ac6 !important;
border-radius: 2px !important;
box-shadow: 0 1px 0 rgba(0,0,0,.05) !important;
font-size: 11px !important;
font-weight: 500 !important;
height: 28px !important;
margin: 0 8px 0 0 !important;
max-width: 140px !important;
padding: 0 10px !important;
}
.ytp-ad-action-interstitial-action-button.ytp-ad-action-interstitial-action-button-rounded {
background-color: #167ac6 !important;
border: none !important;
border-radius: 2px;
font-family: Roboto !important;
font-size: 23px !important;
height: 46px !important;
line-height: 46px !important;
min-width: 164px !important;
padding: 0 20px !important;
}
.ytp-settings-menu {
border-radius: 2px !important;
}
.ytp-sb-subscribe {
border-radius: 2px !important;
background-color: #f00 !important;
color: #fff !important;
text-transform: uppercase !important;
}
.ytp-sb-unsubscribe {
border-radius: 2px !important;
background-color: #eee !important;
color: #606060 !important;
text-transform: uppercase !important;
}
.ytp-sb-subscribe.ytp-sb-disabled {
background-color: #f3908b !important;
}
.branding-context-container-inner.ytp-rounded-branding-context {
border-radius: 2px !important;
}
.ytp-tooltip.ytp-rounded-tooltip:not(.ytp-preview) .ytp-tooltip-text {
border-radius: 2px !important;
}
.ytp-autonav-endscreen-upnext-button.ytp-autonav-endscreen-upnext-button-rounded {
border-radius: 2px !important;
}
.ytp-ad-overlay-container.ytp-rounded-overlay-ad .ytp-ad-overlay-image img, .ytp-ad-overlay-container.ytp-rounded-overlay-ad .ytp-ad-text-overlay, .ytp-ad-overlay-container.ytp-rounded-overlay-ad .ytp-ad-enhanced-overlay {
border-radius: 0 !important;
}
.ytp-videowall-still-image {
border-radius: 0 !important;
}
div.iv-card.iv-card-video.ytp-rounded-info {
border-radius: 0 !important;
}
div.iv-card.iv-card-playlist.ytp-rounded-info {
border-radius: 0 !important;
}
div.iv-card.iv-card-channel.ytp-rounded-info {
border-radius: 0 !important;
}
div.iv-card.ytp-rounded-info {
border-radius: 0 !important;
}
.ytp-tooltip.ytp-rounded-tooltip.ytp-text-detail.ytp-preview, .ytp-tooltip.ytp-rounded-tooltip.ytp-text-detail.ytp-preview .ytp-tooltip-bg {
border-radius: 2px !important;
}
.ytp-ce-video.ytp-ce-medium-round, .ytp-ce-playlist.ytp-ce-medium-round, .ytp-ce-medium-round .ytp-ce-expanding-overlay-background {
border-radius: 0 !important;
}
.ytp-autonav-endscreen-upnext-thumbnail {
border-radius: 0 !important;
}
@font-face {
font-family: no-parens;
src: url("data:application/x-font-woff;base64,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");;
unicode-range: U+0028, U+0029;
}
span.ytp-menu-label-secondary {
font-family: "no-parens", "Roboto", sans-serif;
}
.ytp-swatch-color-white {
color: #f00 !important;
}
.iv-card {
border-radius: 0 !important;
}
.iv-branding .branding-context-container-inner {
border-radius: 2px !important;
}
.ytp-offline-slate-bar {
border-radius: 2px !important;
}
.ytp-offline-slate-button {
border-radius: 2px !important;
}
.ytp-ce-video.ytp-ce-large-round, .ytp-ce-playlist.ytp-ce-large-round, .ytp-ce-large-round .ytp-ce-expanding-overlay-background {
border-radius: 0 !important;
}
.ytp-flyout-cta .ytp-flyout-cta-icon.ytp-flyout-cta-icon-rounded {
border-radius: 0 !important;
}
.ytp-player-minimized .html5-main-video, .ytp-player-minimized .ytp-miniplayer-scrim, .ytp-player-minimized.html5-video-player {
border-radius: 0 !important;
}
ytd-miniplayer #player-container.ytd-miniplayer, ytd-miniplayer #video-container.ytd-miniplayer .video.ytd-miniplayer, ytd-miniplayer #card.ytd-miniplayer, ytd-miniplayer {
border-radius: 0 !important;
}
ytd-channel-video-player-renderer[rounded] #player.ytd-channel-video-player-renderer {
border-radius: 0 !important;
}
.ytp-tooltip.ytp-rounded-tooltip.ytp-preview:not(.ytp-text-detail), .ytp-tooltip.ytp-rounded-tooltip.ytp-preview:not(.ytp-text-detail) .ytp-tooltip-bg {
border-radius: 2px !important;
}
#movie_player > div.ytp-promotooltip-wrapper > div.ytp-promotooltip-container {
border-radius: 2px !important;
}
.ytp-fine-scrubbing-container {
display: none !important;
}
.ytp-progress-bar, .ytp-heat-map-container, .ytp-fine-scrubbing-container {
transform: translateY(0) !important;
}
.ytp-chrome-bottom {
height: auto !important;
}
.ytp-tooltip-edu {
display: none !important;
}
/* Subscribe button fixes + Old compact channel header UI and non-amsterdam playlists */
#buttons.ytd-c4-tabbed-header-renderer {
flex-direction: row-reverse !important;
}
yt-button-shape.style-scope.ytd-subscribe-button-renderer {
display: flex !important;
}
#subscribe-button ytd-subscribe-button-renderer button {
height: 37px !important;
letter-spacing: 0.5px !important;
border-radius: 2px !important;
text-transform: uppercase !important;
}
.yt-spec-button-shape-next--mono.yt-spec-button-shape-next--filled {
color: #fff !important;
background: var(--yt-spec-brand-button-background) !important;
border-radius: 2px !important;
text-transform: uppercase !important;
letter-spacing: 0.5px !important;
}
button.yt-spec-button-shape-next.yt-spec-button-shape-next--tonal.yt-spec-button-shape-next--mono.yt-spec-button-shape-next--size-m {
height: 37px !important;
letter-spacing: 0.5px !important;
border-radius: 2px !important;
text-transform: uppercase !important;
}
#subscribe-button ytd-subscribe-button-renderer button.yt-spec-button-shape-next--tonal {
background-color: var(--yt-spec-badge-chip-background) !important;
color: var(--yt-spec-text-secondary) !important;
}
button.yt-spec-button-shape-next.yt-spec-button-shape-next--tonal.yt-spec-button-shape-next--mono.yt-spec-button-shape-next--size-s {
background-color: var(--yt-spec-badge-chip-background) !important;
color: var(--yt-spec-text-secondary) !important;
height: 25px !important;
letter-spacing: 0.5px !important;
border-radius: 2px !important;
text-transform: uppercase !important;
}
div#notification-preference-button.style-scope.ytd-subscribe-button-renderer > ytd-subscription-notification-toggle-button-renderer-next.style-scope.ytd-subscribe-button-renderer > yt-button-shape > .yt-spec-button-shape-next--size-m {
background-color: transparent !important;
border-radius: 16px !important;
padding-left: 14px !important;
padding-right: 2px !important;
margin-left: 4px !important;
}
div#notification-preference-button.style-scope.ytd-subscribe-button-renderer > ytd-subscription-notification-toggle-button-renderer-next.style-scope.ytd-subscribe-button-renderer > yt-button-shape > .yt-spec-button-shape-next--size-m > div.cbox.yt-spec-button-shape-next--button-text-content, div#notification-preference-button.style-scope.ytd-subscribe-button-renderer > ytd-subscription-notification-toggle-button-renderer-next.style-scope.ytd-subscribe-button-renderer > yt-button-shape > .yt-spec-button-shape-next--size-m > div.yt-spec-button-shape-next__secondary-icon, button.yt-spec-button-shape-next.yt-spec-button-shape-next--tonal.yt-spec-button-shape-next--mono.yt-spec-button-shape-next--size-m.yt-spec-button-shape-next--icon-leading-trailing > div.yt-spec-button-shape-next__button-text-content {
display: none !important;
}
#notification-preference-toggle-button:not([hidden]) + yt-animated-action #notification-preference-button.ytd-subscribe-button-renderer[invisible], #subscribe-button-shape.ytd-subscribe-button-renderer[invisible] {
pointer-events: auto;
visibility: visible;
position: static;
}
yt-smartimation.ytd-subscribe-button-renderer, .smartimation__content > __slot-el {
display: flex !important;
}
ytd-channel-tagline-renderer {
display: none !important;
}
#avatar.ytd-c4-tabbed-header-renderer {
width: 80px !important;
height: 80px !important;
margin: 0 24px 0 0 !important;
flex: none !important;
overflow: hidden !important;
}
#avatar-editor.ytd-c4-tabbed-header-renderer {
--ytd-channel-avatar-editor-size: 80px !important;
}
#channel-name.ytd-c4-tabbed-header-renderer {
margin-bottom: 0 !important;
}
#channel-header-container.ytd-c4-tabbed-header-renderer {
padding-top: 0 !important;
align-items: center !important;
}
#inner-header-container.ytd-c4-tabbed-header-renderer {
margin-top: 0 !important;
align-items: center !important;
}
yt-formatted-string#channel-handle.style-scope.ytd-c4-tabbed-header-renderer {
display: none !important;
}
ytd-c4-tabbed-header-renderer[use-page-header-style] #channel-pronouns.ytd-c4-tabbed-header-renderer,
yt-formatted-string#channel-pronouns.style-scope.ytd-c4-tabbed-header-renderer {
display: none !important;
}
#videos-count {
display: none !important;
}
.meta-item.ytd-c4-tabbed-header-renderer {
display: block !important;
}
div#channel-header-links.style-scope.ytd-c4-tabbed-header-renderer {
display: none !important;
}
ytd-c4-tabbed-header-renderer[use-page-header-style] #channel-name.ytd-c4-tabbed-header-renderer {
font-size: 2.4em !important;
font-weight: 400 !important;
line-height: var(--yt-channel-title-line-height, 3rem) !important;
}
span.delimiter.style-scope.ytd-c4-tabbed-header-renderer {
display: none !important;
}
div#meta.style-scope.ytd-c4-tabbed-header-renderer {
width: auto !important;
}
ytd-c4-tabbed-header-renderer[use-page-header-style] #inner-header-container.ytd-c4-tabbed-header-renderer {
flex-direction: row !important;
}
div.page-header-banner.style-scope.ytd-c4-tabbed-header-renderer {
margin-left: 0px !important;
margin-right: 0px !important;
border-radius: 0px !important;
}
ytd-c4-tabbed-header-renderer[use-page-header-style] .page-header-banner.ytd-c4-tabbed-header-renderer {
border-radius: 0px !important;
}
ytd-browse[darker-dark-theme][page-subtype="playlist"], ytd-browse[darker-dark-theme][page-subtype="show"] {
background-color: var(--yt-spec-general-background-b) !important;
}
ytd-two-column-browse-results-renderer.ytd-browse[background-refresh] {
background-color: var(--yt-spec-general-background-b) !important;
}
.yt-sans-20.yt-dynamic-sizing-formatted-string, .yt-sans-22.yt-dynamic-sizing-formatted-string, .yt-sans-24.yt-dynamic-sizing-formatted-string, .yt-sans-28.yt-dynamic-sizing-formatted-string, yt-text-input-form-field-renderer[component-style="INLINE_FORM_STYLE_TITLE"][amsterdam] tp-yt-paper-input.yt-text-input-form-field-renderer .input-content.tp-yt-paper-input-container > input {
font-family: "Roboto", "Arial", sans-serif !important;
font-size: 2.4rem !important;
line-height: 3.2rem !important;
font-weight: 400 !important;
}
ytd-browse[page-subtype=playlist][amsterdam] {
padding-top: 0 !important;
}
ytd-browse[page-subtype=playlist][amsterdam] ytd-playlist-header-renderer.ytd-browse {
margin-left: 0 !important;
height: calc(100vh - var(--ytd-toolbar-height)) !important;
}
.immersive-header-container.ytd-playlist-header-renderer {
margin-bottom: 0 !important;
border-radius: 0 !important;
}
.image-wrapper.ytd-hero-playlist-thumbnail-renderer {
border-radius: 0 !important;
}
ytd-playlist-header-renderer, yt-formatted-string[has-link-only_]:not([force-default-style]) a.yt-simple-endpoint.yt-formatted-string:visited, .metadata-stats.ytd-playlist-byline-renderer, .yt-spec-button-shape-next--overlay.yt-spec-button-shape-next--text, ytd-text-inline-expander.ytd-playlist-header-renderer {
color: var(--yt-spec-text-primary) !important;
--ytd-text-inline-expander-button-color: var(--yt-spec-text-primary) !important;
}
ytd-dropdown-renderer[no-underline] tp-yt-paper-dropdown-menu-light .tp-yt-paper-dropdown-menu-light[style-target=input], tp-yt-iron-icon.tp-yt-paper-dropdown-menu-light {
color: var(--yt-spec-text-primary) !important;
}
.yt-spec-button-shape-next--overlay.yt-spec-button-shape-next--tonal, .yt-spec-button-shape-next--overlay.yt-spec-button-shape-next--filled {
background: transparent !important;
color: var(--yt-spec-text-primary) !important;
border-radius: 2px !important;
text-transform: uppercase;
}
.metadata-text-wrapper.ytd-playlist-header-renderer {
--yt-endpoint-color: var(--yt-spec-text-primary) !important;
--yt-endpoint-hover-color: var(--yt-spec-text-primary) !important;
}
div.immersive-header-background-wrapper.style-scope.ytd-playlist-header-renderer > div {
background: var(--yt-spec-general-background-a) !important;
}
#contents > ytd-playlist-video-list-renderer {
background: var(--yt-spec-general-background-b) !important;
margin-right: 0px !important;
}
ytd-browse[page-subtype=playlist][amsterdam] #alerts.ytd-browse {
padding-left: 388px !important;
padding-right: 0px !important;
margin-bottom: 0 !important;
}
ytd-alert-with-button-renderer[type=INFO], ytd-alert-with-button-renderer[type=SUCCESS] {
background: var(--yt-spec-general-background-a) !important;
}
.yt-spec-button-shape-next--overlay.yt-spec-button-shape-next--tonal {
background: var(--yt-spec-base-background);
}
iron-input.tp-yt-paper-input > input.tp-yt-paper-input,
textarea.tp-yt-iron-autogrow-textarea {
color: var(--yt-spec-text-primary) !important;
}
#labelAndInputContainer.tp-yt-paper-input-container > label, #labelAndInputContainer.tp-yt-paper-input-container > .paper-input-label {
color: var(--yt-spec-text-secondary);
}
.unfocused-line.tp-yt-paper-input-container, .focused-line.tp-yt-paper-input-container {
border-bottom-color: var(--yt-spec-text-primary) !important;
}
[page-subtype="history"] #channel-header.ytd-tabbed-page-header {
background-color: var(--yt-spec-general-background-a) !important;
padding-top: 0 !important;
padding-bottom: 0 !important;
}
.page-header-view-model-wiz__page-header-title--page-header-title-large {
margin-top: 24px !important;
margin-bottom: 8px !important;
color: var(--yt-spec-text-primary) !important;
font-size: 1.6em !important;
line-height: 1.4em !important;
font-weight: 500 !important;
}
#endpoint.yt-simple-endpoint.ytd-mini-guide-entry-renderer.style-scope[title="Shorts"] {
display: none !important;
}
#endpoint.yt-simple-endpoint.ytd-guide-entry-renderer.style-scope[title="Trending"] {
display: none !important;
}
#endpoint.yt-simple-endpoint.ytd-guide-entry-renderer.style-scope[title="Podcasts"] {
display: none !important;
}
ytd-guide-entry-renderer > a[href*="/channel/UCkYQyvc_i9hXEo4xic9Hh2g"] {
display: none !important;
}
.yt-tab-shape-wiz {
padding: 0 32px !important;
margin-right: 0 !important;
}
.yt-tab-shape-wiz__tab {
font-size: 14px !important;
font-weight: 500 !important;
letter-spacing: var(--ytd-tab-system-letter-spacing) !important;
text-transform: uppercase !important;
}
.yt-tab-group-shape-wiz__slider {
display: none !important;
}
.yt-tab-shape-wiz__tab-bar {
display: none !important;
}
yt-formatted-string.style-scope.yt-chip-cloud-chip-renderer, span.style-scope.ytd-rich-shelf-renderer {
font-weight: 400 !important;
}
span.style-scope.ytd-shelf-renderer, ytd-reel-shelf-renderer[modern-typography] #title.ytd-reel-shelf-renderer {
font-size: 1.6rem !important;
font-weight: 500 !important;
}
.count-text.ytd-comments-header-renderer {
font-size: 1.6rem !important;
line-height: 2.2rem !important;
font-weight: 400 !important;
}
ytd-item-section-renderer.style-scope.ytd-watch-next-secondary-results-renderer > div#contents.style-scope.ytd-item-section-renderer > ytd-reel-shelf-renderer.style-scope.ytd-item-section-renderer, ytd-reel-shelf-renderer.ytd-structured-description-content-renderer {
display: none !important;
}
ytd-video-description-infocards-section-renderer.style-scope.ytd-structured-description-content-renderer > #header.ytd-video-description-infocards-section-renderer, ytd-video-description-infocards-section-renderer.style-scope.ytd-structured-description-content-renderer > #action-buttons.ytd-video-description-infocards-section-renderer {
display: none !important;
}
ytd-video-description-infocards-section-renderer.style-scope.ytd-structured-description-content-renderer {
border-top: 0px !important;
}
button.ytp-button.ytp-jump-button.ytp-jump-button-enabled {
display: none !important;
}
ytd-player#ytd-player.style-scope.ytd-watch-flexy > div#container.style-scope.ytd-player > .html5-video-player > div.ytp-chrome-bottom > div.ytp-chrome-controls > div.ytp-left-controls > a.ytp-next-button.ytp-button {
display: block !important;
}
div#chip-bar.style-scope.ytd-search-header-renderer > yt-chip-cloud-renderer.style-scope.ytd-search-header-renderer > div#container.style-scope.yt-chip-cloud-renderer {
display: none !important;
}
#play.ytd-moving-thumbnail-renderer {
color: #fff !important;
}
/* Fix disappearing bar in masthead */
#background.ytd-masthead {
opacity: 1 !important;
}`
waitForElem('head').then(() => document.head.append(fixesStyle));
(() => {
const css = [
'[d*="M18 11C18 14.866 14.866 18 11 18C7.13401 18 4 14.866 4 11C4 7.13401 7.13401 4 11 4C14.866 4 18 7.13401 18 11ZM16.2961 16.9961C14.8853 18.2431 13.031 19 11 19C6.58172 19 3 15.4183 3 11C3 6.58172 6.58172 3 11 3C15.4183 3 19 6.58172 19 11C19 13.0274 18.2458 14.8786 17.0028 16.2885L20.5583 19.8441L20.9119 20.1976L20.2048 20.9047L19.8512 20.5512L16.2961 16.9961Z"] {',
'd: path("m20.87 20.17-5.59-5.59C16.35 13.35 17 11.75 17 10c0-3.87-3.13-7-7-7s-7 3.13-7 7 3.13 7 7 7c1.75 0 3.35-.65 4.58-1.71l5.59 5.59.7-.71zM10 16c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6z")',
'}',
'[d*="m12.71 12 8.15 8.15-.71.71L12 12.71l-8.15 8.15-.71-.71L11.29 12 3.15 3.85l.71-.71L12 11.29l8.15-8.15.71.71L12.71 12z"] {',
'd: path("M12.7,12l6.6,6.6l-0.7,0.7L12,12.7l-6.6,6.6l-0.7-0.7l6.6-6.6L4.6,5.4l0.7-0.7l6.6,6.6l6.6-6.6l0.7,0.7L12.7,12z")',
'}'
].join('\n')
const btnStyle = document.createElement('style')
btnStyle.type = 'text/css' ; btnStyle.textContent = css
const heads = document.getElementsByTagName('head'),
btnStyleParent = heads.length > 0 ? heads[0] : document.documentElement
btnStyleParent.appendChild(btnStyle)
})()
Object.defineProperties(document, { 'hidden': {value: false}, 'webkitHidden': {value: false}, 'visibilityState': {value: 'visible'}, 'webkitVisibilityState': {value: 'visible'} });
setInterval(function(){
document.dispatchEvent( new KeyboardEvent( 'keyup', { bubbles: true, cancelable: true, keyCode: 143, which: 143 } ) );
}, 60000)
const extConfig = {
// BEGIN USER OPTIONS
// You may change the following variables to allowed values listed in the corresponding brackets (* means default). Keep the style and keywords intact.
showUpdatePopup: false, // [true, false*] Show a popup tab after extension update (See what's new)
disableVoteSubmission: false, // [true, false*] Disable like/dislike submission (Stops counting your likes and dislikes)
coloredThumbs: false, // [true, false*] Colorize thumbs (Use custom colors for thumb icons)
coloredBar: false, // [true, false*] Colorize ratio bar (Use custom colors for ratio bar)
colorTheme: 'classic', // [classic*, accessible, neon] Color theme (red/green, blue/yellow, pink/cyan)
numberDisplayFormat: 'compactShort', // [compactShort*, compactLong, standard] Number format (For non-English locale users, you may be able to improve appearance with a different option. Please file a feature request if your locale is not covered)
numberDisplayRoundDown: true, // [true*, false] Round down numbers (Show rounded down numbers)
tooltipPercentageMode: 'none', // [none*, dash_like, dash_dislike, both, only_like, only_dislike] Mode of showing percentage in like/dislike bar tooltip.
numberDisplayReformatLikes: false // [true, false*] Re-format like numbers (Make likes and dislikes format consistent)
// END USER OPTIONS
};
let previousState = 3; // 1=LIKED, 2=DISLIKED, 3=NEUTRAL
let likesvalue = 0;
let dislikesvalue = 0;
let isMobile = location.hostname == 'm.youtube.com';
let isShorts = () => location.pathname.startsWith('/shorts');
let mobileDislikes = 0;
function cLog(text, subtext = '') {
subtext = subtext.trim() === '' ? '' : `(${subtext})`;
console.log(`[Return YouTube Dislikes] ${text} ${subtext}`);
}
function isInViewport(element) {
const rect = element.getBoundingClientRect();
const height = innerHeight || document.documentElement.clientHeight;
const width = innerWidth || document.documentElement.clientWidth;
return (
// When short (channel) is ignored, the element (like/dislike AND short itself) is
// hidden with a 0 DOMRect. In this case, consider it outside of Viewport
!(rect.top == 0 && rect.left == 0 && rect.bottom == 0 && rect.right == 0) &&
rect.top >= 0 &&
rect.left >= 0 &&
rect.bottom <= height &&
rect.right <= width
);
}
function getButtons() {
if (isShorts()) {
let elements = document.querySelectorAll(
isMobile
? 'ytm-like-button-renderer'
: '#like-button > ytd-like-button-renderer'
);
for (let element of elements) {
if (isInViewport(element)) {
return element;
}
}
}
if (isMobile) {
return (
document.querySelector('.slim-video-action-bar-actions .segmented-buttons') ??
document.querySelector('.slim-video-action-bar-actions')
);
}
if (document.getElementById('menu-container')?.offsetParent === null) {
return (
document.querySelector('ytd-menu-renderer.ytd-watch-metadata > div') ??
document.querySelector('ytd-menu-renderer.ytd-video-primary-info-renderer > div')
);
} else {
return document
.getElementById('menu-container')
?.querySelector('#top-level-buttons-computed');
}
}
function getLikeButton() {
return getButtons().children[0].tagName ===
'YTD-SEGMENTED-LIKE-DISLIKE-BUTTON-RENDERER'
? getButtons().children[0].children[0]
: getButtons().children[0];
}
function getLikeTextContainer() {
return (
getLikeButton().querySelector('#text') ??
getLikeButton().getElementsByTagName('yt-formatted-string')[0] ??
getLikeButton().querySelector('span[role="text"]')
);
}
function getDislikeButton() {
return getButtons().children[0].tagName ===
'YTD-SEGMENTED-LIKE-DISLIKE-BUTTON-RENDERER'
? getButtons().children[0].children[1]
: getButtons().children[1];
}
function getDislikeTextContainer() {
let result =
getDislikeButton().querySelector('#text') ??
getDislikeButton().getElementsByTagName('yt-formatted-string')[0] ??
getDislikeButton().querySelector('span[role="text"]')
if (result === null) {
let textSpan = document.createElement('span');
textSpan.id = 'text';
textSpan.style.marginLeft = '2px';
getDislikeButton().querySelector('button').appendChild(textSpan);
getDislikeButton().querySelector('button').style.width = 'auto';
result = getDislikeButton().querySelector('#text');
}
return result;
}
let mutationObserver = new Object();
if (isShorts() && mutationObserver.exists !== true) {
cLog('initializing mutation observer');
mutationObserver.options = {
childList: false,
attributes: true,
subtree: false
};
mutationObserver.exists = true;
mutationObserver.observer = new MutationObserver(function(mutationList) {
mutationList.forEach((mutation) => {
if (
mutation.type === 'attributes' &&
mutation.target.nodeName === 'TP-YT-PAPER-BUTTON' &&
mutation.target.id === 'button'
) {
cLog('Short thumb button status changed');
if (mutation.target.getAttribute('aria-pressed') === 'true') {
mutation.target.style.color =
mutation.target.parentElement.parentElement.id === 'like-button'
? getColorFromTheme(true)
: getColorFromTheme(false);
} else {
mutation.target.style.color = 'unset';
}
return;
}
cLog('unexpected mutation observer event: ' + mutation.target + mutation.type);
})})
}
function checkForUserAvatarButton() {
if (isMobile) { return; }
if (document.querySelector('#avatar-btn')) { return true;
} else { return false; }
}
function setLikes(likesCount) {
if (isMobile) {
getButtons().children[0].querySelector('.button-renderer-text').innerText =
likesCount;
return;
}
getLikeTextContainer().innerText = likesCount;
}
function setDislikes(dislikesCount) {
if (isMobile) {
mobileDislikes = dislikesCount;
return;
}
getDislikeTextContainer()?.removeAttribute('is-empty');
getDislikeTextContainer().innerText = dislikesCount;
}
function getLikeCountFromButton() {
try {
if (isShorts()) { return false; }
let likeButton = getLikeButton().querySelector('yt-formatted-string#text') ??
getLikeButton().querySelector('button');
let likesStr = likeButton.getAttribute('aria-label').replace(/\D/g, '');
return likesStr.length > 0 ? parseInt(likesStr) : false;
}
catch { return false; }
}
function createRateBar(likes, dislikes) {
if (isMobile) { return; }
let rateBar = document.getElementById('return-youtube-dislike-bar-container');
const widthPx =
getButtons().children[0].clientWidth +
getButtons().children[1].clientWidth +
8;
const widthPercent = likes + dislikes > 0 ? (likes / (likes + dislikes)) * 100 : 50;
var likePercentage = parseFloat(widthPercent.toFixed(1));
const dislikePercentage = (100 - likePercentage).toLocaleString();
likePercentage = likePercentage.toLocaleString();
var tooltipInnerHTML;
switch (extConfig.tooltipPercentageMode) {
case 'dash_like':
tooltipInnerHTML = `${likes.toLocaleString()} / ${dislikes.toLocaleString()} - ${likePercentage}%`;
break;
case 'dash_dislike':
tooltipInnerHTML = `${likes.toLocaleString()} / ${dislikes.toLocaleString()} - ${dislikePercentage}%`;
break;
case 'both':
tooltipInnerHTML = `${likePercentage}% / ${dislikePercentage}%`;
break;
case 'only_like':
tooltipInnerHTML = `${likePercentage}%`;
break;
case 'only_dislike':
tooltipInnerHTML = `${dislikePercentage}%`;
break;
default:
tooltipInnerHTML = `${likes.toLocaleString()} / ${dislikes.toLocaleString()}`;
}
if (!rateBar && !isMobile) {
let colorDislikeStyle = '';
if (extConfig.coloredBar) {
colorDislikeStyle = '; background-color: ' + getColorFromTheme(false);
}
document.getElementById('menu-container').insertAdjacentHTML(
'beforeend',
`
<div class="ryd-tooltip" style="width: ${widthPx}px">
<div class="ryd-tooltip-bar-container">
<div
id="return-youtube-dislike-bar-container"
style="width: 100%; height: 2px;${colorDislikeStyle}"
>
<div
id="return-youtube-dislike-bar"
style="width: ${widthPercent}%; height: 100%${colorDislikeStyle}"
></div>
</div>
</div>
<tp-yt-paper-tooltip position="top" id="ryd-dislike-tooltip" class="style-scope ytd-sentiment-bar-renderer" role="tooltip" tabindex="-1">
<!--css-build:shady-->${tooltipInnerHTML}
</tp-yt-paper-tooltip>
</div>`
);
} else {
document.getElementById(
'return-youtube-dislike-bar-container'
).style.width = widthPx + 'px';
document.getElementById('return-youtube-dislike-bar').style.width =
widthPercent + '%';
document.querySelector('#ryd-dislike-tooltip > #tooltip').innerHTML =
tooltipInnerHTML;
if (extConfig.coloredBar) {
document.getElementById(
'return-youtube-dislike-bar-container'
).style.backgroundColor = getColorFromTheme(false);
document.getElementById(
'return-youtube-dislike-bar'
).style.backgroundColor = getColorFromTheme(true);
}
}
}
function setState() {
cLog('Fetching votes...');
let statsSet = false;
fetch(
`https://returnyoutubedislikeapi.com/votes?videoId=${getVideoId()}`
).then((response) => {
response.json().then((json) => {
if (json && !('traceId' in response) && !statsSet) {
const { dislikes, likes } = json;
cLog(`Received count: ${dislikes}`);
likesvalue = likes;
dislikesvalue = dislikes;
setDislikes(numberFormat(dislikes));
if (extConfig.numberDisplayReformatLikes === true) {
const nativeLikes = getLikeCountFromButton();
if (nativeLikes !== false) {
setLikes(numberFormat(nativeLikes));
}
}
createRateBar(likes, dislikes);
if (extConfig.coloredThumbs === true) {
if (isShorts()) {
// for shorts, leave deactived buttons in default color
let shortLikeButton = getLikeButton().querySelector(
'tp-yt-paper-button#button'
);
let shortDislikeButton = getDislikeButton().querySelector(
'tp-yt-paper-button#button'
);
if (shortLikeButton.getAttribute('aria-pressed') === 'true') {
shortLikeButton.style.color = getColorFromTheme(true);
}
if (shortDislikeButton.getAttribute('aria-pressed') === 'true') {
shortDislikeButton.style.color = getColorFromTheme(false);
}
mutationObserver.observer.observe(
shortLikeButton,
mutationObserver.options
);
mutationObserver.observer.observe(
shortDislikeButton,
mutationObserver.options
);
} else {
getLikeButton().style.color = getColorFromTheme(true);
getDislikeButton().style.color = getColorFromTheme(false);
}
}
}
});
});
}
function likeClicked() {
if (checkForUserAvatarButton() == true) {
if (previousState == 1) {
likesvalue--;
createRateBar(likesvalue, dislikesvalue);
setDislikes(numberFormat(dislikesvalue));
previousState = 3;
} else if (previousState == 2) {
likesvalue++;
dislikesvalue--;
setDislikes(numberFormat(dislikesvalue));
createRateBar(likesvalue, dislikesvalue);
previousState = 1;
} else if (previousState == 3) {
likesvalue++;
createRateBar(likesvalue, dislikesvalue);
previousState = 1;
}
if (extConfig.numberDisplayReformatLikes === true) {
const nativeLikes = getLikeCountFromButton();
if (nativeLikes !== false) { setLikes(numberFormat(nativeLikes)); }
}
}
}
function dislikeClicked() {
if (checkForUserAvatarButton() == true) {
if (previousState == 3) {
dislikesvalue++;
setDislikes(numberFormat(dislikesvalue));
createRateBar(likesvalue, dislikesvalue);
previousState = 2;
} else if (previousState == 2) {
dislikesvalue--;
setDislikes(numberFormat(dislikesvalue));
createRateBar(likesvalue, dislikesvalue);
previousState = 3;
} else if (previousState == 1) {
likesvalue--;
dislikesvalue++;
setDislikes(numberFormat(dislikesvalue));
createRateBar(likesvalue, dislikesvalue);
previousState = 2;
if (extConfig.numberDisplayReformatLikes === true) {
const nativeLikes = getLikeCountFromButton();
if (nativeLikes !== false) { setLikes(numberFormat(nativeLikes)); }
}
}
}
}
function setInitialState() { setState(); }
function getVideoId() {
const urlObject = new URL(unsafeWindow.location.href);
const pathname = urlObject.pathname;
if (pathname.startsWith('/clip')) { return document.querySelector('meta[itemprop="videoId"]').content;
} else {
if (pathname.startsWith('/shorts')) { return pathname.slice(8); }
return urlObject.searchParams.get('v');
}
}
function isVideoLoaded() {
if (isMobile) { return document.getElementById('player').getAttribute('loading') == 'false'; }
const videoId = getVideoId();
return ( document.querySelector(`ytd-watch-flexy[video-id='${videoId}']`) !== null );
}
function roundDown(num) {
if (num < 1000) return num;
const int = Math.floor(Math.log10(num) - 2);
const decimal = int + (int % 3 ? 1 : 0);
const value = Math.floor(num / 10 ** decimal);
return value * 10 ** decimal;
}
function numberFormat(numberState) {
let numberDisplay;
if (extConfig.numberDisplayRoundDown === false) { numberDisplay = numberState;
} else { numberDisplay = roundDown(numberState); }
return getNumberFormatter(extConfig.numberDisplayFormat).format(numberDisplay);
}
function getNumberFormatter(optionSelect) {
let userLocales;
if (document.documentElement.lang) { userLocales = document.documentElement.lang;
} else if (navigator.language) { userLocales = navigator.language;
} else {
try {
userLocales = new URL(
Array.from(document.querySelectorAll('head > link[rel="search"]'))
?.find((n) => n?.getAttribute('href')?.includes('?locale='))
?.getAttribute('href')
)?.searchParams?.get('locale');
} catch {
cLog('Cannot find browser locale. Use en as default for number formatting.');
userLocales = 'en';
}
}
let formatterNotation;
let formatterCompactDisplay;
switch (optionSelect) {
case 'compactLong':
formatterNotation = 'compact';
formatterCompactDisplay = 'long';
break;
case 'standard':
formatterNotation = 'standard';
formatterCompactDisplay = 'short';
break;
case 'compactShort':
default:
formatterNotation = 'compact';
formatterCompactDisplay = 'short';
}
const formatter = Intl.NumberFormat(userLocales, {
notation: formatterNotation,
compactDisplay: formatterCompactDisplay
});
return formatter;
}
function getColorFromTheme(voteIsLike) {
let colorString;
switch (extConfig.colorTheme) {
case 'accessible':
if (voteIsLike === true) {
colorString = 'dodgerblue';
} else { colorString = 'gold'; }
break;
case 'neon':
if (voteIsLike === true) {
colorString = 'aqua';
} else { colorString = 'magenta'; }
break;
case 'classic':
default:
if (voteIsLike === true) {
colorString = 'lime';
} else { colorString = 'red'; }
}
return colorString;
}
function setEventListeners() {
let jsInitChecktimer;
function checkForJS_Finish() {
if (isShorts() || (getButtons()?.offsetParent && isVideoLoaded())) {
const buttons = getButtons();
if (!unsafeWindow.returnDislikeButtonlistenersSet) {
cLog('Registering button listeners...');
try {
buttons.children[0].addEventListener('click', likeClicked);
buttons.children[1].addEventListener('click', dislikeClicked);
buttons.children[0].addEventListener('touchstart', likeClicked);
buttons.children[1].addEventListener('touchstart', dislikeClicked);
} catch { return; }
unsafeWindow.returnDislikeButtonlistenersSet = true;
}
setInitialState();
clearInterval(jsInitChecktimer);
}
}
cLog('Setting up...');
jsInitChecktimer = setInterval(checkForJS_Finish, 111);
}
(function() {
unsafeWindow.addEventListener('yt-navigate-finish', setEventListeners, true);
setEventListeners();
})();
if (isMobile) {
let originalPush = history.pushState;
history.pushState = function(...args) {
unsafeWindow.returnDislikeButtonlistenersSet = false;
setEventListeners(args[2]);
return originalPush.apply(history, args);
};
setInterval(() => {
if (getDislikeButton().querySelector('.button-renderer-text') === null) {
getDislikeTextContainer().innerText = mobileDislikes;
} else { getDislikeButton().querySelector('.button-renderer-text').innerText = mobileDislikes; }
}, 1000);
}
// Remove homepage ads/rich sections
let locationPath = location.pathname
const adObsConfig = { childList: true, subtree: true }
const adObserver = new MutationObserver(() => {
if (location.pathname != locationPath) { // page changed, re-observe
locationPath = location.pathname ; adObserver.disconnect()
waitForElem('html').then(() => adObserver.observe(document.documentElement, adObsConfig))
} else if (locationPath == '/') { // remove homepage stuff
const adSlot = document.querySelector('ytd-ad-slot-renderer'),
richSection = document.querySelector('ytd-rich-section-renderer')
adSlot?.closest('[rendered-from-rich-grid]')?.remove() ; richSection?.remove()
}
})
waitForElem('html').then(() => adObserver.observe(document.documentElement, adObsConfig))
})()