From 4d385d0d8bacee8b15645e23e2e5fa285e11fae8 Mon Sep 17 00:00:00 2001 From: chase Date: Mon, 25 Aug 2025 15:18:35 -0400 Subject: [PATCH] Initial commit --- flake.nix | 18 ++++++++++++++ icons/yt-share-cleaner-128.png | Bin 0 -> 5711 bytes icons/yt-share-cleaner-16.png | Bin 0 -> 3351 bytes icons/yt-share-cleaner-256.png | Bin 0 -> 8646 bytes icons/yt-share-cleaner-32.png | Bin 0 -> 3846 bytes icons/yt-share-cleaner-64.png | Bin 0 -> 4687 bytes manifest.json | 28 +++++++++++++++++++++ yt-share-cleaner.js | 44 +++++++++++++++++++++++++++++++++ 8 files changed, 90 insertions(+) create mode 100644 flake.nix create mode 100644 icons/yt-share-cleaner-128.png create mode 100644 icons/yt-share-cleaner-16.png create mode 100644 icons/yt-share-cleaner-256.png create mode 100644 icons/yt-share-cleaner-32.png create mode 100644 icons/yt-share-cleaner-64.png create mode 100644 manifest.json create mode 100644 yt-share-cleaner.js diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..34591c9 --- /dev/null +++ b/flake.nix @@ -0,0 +1,18 @@ +{ + description = "yt-share-cleaner - remove tracking from YouTube share URLs"; + + inputs = { + nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable"; + }; + + outputs = { self, nixpkgs }: let + system = "x86_64-linux"; + pkgs = nixpkgs.legacyPackages.${system}; + in { + devShells.${system}.default = pkgs.mkShell { + nativeBuildInputs = with pkgs; [ + web-ext + ]; + }; + }; +} diff --git a/icons/yt-share-cleaner-128.png b/icons/yt-share-cleaner-128.png new file mode 100644 index 0000000000000000000000000000000000000000..d637c4efc4c1dcece9b6f18e4e95c6a8d75b56cf GIT binary patch literal 5711 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 WfD@}L-bA0m044@FY?B^7`TqdK^Ot!5 literal 0 HcmV?d00001 diff --git a/icons/yt-share-cleaner-16.png b/icons/yt-share-cleaner-16.png new file mode 100644 index 0000000000000000000000000000000000000000..f7cd1fd8a3e589cdfe166467790d2878f0d3d442 GIT binary patch literal 3351 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 literal 0 HcmV?d00001 diff --git a/icons/yt-share-cleaner-64.png b/icons/yt-share-cleaner-64.png new file mode 100644 index 0000000000000000000000000000000000000000..7ace763c39a8b19b050fcc10bd44828a14563f1c GIT binary patch literal 4687 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 literal 0 HcmV?d00001 diff --git a/manifest.json b/manifest.json new file mode 100644 index 0000000..b4feebd --- /dev/null +++ b/manifest.json @@ -0,0 +1,28 @@ +{ + "manifest_version": 3, + "name": "yt-share-cleaner", + "version": "0.0.1", + + "description": "Cleans tracking from share URLs on YouTube", + + "icons": { + "16": "icons/yt-share-cleaner-16.png", + "32": "icons/yt-share-cleaner-32.png", + "64": "icons/yt-share-cleaner-64.png", + "128": "icons/yt-share-cleaner-128.png", + "256": "icons/yt-share-cleaner-256.png" + }, + + "permissions": [ + "activeTab", + "clipboardRead", + "clipboardWrite" + ], + + "content_scripts": [ + { + "js": ["yt-share-cleaner.js"], + "matches": ["*://*.youtube.com/*"] + } + ] +} diff --git a/yt-share-cleaner.js b/yt-share-cleaner.js new file mode 100644 index 0000000..23a4105 --- /dev/null +++ b/yt-share-cleaner.js @@ -0,0 +1,44 @@ +(function() { + // 'use strict'; + function isShareLink(url) { + // test if input is a share link, return True or False + const regex = /https:\/\/youtu\.be\/[A-Za-z0-9\_-]+\?si=.+/i; + const isShareLink = regex.test(url); + return(isShareLink) + } + + function cleanUrl(url){ + // clean tracker from URL if it is a share link + if (isShareLink(url)) { + // replace tracker portion with empty string + const cleanedUrl = url.replace(/\?si=[^&]+&?/, ""); + return(cleanedUrl) + } + // return original url if it is not a share link + console.log("Not a share link, clipboard contents unmodified.") + return(url) + } + + function sleep(ms) { + return new Promise(resolve => setTimeout(resolve, ms)); + } + + async function onMouseUp() { + // wait half a second after clicking before reading clipboard + await sleep(500); + + let clipText = await navigator.clipboard.readText(); + let newText = cleanUrl(clipText); + + if (clipText !== newText) { + const newClip = await navigator.clipboard.writeText(newText); + console.log("Modified clipboard with cleaned share link: %o", newText); + clipText = undefined; + newText = undefined; + } + clipText = undefined; + newText = undefined; + } + + document.addEventListener('mouseup', onMouseUp, false); +})();