YouTube Shorts URL to Normal URL (Enhanced)

自动将 YouTube Shorts 链接替换为普通视频链接,包括动态导航

Dovrai installare un'estensione come Tampermonkey, Greasemonkey o Violentmonkey per installare questo script.

You will need to install an extension such as Tampermonkey to install this script.

Dovrai installare un'estensione come Tampermonkey o Violentmonkey per installare questo script.

Dovrai installare un'estensione come Tampermonkey o Userscripts per installare questo script.

Dovrai installare un'estensione come ad esempio Tampermonkey per installare questo script.

Dovrai installare un gestore di script utente per installare questo script.

(Ho già un gestore di script utente, lasciamelo installare!)

Dovrai installare un'estensione come ad esempio Stylus per installare questo stile.

Dovrai installare un'estensione come ad esempio Stylus per installare questo stile.

Dovrai installare un'estensione come ad esempio Stylus per installare questo stile.

Dovrai installare un'estensione per la gestione degli stili utente per installare questo stile.

Dovrai installare un'estensione per la gestione degli stili utente per installare questo stile.

Dovrai installare un'estensione per la gestione degli stili utente per installare questo stile.

(Ho già un gestore di stile utente, lasciamelo installare!)

// ==UserScript==
// @name         YouTube Shorts URL to Normal URL (Enhanced)
// @namespace    https://example.com/
// @version      1.1
// @description  自动将 YouTube Shorts 链接替换为普通视频链接,包括动态导航
// @author       yy
// @match        https://*.youtube.com/*
// @grant        none
// @license MIT
// ==/UserScript==

(function() {
    'use strict';

    // 检查并转换 Shorts URL 的函数
    function convertShortsUrl() {
        const currentUrl = window.location.href;
        if (currentUrl.includes("/shorts/")) {
            const videoCode = currentUrl.split("/shorts/")[1];
            const normalUrl = `https://www.youtube.com/watch?v=${videoCode}`;
            window.location.replace(normalUrl);
        }
    }

    // 初始调用,处理页面加载时的 Shorts URL
    convertShortsUrl();

    // 监听 URL 变化(支持 YouTube 的动态导航)
    let lastUrl = window.location.href;
    const observer = new MutationObserver(() => {
        const newUrl = window.location.href;
        if (newUrl !== lastUrl) {
            lastUrl = newUrl;
            convertShortsUrl();
        }
    });

    // 监听文档的变化
    observer.observe(document, { subtree: true, childList: true });
})();