feat: Added support for channel links

This commit is contained in:
Sayantan Santra 2023-11-03 00:13:47 -05:00
parent c011766cdc
commit b4d9207ff4
Signed by: SinTan1729
GPG key ID: EB3E68BFBA25C85F

View file

@ -1,7 +1,7 @@
// ==UserScript== // ==UserScript==
// @name YouTube2Piped // @name YouTube2Piped
// @namespace YouTube // @namespace YouTube
// @version 1.2.1 // @version 1.3.0
// @description Redirect YouTube to chosen Piped instance // @description Redirect YouTube to chosen Piped instance
// @author SinTan // @author SinTan
// @match *://*.youtube.com/* // @match *://*.youtube.com/*
@ -15,27 +15,43 @@
(function () { (function () {
"use strict"; "use strict";
// Edit instance url here to go to any instance of choice // Edit instance url here to go to any instance of choice
const instance = "https://piped.video" const instance = "https://piped.video";
const url = new URL(window.location.href.replace('/shorts/', '/watch?v=')); const url = new URL(window.location.href.replace('/shorts/','/watch?v='));
let url_new = null;
let id = url.searchParams.get('v'); let id = url.searchParams.get('v');
let ts = url.searchParams.get('t'); let ts = url.searchParams.get('t');
let listId = url.searchParams.get('list');
if (id) { if (id) {
let url_new = instance + '/watch?v=' + id; url_new = instance + '/watch?v=' + id;
if (ts) { if (ts) {
url_new = url_new + '&t=' + ts; url_new += '&t=' + ts;
}
if (listId) {
url_new += '&list=' + listId;
}
} }
window.location.replace(url_new);
} else {
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 pattern = /https:\/\/www\.youtube\.com\/((?:(?:channel\/)|\@)[A-Za-z0-9\_\-]+).*/;
let channelId = pattern.exec(url)[1]; let channelAddr = pattern.exec(url)[1];
if (channelId) { if (channelAddr) {
let url_new = instance + '/' + channelId; url_new = instance + '/' + channelAddr;
window.location.replace(url_new);
} }
} }
if (url_new) {
window.location.replace(url_new);
}
} }
)(); )();