您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Change YouTube leftbar's subscription links to channel/user video page. This script can optionally also move the links to top of the list if it has new uploaded videos. Both features can be enabled/disabled. For new YouTube layout only.
当前为
// ==UserScript== // @name Change YouTube Leftbar Subscription Links To Channel/User Video Page // @namespace ChangeYouTubeLeftbarSubscriptionLinksToChannelUserVideoPage // @version 1.1.5 // @license AGPL v3 // @description Change YouTube leftbar's subscription links to channel/user video page. This script can optionally also move the links to top of the list if it has new uploaded videos. Both features can be enabled/disabled. For new YouTube layout only. // @author jcunews // @match *://www.youtube.com/* // @grant none // @run-at document-start // ==/UserScript== //===== Configuration Start === var changeLinksURL = true; var moveLinksToTop = true; //===== Configuration End === function patchGuide(guide) { if (guide && !guide.cysl_done) { guide.cysl_done = 1; guide.items.forEach(function(v, vc, l, w, c, i) { if (v.guideSubscriptionsSectionRenderer) { //change links' URL if (changeLinksURL) { v.guideSubscriptionsSectionRenderer.items.forEach(function(w) { if (w.guideCollapsibleEntryRenderer) { w.guideCollapsibleEntryRenderer.expandableItems.forEach(function(x) { if (x.guideEntryRenderer.badges && (x = x.guideEntryRenderer.navigationEndpoint)) { x.commandMetadata.webCommandMetadata.url += "/videos"; if (x.webNavigationEndpointData) x.webNavigationEndpointData.url += "/videos"; } }); } else if (w = w.guideEntryRenderer.navigationEndpoint) { w.commandMetadata.webCommandMetadata.url += "/videos"; if (w.webNavigationEndpointData) w.webNavigationEndpointData.url += "/videos"; } }); } //move links with new uploads to top if (moveLinksToTop) { v = v.guideSubscriptionsSectionRenderer.items; vc = v.length - 1; w = v[vc].guideCollapsibleEntryRenderer; l = v.splice(0, vc); c = -1; if (w) { (w = w.expandableItems).some(function(e, i) { if (!e.guideEntryRenderer.badges) { c = i; return true; } }); l.push.apply(l, w.splice(0, c)); } c = []; for (i = l.length - 1; i >= 0; i--) { if (l[i].guideEntryRenderer.count) { if (vc--) { v.unshift(l.splice(i, 1)[0]); } else c.unshift(l.splice(i, 1)[0]); } } c.push.apply(c, l); if (vc) { l = c.splice(0, vc); l.unshift.apply(l, [v.length - 1, 0]); v.splice.apply(v, l); } if (w) w.unshift.apply(w, c); } } }); return true; } return false; } var ht1 = 0, ht2 = 0; (function chkStatic(ev) { clearTimeout(ht1); if (!patchGuide(window.ytInitialGuideData)) { ht1 = setTimeout(chkStatic, 0); } })(); (function chkSpf() { clearTimeout(ht2); if (window.spf && spf.request && !spf.request_cysl) { spf.request_cysl = spf.request; spf.request = function(a, b) { if (b && b.onDone) { var onDone_ = b.onDone; b.onDone = function(response) { if (response && (/\/guide_ajax\?/).test(response.url) && response.response && response.response.response) { patchGuide(response.response.response); } return onDone_.apply(this, arguments); }; return this.request_cysl.apply(this, arguments); } }; return; } ht2 = setTimeout(chkSpf, 0); })(); addEventListener("load", function() { clearTimeout(ht1); clearTimeout(ht2); });
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址