您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Restores the appbar used in the classic Hitchhiker YouTube layout
- // ==UserScript==
- // @name Restore App Bar
- // @namespace http://tampermonkey.net/
- // @version 1.1
- // @description Restores the appbar used in the classic Hitchhiker YouTube layout
- // @author BowDown097 and whoever made it originally
- // @match https://www.youtube.com/*
- // @icon https://www.google.com/s2/favicons?domain=youtube.com
- // @grant GM_addStyle
- // ==/UserScript==
- if (typeof GM_addStyle !== "function") {
- function GM_addStyle(css) {
- let style = document.createElement('style');
- style.type = 'text/css';
- style.appendChild(document.createTextNode(css));
- const head = document.getElementsByTagName('head')[0];
- if (head) head.appendChild(style);
- else document.documentElement.appendChild(style);
- }
- }
- function waitForElement(selector) {
- return new Promise(resolve => {
- if (document.querySelector(selector)) {
- return resolve(document.querySelector(selector));
- }
- const observer = new MutationObserver(mutations => {
- if (document.querySelector(selector)) {
- resolve(document.querySelector(selector));
- observer.disconnect();
- }
- });
- observer.observe(document, {
- childList: true,
- subtree: true
- });
- });
- }
- function navigate(url, browseId) {
- document.querySelector("ytd-app").insertAdjacentHTML("beforeend", '<ytd-guide-entry-renderer class="ytd-guide-entry-renderer navigateTemp"></ytd-guide-entry-renderer>');
- document.querySelector(".navigateTemp").data = {};
- document.querySelector(".navigateTemp").data.navigationEndpoint = {
- "clickTrackingParams": "CJEBELUsGAIiEwi3y-qlp9bxAhVchuUHHSLSCts=",
- "commandMetadata": {
- "webCommandMetadata": {
- "url": url,
- "webPageType": "WEB_PAGE_TYPE_BROWSE",
- "rootVe": 6827,
- "apiUrl": "/youtubei/v1/browse"
- }
- },
- "browseEndpoint": {
- "browseId": browseId
- }
- };
- document.querySelector(".navigateTemp").click();
- document.querySelector(".navigateTemp").remove();
- }
- function navBar() {
- const hasMyChannel = document.querySelector("#items > ytd-guide-entry-renderer:nth-child(2) .guide-icon").getComputedStyleValue("content") == "url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAOFJREFUeJztlL0Ng0AMhWlSZ5QMkU0o6KjpIlLAHSNkgkyQLbICA6RPT/hEAk8WxwWJKoolS5Z/3vnZhiT5y0cuvtiXZXny3t/run6i2PiIrQKrqvPROdf22gW0JWcN2FhMV3mRH1BsjUVBoaKd9TQ7pYeNTztdpM98tAPmZnPwaQ41QUBLaaDl0mkcLrVxaoKA9nUtmnssxCIG2DZNc0PnNr8IqF0AwGZtDr43eJyyLOWRZdkulEeMnOhS9Gx0GVZkOctnMyRPh93P5wpFOkKx8X192AZ0m09P6W/2c/hteQFIL1T2NRIk0wAAAABJRU5ErkJggg==\")";
- let headers = [{
- text: document.querySelector("ytd-guide-entry-renderer:first-child yt-formatted-string").innerHTML
- }, {
- text: hasMyChannel ? document.querySelector("ytd-guide-entry-renderer:nth-child(3) yt-formatted-string").innerHTML : document.querySelector("ytd-guide-entry-renderer:nth-child(2) yt-formatted-string").innerHTML
- }, {
- text: hasMyChannel ? document.querySelector("ytd-guide-entry-renderer:nth-child(5) yt-formatted-string").innerHTML : document.querySelector("ytd-guide-entry-renderer:nth-child(4) yt-formatted-string").innerHTML
- }];
- let appbar = document.createElement("div");
- let appbarNav = document.createElement("ul");
- for (const header of headers)
- {
- let item = document.createElement("li");
- let text = document.createElement("span");
- text.href = header.href;
- text.innerHTML = header.text;
- item.appendChild(text);
- appbarNav.appendChild(item);
- }
- let home = document.querySelector(`ytd-browse[role="main"][page-subtype="home"]`);
- let trending = document.querySelector(`ytd-browse[role="main"][page-subtype="trending"]`);
- let subscriptions = document.querySelector(`ytd-browse[role="main"][page-subtype="subscriptions"]`);
- home?.appendChild(appbar).appendChild(appbarNav);
- trending?.appendChild(appbar).appendChild(appbarNav);
- subscriptions?.appendChild(appbar).appendChild(appbarNav);
- appbar.className = "ytcp-main-appbar";
- appbarNav.className = "ytcp-appbar-nav";
- appbarNav.childNodes[0].className = "ytcp-nav-home ytcp-nav-item";
- appbarNav.childNodes[1].className = "ytcp-nav-trending ytcp-nav-item";
- appbarNav.childNodes[2].className = "ytcp-nav-subs ytcp-nav-item";
- appbarNav.childNodes[0].addEventListener("click", () => navigate("/", "FEwhat_to_watch"));
- appbarNav.childNodes[1].addEventListener("click", () => navigate("/feed/trending", "FEexplore"));
- appbarNav.childNodes[2].addEventListener("click", () => navigate("/feed/subscriptions", "FEsubscriptions"));
- }
- function setupNavbar() {
- if (!["/", "/feed/trending", "/feed/subscriptions"].includes(window.location.pathname)) return;
- waitForElement("ytd-guide-entry-renderer").then(() => navBar());
- document.querySelector("[hidden] .ytcp-main-appbar")?.remove();
- }
- (function() {
- 'use strict';
- window.addEventListener("yt-page-data-updated", setupNavbar, false);
- GM_addStyle(`
- .ytcp-main-appbar {
- margin: -12px;
- width: 100%;
- text-align: center;
- line-height: 40px;
- height: 40px;
- border-bottom: 1px solid #e8e8e8;
- border-left: 1px solid #e8e8e8;
- background-color: #fff;
- position: fixed;
- z-index: 2001;
- font-size: 13px;
- font-family: Roboto, arial, sans-serif;
- }
- html:not([dark]) .ytcp-nav-item {
- display: inline-block;
- margin-left: 30px;
- }
- html:not([dark]) .ytcp-nav-item span {
- display: inline-block;
- color: #666;
- text-decoration: none;
- cursor: pointer;
- }
- html:not([dark]) .ytcp-nav-item span:hover {
- box-shadow: inset 0 -3px #cc181e;
- }
- html:not([dark]) [page-subtype="home"] .ytcp-nav-home span,
- html:not([dark]) [page-subtype="subscriptions"] .ytcp-nav-subs span,
- html:not([dark]) [page-subtype="trending"] .ytcp-nav-trending span {
- box-shadow: inset 0 -3px #cc181e;
- color: #333;
- }
- html:not([dark]) .ytcp-appbar-nav {
- display: inline-block;
- vertical-align: top;
- overflow: hidden;
- }
- html[dark] .ytcp-main-appbar {
- width: 100%;
- text-align: center;
- line-height: 40px;
- height: 40px;
- background-color: var(--yt-spec-brand-background-primary);
- border-bottom: 1px solid var(--yt-spec-10-percent-layer);
- border-left: 1px solid var(--yt-spec-10-percent-layer);
- position: fixed;
- z-index: 2001;
- font-size: 13px;
- font-family: Roboto, arial, sans-serif;
- box-shadow: inset 0 1px #0f0f0f;
- }
- html[dark] .ytcp-nav-item {
- display: inline-block;
- margin-left: 30px;
- }
- html[dark] .ytcp-nav-item span {
- display: inline-block;
- color: #8f8f8f;
- text-decoration: none;
- cursor: pointer;
- }
- html[dark] .ytcp-nav-item span:hover {
- box-shadow: inset 0 -3px #dcdcdc;
- }
- html[dark] [page-subtype="home"] .ytcp-nav-home span,
- html[dark] [page-subtype="subscriptions"] .ytcp-nav-subs span,
- html[dark] [page-subtype="trending"] .ytcp-nav-trending span {
- box-shadow: inset 0 -3px #dcdcdc;
- color: #c1c1c1;
- }
- html[dark] .ytcp-appbar-nav {
- display: inline-block;
- vertical-align: top;
- overflow: hidden;
- }
- .ytcp-load-more-button {
- margin: 20px auto;
- display: block;
- height: 28px;
- border-radius: 2px;
- cursor: pointer;
- font: 11px Roboto, arial, sans-serif;
- padding: 0 10px;
- font-weight: 500;
- outline: 0;
- }
- .ytcp-load-more-button.ytcp-related {
- margin: 0 auto !important;
- }
- html:not([dark]) .ytcp-load-more-button {
- border: 1px solid #d3d3d3;
- box-shadow: 0 1px 0 rgba(0, 0, 0, .05);
- background-color: #f8f8f8;
- color: #333;
- }
- html:not([dark]) .ytcp-load-more-button:hover {
- border-color: #c6c6c6;
- background-color: #f0f0f0;
- box-shadow: 0 1px 0 rgba(0, 0, 0, .1);
- }
- html:not([dark]) .ytcp-load-more-button:active {
- border-color: #c6c6c6;
- background-color: #e9e9e9;
- box-shadow: inset 0 1px 0 #ddd;
- }
- html[dark] .ytcp-load-more-button {
- border: 0;
- background-color: #2e2e2e;
- color: #c1c1c1;
- }
- html[dark] .ytcp-load-more-button:hover {
- background-color: #353535;
- }
- html[dark] .ytcp-load-more-button:active {
- background-color: #292929;
- }
- [page-subtype="home"] ytd-two-column-browse-results-renderer,
- [page-subtype="trending"] ytd-two-column-browse-results-renderer,
- [page-subtype="subscriptions"] ytd-two-column-browse-results-renderer,
- [page-subtype="trending"] tp-yt-app-header {
- margin-top: 60px !important;
- }`);
- })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址