您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Makes Rehike use an alternate universe watch9 layout
// ==UserScript== // @name Alternative video page layout for Rehike // @namespace http://tampermonkey.net/ // @version 1.0.4 // @description Makes Rehike use an alternate universe watch9 layout // @author lightbeam24 // @match *.youtube.com/* // @icon https://www.google.com/s2/favicons?sz=64&domain=youtube.com // @grant none // @license MIT // ==/UserScript== (function() { 'use strict'; /* settings (can be configured by user) */ const expStickyWatchColumns = false; // default: false /* end of settings */ var canGo = false; function timeout(durationMs) { return new Promise((resolve, reject) => { setTimeout(function() { resolve(); }, durationMs); }); } async function waitForElement(elm) { while (null == document.querySelector(elm)) { await new Promise(r => requestAnimationFrame(r)); } await timeout(50).then(function() { canGo = true; return document.querySelector(elm); }); } everyLoadPrep(); document.addEventListener("spfdone", everyLoadPrep); function everyLoadPrep() { if (document.querySelector("#page.watch") != null) { var elm = "#watch-header"; waitForElement(elm).then(function(elm) { if (canGo != false) { if (document.querySelector('#alt-watch9-container') == null) { everyLoad(); } } }); } } function everyLoad() { // grab "experiments" if (expStickyWatchColumns == true) { document.body.classList.add("exp-sticky-watch-columns"); } // create the watch layout itself let container = document.querySelector('#watch-header'); var altWatch9 = document.createElement("div"); altWatch9.id = "alt-watch9-container"; altWatch9.innerHTML = ` <style> @media screen and (min-width: 1294px) and (min-height: 630px) { .watch #watch9-slider { width: calc(1024px - 614px); } .scroller-inner { max-width: 214px !important; } } @media screen and (min-width: 1720px) and (min-height: 980px) { .watch #watch9-slider { width: calc(1280px); } .scroller-inner { max-width: 238px !important; } } .watch9-expand { width: 100%; margin-top: 10px; border-top: 1px solid #ccc; font-size: 11px; font-weight: 600; cursor: pointer; } .expand-inner { border: 1px solid transparent; background: #fff; width: fit-content; margin: 0 auto; margin-top: -10px; padding: 3px 12px; border-radius: 2px; } .expand-inner:hover { border: 1px solid #c6c6c6; border-left-color: rgb(198, 198, 198); background: #f0f0f0; box-shadow: 0 1px 0 rgba(0,0,0,0.10); } .expand-inner:active { border: 1px solid #c6c6c6; border-left-color: rgb(198, 198, 198); background: #e9e9e9; box-shadow: inset 0 1px 0 #ddd; } .expand-button { width: 100%; border-top: 1px solid var(--section-border); text-transform: uppercase; font-size: 11px; color: #767676; font-weight: 600; letter-spacing: -0.5px; cursor: pointer; margin-bottom: -15px; margin-top: 15px; } .expand-button:hover { color: #333; } .expand-button span { margin: 5px 0; display: block; } #watch9-title { font-size: 20px; margin-bottom: 15px; } #watch9-sidebar { max-width: 143px; min-width: 143px; } .exp-sticky-watch-columns .watch9-sidebar-inner { position: sticky; top: 53px; } .sidebar-item { font-size: 12px; padding: 7px 8px; color: #333; width: 83%; border-radius: 2px; cursor: pointer; border: 1px solid transparent; margin: 4px 0; height: 13px; display: block; } button.sidebar-item { width: 95.5%; display: flex; text-align: unset; height: 28px; } .sidebar-item:hover, .sidebar-item:focus { background: #fafafa; border: 1px solid #ccc; } .sidebar-item.active { background: linear-gradient(to top,#b6d7f591,#e3f2ffa3); border: 1px solid #90ccf8; background: linear-gradient(to top,#f0f0f0 0,#f8f8f8 100%); border: 1px solid #c6c6c6; font-weight: 600; background: #f8f8f8; background: linear-gradient(to top,#f0f0f0 0,#f8f8f8 100%); } .sidebar-item:hover::before { margin-top: 2px; border-color: transparent #ccc; content: ''; border-width: 8px 0 8px 8px; border-style: solid; position: absolute; margin-right: -132px; margin-left: 126px; margin-top: 0px; } .sidebar-item:hover::after { content: ''; border-width: 7px 0px 7px 7px; border-style: solid; border-color: transparent #fafafa; position: absolute; margin-right: -137.5px; margin-left: 126px; margin-top: 1px; } .sidebar-item.active::before { margin-top: 2px; border-color: transparent #90ccf8; border-color: transparent #c6c6c6; } .sidebar-item.active::before { content: ''; border-width: 8px 0 8px 8px; border-style: solid; position: absolute; margin-right: -132px; margin-left: 126px; margin-top: 0px; } .sidebar-item.active::after { margin-top: 2px; } .sidebar-item.active::after { content: ''; border-width: 7px 0px 7px 7px; border-style: solid; border-color: transparent #e1effc; border-color: transparent #f4f4f4; border-color: transparent #f8f8f8; border-color: transparent #f4f4f4; position: absolute; margin-right: -137.5px; margin-left: 126px; margin-top: 1px; } .sidebar-item-inner { display: inline; position: absolute; } #watch9-slider { width: calc(854px - 440px); border-left: 1px solid #e8e8e8; border-right: 1px solid #e8e8e8; margin-right: 15px; padding: 0 15px; overflow: clip; } [show-owner="false"] #watch9-slider { width: calc(854px - 420px); } .slider-container { overflow: clip; } .slider-container-inner { display: flex; transition-duration: 0.3s; transform: translateX(0); } .slider { min-width: 100%; margin-right: 0px; padding-right: 0px; } .slider-inner { min-width: 100%; margin-right: 0px; padding-right: 0px; } .toggle-button { color: rgb(96,96,96); font-size: 11px; font-weight: 600; padding: 6px 4px; padding: 3px 4px; cursor: pointer; } .toggle-button-inner { align-items: center; } .toggle-button-icon { opacity: 0.6; display: block; width: 21px; height: 21px; margin-right: 4px; } .watch9:not([scroller-visible="true"]) #watch9-slider:not([state="description"]) #watch9-description { max-height: 156px; } .watch9:not([scroller-visible="false"]) #watch9-slider:not([state="description"]) #watch9-description { max-height: 336px; } #watch9-description, #watch9-description-snippet { font-size: 13px; line-height: 14px; color: #222; } #watch9-description-snippet { margin-top: 70px; margin-top: 44px; margin-top: 15px; } #watch9-description-snippet .desc-snippet { max-height: 58px; overflow: hidden; } .watch9-category { font-size: 11px; color: #333; margin-top: 14px; } .watch9-category .cat-inner { font-weight: 600; margin-right: 24px; } .watch9-header-text { font-size: 13px; line-height: 14px; color: #333; font-weight: 600; } .author-link { color: #333; } .slider:hover .author-link { color: #167ac6; cursor: pointer; } .watch9-upload-date .author-link:hover { text-decoration: underline; } .owner-pfp, .owner-pfp img { width: 48px; height: 48px; background-size: 48px 48px !important; margin-right: 6px; cursor: pointer; } #watch9-owner { width: 250px; } .exp-sticky-watch-columns #watch9-owner .owner-inner { position: sticky; top: 49px; } #watch9-sentiment-actions { /*position: absolute;*/ right: 0; left: 0; margin: 5px 0; flex-direction: row-reverse; border-bottom: 1px solid #e8e8e8; } #watch9-views-info { min-width: 160px; margin-left: auto; } .watch-view-count { line-height: 24px; max-height: 24px; text-align: right; font-size: 19px; color: #666; white-space: nowrap; margin-bottom: 2px; width: fit-content; margin-left: auto; } .video-extras-sparkbars { height: 2px; overflow: hidden; min-width: 160px; width: fit-content; } .video-extras-sparkbar-likes { float: left; height: 2px; background: #167ac6; } .video-extras-sparkbar-dislikes { float: left; height: 2px; background: #ccc; } .owner-videos-scroller { margin-top: 6px; } .owner-videos-scroller button { margin-right: 8px; } [scroller-visible="false"] .scroller-inner { display: none; } .scroller-inner { margin-top: 6px; overflow-y: scroll; border: 1px solid #ccc; padding: 5px; max-height: 250px; } .super-compact-video { cursor: pointer; display: block; } .super-compact-video:not(:last-of-type) { margin-bottom: 6px; } .super-compact-video .thumbnail { height: 45px; width: 80px; } .super-compact-video .thumbnail img { height: 45px; width: 80px; } .super-compact-video .meta { margin-left: 4px; color: #333; font-size: 10px; color: #767676; } .super-compact-video .view-count { display: none; } .super-compact-video .title { color: #126acc; font-weight: 600; font-size: 11px; } .super-compact-video .title:hover { text-decoration: underline; } [show-owner="false"] #watch9-owner { display: none; } [show-owner="true"] #creator.sidebar-item { display: none; } [show-owner="true"] #watch9-owner-slider { display: none; } [state="video-info"] .slider-container-inner { transform: translateX(0%); } [state="description"] .slider-container-inner { transform: translateX(-100%); } [state="add-to"] .slider-container-inner { transform: translateX(-200%); } [state="share"] .slider-container-inner { transform: translateX(-300%); } [state="more-actions"] .slider-container-inner { transform: translateX(-400%); } [show-owner="false"] [state="creator"] .slider-container-inner { transform: translateX(0%); } [show-owner="false"] [state="video-info"] .slider-container-inner { transform: translateX(-100%); } [show-owner="false"] [state="description"] .slider-container-inner { transform: translateX(-200%); } [show-owner="false"] [state="add-to"] .slider-container-inner { transform: translateX(-300%); } [show-owner="false"] [state="share"] .slider-container-inner { transform: translateX(-400%); } [show-owner="false"] [state="more-actions"] .slider-container-inner { transform: translateX(-500%); } .flex { display: flex; } .none { display: none; } #watch7-headline, .owner-pfp, .owner-name-and-sub, #watch8-action-buttons, #action-panel-details, #watch-action-panels { display: none; } #alt-watch9-container { padding-bottom: 12px; } #watch-header .yt-user-info a { white-space: nowrap; max-width: 159px; overflow: clip; text-overflow: ellipsis; } #action-panel-share { margin-left: 2px; max-width: 330px; position: absolute; } </style> <div class="section"> <div class="section-inner"> <div id="watch9-title"> <span>Me at the zoo</span> </div> <div class="section-items watch9" scroller-visible="false" show-owner="true"> <div class="section-items-inner flex"> <div id="watch9-sidebar"> <div class="watch9-sidebar-inner"> <div class="sidebar-item" id="creator"> <div class="sidebar-item-inner"> <span>Creator</span> </div> </div> <div class="sidebar-item active" id="video-info"> <div class="sidebar-item-inner"> <span>Video info</span> </div> </div> <div class="sidebar-item" id="description"> <div class="sidebar-item-inner"> <span>Description</span> </div> </div> <div class="sidebar-item" id="add-to"> <div class="sidebar-item-inner"> <span>Add to playlist</span> </div> </div> <div class="sidebar-item" id="share"> <div class="sidebar-item-inner"> <span>Share this video</span> </div> </div> <div class="sidebar-item" id="more-actions"> <div class="sidebar-item-inner"> <span>More actions</span> </div> </div> </div> </div> <div id="watch9-slider" state="video-info"> <div class="slider-container"> <div class="slider-container-inner"> <div id="watch9-owner-slider" class="slider"> <div class="slider-inner"> </div> </div> <div id="watch9-stats" class="slider"> <div class="slider-inner"> <div id="watch9-sentiment-actions" class="flex"> <div id="watch9-views-info"> <div class="watch-view-count"> ???,??? views </div> <div class="video-extras-sparkbars yt-uix-tooltip"> <div class="video-extras-sparkbar-likes" style="width: 98.0012039305%"> </div> <div class="video-extras-sparkbar-dislikes" style="width: 1.99879606949%"> </div> </div> </div> <div id="ltod"> </div> </div> <div id="watch9-description-snippet"> <div class="desc-snippet"> <div class="watch9-upload-date watch9-header-text"> <span id="first-part"> <span>Uploaded by </span> <a class="author-link spf-link">????</a> <span>on </span> </span> <span id="second-part"> <span class="upload-date">??? ??, ????</span> </span> <span id="third-part"> <span>by </span> <a class="author-link spf-link">????</a> </span> </div> <div class="description-inner"> </div> </div> </div> <div class="watch9-expand"> <div class="expand-inner"> <span>Show more</span> </div> </div> <div class="watch9-category"> </div> </div> </div> <div id="watch9-description" class="slider"> <div class="slider-inner"> <div class="watch9-header-text"> <span>Description</span> </div> <div class="description-inner"> </div> <div class="watch9-expand"> <div class="expand-inner"> <span>Show less</span> </div> </div> </div> </div> <div id="watch9-addto" class="slider"> <div class="slider-inner"> <div class="watch9-header-text"> <span>Add to playlist</span> </div> </div> </div> <div id="watch9-share" class="slider"> <div class="slider-inner"> <!--div class="watch9-header-text"> <span>Share this video</span> </div--> </div> </div> <div id="watch9-more-actions" class="slider"> <div class="slider-inner"> <div class="watch9-header-text"> <span>This feature is unavailable.</span> </div> </div> </div> </div> </div> </div> <div id="watch9-owner"> <div class="owner-inner"> <div class="owner-videos-scroller"> <button class="yt-uix-button yt-uix-button-size-default yt-uix-button-default yt-uix-tooltip"> <span>Videos</span> <span class="yt-uix-button-arrow yt-sprite"></span> </button> <a class="yt-uix-tooltip spf-link" data-tooltip-text="See user's videos"> <span>See all</span> </a> <div class="scroller-inner"> </div> </div> </div> </div> </div> </div> </div> </div> `; container.insertBefore(altWatch9, container.children[0]); var elm = ".watch-time-text"; waitForElement(elm).then(function(elm) { if (canGo != false) { applyMetadata(); } }); function applyMetadata() { if (document.querySelector("#eow-title") != null) { var videoTitle = document.querySelector("#eow-title").textContent; document.querySelector("#watch9-title span").textContent = videoTitle; } if (document.querySelector(".watch-time-text") != null) { var uploadDateRaw = document.querySelector(".watch-time-text").textContent; let notNeedNewString = uploadDateRaw.includes("Published"); if (notNeedNewString == true) { var cutString = uploadDateRaw.split('on '); var uploadDate = cutString[1]; document.querySelector("#first-part").style.display = "inline"; document.querySelector("#third-part").style.display = "none"; } else { var uploadDate = uploadDateRaw; document.querySelector("#first-part").style.display = "none"; document.querySelector("#third-part").style.display = "inline"; } document.querySelector(".watch9-upload-date .upload-date").textContent = uploadDate; } if (document.querySelector("#eow-description") != null) { var descHTML = document.querySelector("#eow-description").innerHTML; document.querySelector(".desc-snippet .description-inner").innerHTML = descHTML; document.querySelector("#watch9-description .description-inner").innerHTML = descHTML; } if (document.querySelector(".yt-user-info") != null) { var authorElem = document.querySelector(".yt-user-info a"); var authorName = authorElem.textContent; var authorLink = document.querySelector(".yt-user-photo").getAttribute("href"); var authorPfp = document.querySelector(".yt-user-photo img").getAttribute("data-thumb"); document.querySelector(".author-link").textContent = authorName; document.querySelector(".author-link").setAttribute("href", authorLink); document.querySelector("#third-part .author-link").textContent = authorName; document.querySelector("#third-part .author-link").setAttribute("href", authorLink); document.querySelector(".owner-videos-scroller a").setAttribute("href", authorLink + "/videos"); document.querySelector(".owner-videos-scroller a").setAttribute("data-tooltip-text", "View " + authorName + "'s videos"); authorElem.classList.add("yt-uix-tooltip"); authorElem.setAttribute("data-tooltip-text", "View " + authorName + "'s channel"); } if (document.querySelector("#watch8-action-buttons") != null) { var viewCount = document.querySelector("#watch8-action-buttons .watch-view-count").textContent; document.querySelector("#watch9-views-info .watch-view-count").textContent = viewCount; var videoLikes = document.querySelector("#watch8-action-buttons .video-extras-sparkbar-likes").getAttribute("style"); var videoDislikes = document.querySelector("#watch8-action-buttons .video-extras-sparkbar-dislikes").getAttribute("style"); document.querySelector("#watch9-stats .video-extras-sparkbar-likes").setAttribute("style", videoLikes); document.querySelector("#watch9-stats .video-extras-sparkbar-dislikes").setAttribute("style", videoDislikes); var ltodBar = document.querySelector("#watch9-stats .video-extras-sparkbars"); var likesPercent = ltodBar.querySelector("#watch9-stats .video-extras-sparkbar-likes").style.width; ltodBar.setAttribute("data-tooltip-text", likesPercent + " of viewers like this video"); ltodBar.style.display = "block"; ltodBar.style.padding = "5px 0"; ltodBar.style.marginBottom = "-5px"; document.querySelector(".watch-view-count").style.marginBottom = "-3px"; } var theAddToBtn = document.querySelector("[data-menu-content-id='yt-uix-videoactionmenu-menu']"); var newHome = document.querySelector('#watch9-addto'); newHome.appendChild(theAddToBtn); var theOwner = document.querySelector("#watch7-user-header"); var newHome2 = document.querySelector('#watch9-owner .owner-inner'); newHome2.insertBefore(theOwner, newHome2.children[0]); var theExtras = document.querySelector("#watch-description-extras"); var newHome3 = document.querySelector('.watch9-category'); newHome3.insertBefore(theExtras, newHome3.children[0]); var theLtod = document.querySelector(".like-button-renderer"); var newHome4 = document.querySelector('#ltod'); newHome4.insertBefore(theLtod, newHome4.children[0]); var theSharePanel = document.querySelector("#action-panel-share"); var newHome5 = document.querySelector('#watch9-share .slider-inner'); newHome5.insertBefore(theSharePanel, newHome5.children[1]); if (document.querySelector("#watch9-owner .owner-inner") != null) { var ownerHTML = document.querySelector("#watch9-owner .owner-inner").innerHTML; document.querySelector("#watch9-owner-slider .slider-inner").innerHTML = ownerHTML; } var creator = document.querySelector("#creator.sidebar-item"); var videoInfo = document.querySelector("#video-info.sidebar-item"); var description = document.querySelector("#description.sidebar-item"); var addTo = document.querySelector("#add-to.sidebar-item"); var share = document.querySelector("#share.sidebar-item"); var moreActions = document.querySelector("#more-actions.sidebar-item"); var showMore = document.querySelector("#watch9-stats .watch9-expand"); var showLess = document.querySelector("#watch9-description .watch9-expand"); var addToBtn = document.querySelector(".addto-button"); var showScroller = document.querySelector(".owner-videos-scroller button"); var showScroller2 = document.querySelector("#watch9-owner .owner-videos-scroller button"); creator.addEventListener("click", function() { creatorClicked(); }); videoInfo.addEventListener("click", function() { vidInfoClicked(); }); description.addEventListener("click", function() { descClicked(); }); showMore.addEventListener("click", function() { descClicked(); }); showLess.addEventListener("click", function() { vidInfoClicked(); }); function creatorClicked() { document.querySelector("#watch9-slider").setAttribute("state", "creator"); document.querySelector(".sidebar-item.active").classList.remove("active"); document.querySelector("#creator.sidebar-item").classList.add("active"); setTimeout(checkIfShowOwner, 10); } function vidInfoClicked() { document.querySelector("#watch9-slider").setAttribute("state", "video-info"); document.querySelector(".sidebar-item.active").classList.remove("active"); document.querySelector("#video-info.sidebar-item").classList.add("active"); setTimeout(checkIfShowOwner, 10); } function descClicked() { document.querySelector("#watch9-slider").setAttribute("state", "description"); document.querySelector(".sidebar-item.active").classList.remove("active"); document.querySelector("#description.sidebar-item").classList.add("active"); setTimeout(checkIfShowOwner, 10); } addTo.addEventListener("click", function() { document.querySelector("#watch9-slider").setAttribute("state", "add-to"); document.querySelector(".sidebar-item.active").classList.remove("active"); document.querySelector("#add-to.sidebar-item").classList.add("active"); setTimeout(checkIfShowOwner, 10); }); share.addEventListener("click", function() { document.querySelector("#watch9-slider").setAttribute("state", "share"); document.querySelector(".sidebar-item.active").classList.remove("active"); document.querySelector("#share.sidebar-item").classList.add("active"); if (document.querySelector("#watch9-share #action-panel-share.hid") != null) { document.querySelector("#watch8-secondary-actions .action-panel-trigger-share").click(); } setTimeout(checkIfShowOwner, 10); }); moreActions.addEventListener("click", function() { document.querySelector("#watch9-slider").setAttribute("state", "more-actions"); document.querySelector(".sidebar-item.active").classList.remove("active"); document.querySelector("#more-actions.sidebar-item").classList.add("active"); setTimeout(checkIfShowOwner, 10); }); showScroller.addEventListener("click", function() { if (document.querySelector(".watch9[scroller-visible='false']") != null) { document.querySelector(".watch9").setAttribute("scroller-visible", "true"); } else { document.querySelector(".watch9").setAttribute("scroller-visible", "false"); } }); showScroller2.addEventListener("click", function() { if (document.querySelector(".watch9[scroller-visible='false']") != null) { document.querySelector(".watch9").setAttribute("scroller-visible", "true"); } else { document.querySelector(".watch9").setAttribute("scroller-visible", "false"); } }); setTimeout(checkIfShowOwner, 200); window.addEventListener("resize", checkIfShowOwner); function checkIfShowOwner() { setTimeout(check, 200); function check() { var playerHeight = document.querySelector("video").style.height; //console.log(playerHeight); if (playerHeight == "360px") { document.querySelector(".section-items.watch9").setAttribute("show-owner", "false"); } else { document.querySelector(".section-items.watch9").setAttribute("show-owner", "true"); if (document.querySelector("#creator.sidebar-item.active") != null) { vidInfoClicked(); } } } } requestData(); function requestData() { const location = window.location; var vidLink = location.href; var cutString1 = vidLink.split('v='); var vidLink2 = cutString1[1]; if (vidLink2.includes('&')) { var cutString2 = vidLink2.split('&'); var vidId = cutString2[0]; } else { var vidId = vidLink2; } //console.log(vidId); setTimeout(doData, 1); function doData() { fetch("https://www.youtube.com/youtubei/v1/next?key=AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8", { "headers": { "accept": "application/json, text/plain, /", "accept-language": "en-US,en;q=0.9", "Content-type": "application/json", "sec-ch-ua-mobile": "?0", "sec-fetch-dest": "empty", "sec-fetch-mode": "cors", "sec-fetch-site": "same-origin", "x-goog-authuser": "0", "x-origin": "https://www.youtube.com/" }, "referrer": "https://www.youtube.com/", "referrerPolicy": "strict-origin-when-cross-origin", "body": JSON.stringify({ "context": { "client": { "clientName": "WEB", "clientVersion": "2.20230301.00.00", "hl": "en", "gl": "US" } }, "videoId": vidId }), "method": "POST", "mode": "cors", "credentials": "include" }).then(response => response.json()).then(data => { var dataFromAPI = data; //console.log(dataFromAPI); doChannelDataPrep(); function doChannelDataPrep() { if (dataFromAPI.contents.twoColumnWatchNextResults.results.results.contents[0].videoPrimaryInfoRenderer != null) { var channelUrl = dataFromAPI.contents.twoColumnWatchNextResults.results.results.contents[1].videoSecondaryInfoRenderer.owner.videoOwnerRenderer.navigationEndpoint.browseEndpoint.browseId; } else if (dataFromAPI.contents.twoColumnWatchNextResults.results.results.contents[1].videoPrimaryInfoRenderer != null) { var channelUrl = dataFromAPI.contents.twoColumnWatchNextResults.results.results.contents[2].videoSecondaryInfoRenderer.owner.videoOwnerRenderer.navigationEndpoint.browseEndpoint.browseId; } setTimeout(doChannelData, 1); function doChannelData() { fetch("https://www.youtube.com/youtubei/v1/browse?key=AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8", { "headers": { "accept": "application/json, text/plain, /", "accept-language": "en-US,en;q=0.9", "Content-type": "application/json", "sec-ch-ua-mobile": "?0", "sec-fetch-dest": "empty", "sec-fetch-mode": "cors", "sec-fetch-site": "same-origin", "x-goog-authuser": "0", "x-origin": "https://www.youtube.com/" }, "referrer": "https://www.youtube.com/", "referrerPolicy": "strict-origin-when-cross-origin", "body": JSON.stringify({ "context": { "client": { "clientName": "WEB", "clientVersion": "2.20230301.00.00", "hl": "en", "gl": "US" } }, "browseId": channelUrl, "params": "EgZ2aWRlb3PyBgQKAjoA" }), "method": "POST", "mode": "cors", "credentials": "include" }).then(response => response.json()).then(data => { var dataFromAPI2 = data; //console.log(dataFromAPI2); if (dataFromAPI2.header != null) { if (dataFromAPI2.header.c4TabbedHeaderRenderer.videosCountText != null) { var videoCount = dataFromAPI2.header.c4TabbedHeaderRenderer.videosCountText.runs[0].text; //console.log(videoCount); if (dataFromAPI2.header.c4TabbedHeaderRenderer.videosCountText.runs[1] != null) { var videoCountString = dataFromAPI2.header.c4TabbedHeaderRenderer.videosCountText.runs[1].text; document.querySelector(".owner-videos-scroller button span").textContent = videoCount + videoCountString; document.querySelector("#watch9-owner .owner-videos-scroller button span").textContent = videoCount + videoCountString; } else { document.querySelector(".owner-videos-scroller button span").textContent = videoCount; document.querySelector("#watch9-owner .owner-videos-scroller button span").textContent = videoCount; } if (document.querySelector(".owner-videos-scroller button[disabled]") != null) { document.querySelector(".owner-videos-scroller button").removeAttribute("disabled"); document.querySelector("#watch9-owner .owner-videos-scroller button").removeAttribute("disabled"); } } else { document.querySelector(".owner-videos-scroller button span").textContent = "No videos"; document.querySelector(".owner-videos-scroller button").setAttribute("disabled", ""); document.querySelector("#watch9-owner .owner-videos-scroller button span").textContent = "No videos"; document.querySelector("#watch9-owner .owner-videos-scroller button").setAttribute("disabled", ""); } var newChannelLink = dataFromAPI2.header.c4TabbedHeaderRenderer.channelId; if (dataFromAPI2.contents.twoColumnBrowseResultsRenderer.tabs[1] != null) { if (dataFromAPI2.contents.twoColumnBrowseResultsRenderer.tabs[1].tabRenderer.content != null) { var richGrid = dataFromAPI2.contents.twoColumnBrowseResultsRenderer.tabs[1].tabRenderer.content.richGridRenderer; var richItemNo = 0; richGridGet(); function richGridGet() { if (richGrid.contents[richItemNo].richItemRenderer != null) { var richItem = richGrid.contents[richItemNo].richItemRenderer.content.videoRenderer; var itemTitle = richItem.title.runs[0].text; var itemThumbnail = richItem.thumbnail.thumbnails[0].url; var itemLink = richItem.videoId; let container = document.querySelector('.scroller-inner'); var newElem = document.createElement("a"); newElem.classList.add("super-compact-video"); newElem.classList.add("spf-link"); newElem.innerHTML = ` <div class="super-compact-video-inner flex"> <div class="thumbnail"> <img src=""></img> </div> <div class="meta"> <div class="title"> <span></span> </div> <div class="view-count"> <span>???,??? views</span> </div> </div> </div> `; container.insertBefore(newElem, container.children[richItemNo]); let container2 = document.querySelector('#watch9-owner .scroller-inner'); var newElem2 = document.createElement("a"); newElem2.classList.add("super-compact-video"); newElem2.classList.add("spf-link"); newElem2.innerHTML = ` <div class="super-compact-video-inner flex"> <div class="thumbnail"> <img src=""></img> </div> <div class="meta"> <div class="title"> <span></span> </div> <div class="view-count"> <span>???,??? views</span> </div> </div> </div> `; container2.insertBefore(newElem2, container2.children[richItemNo]); var w9o = document.querySelector("#watch9-owner"); var w9os = document.querySelector("#watch9-owner-slider"); var theSCVid = w9o.querySelectorAll(".super-compact-video")[richItemNo]; theSCVid.querySelector(".title span").textContent = itemTitle; theSCVid.querySelector("img").src = itemThumbnail; theSCVid.setAttribute("href", "/watch?v=" + itemLink); theSCVid = w9os.querySelectorAll(".super-compact-video")[richItemNo]; theSCVid.querySelector(".title span").textContent = itemTitle; theSCVid.querySelector("img").src = itemThumbnail; theSCVid.setAttribute("href", "/watch?v=" + itemLink); richItemNo++; richGridGet(); } else { console.log("All available rich items gotten."); } } } else { document.querySelector(".owner-videos-scroller button span").textContent = "No videos"; document.querySelector(".owner-videos-scroller button").setAttribute("disabled", ""); document.querySelector("#watch9-owner .owner-videos-scroller button span").textContent = "No videos"; document.querySelector("#watch9-owner .owner-videos-scroller button").setAttribute("disabled", ""); } } else { document.querySelector(".owner-videos-scroller button span").textContent = "No videos"; document.querySelector(".owner-videos-scroller button").setAttribute("disabled", ""); document.querySelector("#watch9-owner .owner-videos-scroller button span").textContent = "No videos"; document.querySelector("#watch9-owner .owner-videos-scroller button").setAttribute("disabled", ""); } } else { document.querySelector(".owner-videos-scroller button span").textContent = "No videos"; document.querySelector(".owner-videos-scroller button").setAttribute("disabled", ""); document.querySelector("#watch9-owner .owner-videos-scroller button span").textContent = "No videos"; document.querySelector("#watch9-owner .owner-videos-scroller button").setAttribute("disabled", ""); } }); } } }); } } } } })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址