mirror of
https://github.com/SinTan1729/userscripts.git
synced 2025-02-05 14:12:32 -06:00
57 lines
1.4 KiB
JavaScript
57 lines
1.4 KiB
JavaScript
// ==UserScript==
|
|
// @name YouTube2Piped
|
|
// @namespace YouTube
|
|
// @version 1.3.0
|
|
// @description Redirect YouTube to chosen Piped instance
|
|
// @author SinTan
|
|
// @match *://*.youtube.com/*
|
|
// @match *://youtu.be/*
|
|
// @icon https://raw.githubusercontent.com/TeamPiped/Piped/32e7ddaaff22f4a6c0d7f6359400323da7fefd69/public/img/icons/logo.svg
|
|
// @grant none
|
|
// @run-at document-start
|
|
// @license GPL-3.0-only
|
|
// ==/UserScript==
|
|
|
|
(function () {
|
|
"use strict";
|
|
// Edit instance url here to go to any instance of choice
|
|
const instance = "https://piped.video";
|
|
|
|
const url = new URL(window.location.href.replace('/shorts/','/watch?v='));
|
|
let url_new = null;
|
|
|
|
let id = url.searchParams.get('v');
|
|
let ts = url.searchParams.get('t');
|
|
let listId = url.searchParams.get('list');
|
|
|
|
|
|
if (id) {
|
|
url_new = instance + '/watch?v=' + id;
|
|
if (ts) {
|
|
url_new += '&t=' + ts;
|
|
}
|
|
if (listId) {
|
|
url_new += '&list=' + listId;
|
|
}
|
|
}
|
|
|
|
if (!(url_new)) {
|
|
if (listId) {
|
|
url_new = instance + '/playlist?list=' + listId;
|
|
}
|
|
}
|
|
|
|
if (!(url_new)) {
|
|
let pattern = /https:\/\/www\.youtube\.com\/((?:(?:channel\/)|\@)[A-Za-z0-9\_\-]+).*/;
|
|
let channelAddr = pattern.exec(url)[1];
|
|
|
|
if (channelAddr) {
|
|
url_new = instance + '/' + channelAddr;
|
|
}
|
|
}
|
|
|
|
if (url_new) {
|
|
window.location.replace(url_new);
|
|
}
|
|
}
|
|
)();
|