userscripts/youtube2piped.user.js

41 lines
No EOL
1.2 KiB
JavaScript

// ==UserScript==
// @name YouTube2Piped
// @namespace YouTube
// @version 1.2
// @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 id = url.searchParams.get('v');
let ts = url.searchParams.get('t');
if (id) {
let url_new = instance + '/watch?v=' + id;
if (ts) {
url_new = url_new + '&t=' + ts;
}
window.location.replace(url_new);
} else {
let pattern = /https:\/\/www\.youtube\.com\/channel\/([A-Za-z0-9\_\-]+).*/;
let channelId = pattern.exec(url)[1];
if (channelId) {
let url_new = instance + '/channel/' + channelId;
window.location.replace(url_new);
}
}
}
)();