YouTube - Change Default Settings

YouTube Custom Default Settings

Stan na 22-12-2024. Zobacz najnowsza wersja.

// ==UserScript==
// @name         YouTube - Change Default Settings
// @name:en      YouTube - Change Default Settings
// @name:ja      YouTubeのデフォルト設定の変更
// @namespace    http://tampermonkey.net/
// @version      2024-12-20
// @description  YouTube Custom Default Settings
// @description:en YouTube Custom Default Settings
// @description:ja YouTubeのデフォルト設定を変更
// @author       ぐらんぴ
// @match        https://www.youtube.com/*
// @icon         https://www.youtube.com/favicon.ico
// @grant        none
// @license      MIT
// ==/UserScript==

const settings = [
    { name: 'liveChat',      default: 'hide', /* show or hide */ key: 'LIVE_CHAT_DISPLAY_STATE_COLLAPSED' },
    { name: 'transcript',    default: 'show', /* show or hide */ key: 'ENGAGEMENT_PANEL_VISIBILITY_EXPANDED' },
    { name: 'autoPlayCount', default: '0', /* 0 or more */ key: '' },
    // Promo
    { name: 'Promo',         default: 'hide', /* show or hide */ key: false },
];
document.addEventListener('yt-page-data-fetched', e =>{
    let res = e.detail.pageData.response
    //console.log(e.detail.pageData);
    settings.forEach(s =>{
        try{
            if(s.name == 'liveChat' && s.default == 'hide') res.contents.twoColumnWatchNextResults.conversationBar.liveChatRenderer.initialDisplayState = s.key;
            if(s.name == 'transcript' && s.default == 'show'){
                let engagementPanels = res.engagementPanels
                engagementPanels.forEach(i =>{
                    if(i.engagementPanelSectionListRenderer.targetId == 'engagement-panel-searchable-transcript') i.engagementPanelSectionListRenderer.visibility = s.key;

                });
            }
            if(s.name == 'autoPlayCount'){
                res.playerOverlays.playerOverlayRenderer.autoplay.playerOverlayAutoplayRenderer.countDownSecs = s.default
                res.playerOverlays.playerOverlayRenderer.autoplay.playerOverlayAutoplayRenderer.countDownSecsForFullscreen = s.default
            }
            // Renderer
            if(s.name == 'promo' && s.default == 'hide'){
                /* ad
                let promos = e.detail.pageData.response.contents.twoColumnSearchResultsRenderer.primaryContents.sectionListRenderer.contents[0].itemSectionRenderer.contents
                promos.forEach(promo =>{ // /results?search_query=
                    if(promo.adSlotRenderer) promo.adSlotRenderer = null
                });
                */
                // promo
                e.detail.pageData.playerResponse.messages[0].mealbarPromoRenderer.isVisible = s.key;
            }
        }catch{}
    });
});