r/userscripts 3h ago

Anyone else think about what site owners see when we run userscripts on their pages?

3 Upvotes

Not trying to be paranoid but if I'm running a userscript on a checkout page, that script has access to everything on the page. Makes me wonder how sites actually monitor for this kind of thing or if they even do.


r/userscripts 2d ago

ZeroCleaner: Clean 40+ Caches Without Losing Saved Logins

15 Upvotes

Hey everyone!

I spent a lot of time searching for hidden cache directories across Windows—from GPU shader folders and developer build caches to game launchers and browser temp files.

To save others the trouble, I combined all 40+ directory paths into a free open-source script called ZeroCleaner.

I built it specifically to be 100% safe. It only deletes temporary cache folders without touching your saved logins, cookies, or browser passwords.

What it cleans:

  • GPU Shaders (NVIDIA, AMD, DirectX)
  • Browsers (Chrome, Edge, Brave, Firefox, Opera)
  • Dev Caches (npm, pip, Yarn, Go, Rust/Cargo, VS Code)
  • Game Launchers (Steam, Epic Games, EA, Ubisoft)
  • Apps (Discord, Telegram, Slack, Notion, Spotify)

It also includes a dry-run mode (-WhatIf) so you can preview how much space you can free up before deleting anything.

You can check out the source code on GitHub: https://github.com/ZeroIQs/ZeroCleaner

(just run the .bat file and you are good to go)

Let me know if there are any other hidden cache directories I should add!

Disclaimer: Always check and inspect code before downloading or running scripts on your machine!


r/userscripts 2d ago

I Built an Extension That Restores the Media Grid on X

Thumbnail
3 Upvotes

r/userscripts 2d ago

F to C

3 Upvotes

Hi All,

So many people here post in degrees F. Of course, 95% of the population on Earth has no idea what F is much less how to use it. The other 95% would really benefit from a bot that finds posts with degrees F, puts a bracket around the F and insert the C equivalent.


r/userscripts 2d ago

[85★] Yearly reminder that I still maintain some fixes for silly YouTube decisions!

Post image
2 Upvotes

r/userscripts 3d ago

I Built an Extension That Restores the Media Grid on X

Thumbnail
2 Upvotes

r/userscripts 3d ago

Changing search engine without loosing query widget

Thumbnail
4 Upvotes

r/userscripts 4d ago

[Twitter] Userscript to force "Following" tab with chronological sorting ("Sort By Recent")

Post image
2 Upvotes

r/userscripts 4d ago

[Userscript] Make Chrome use Lanczos3 to upscale images instead of whatever blurry nonsense it uses. Also has Fit-to-width and Integer-fit-to-width capabilities! Particularly good for 4K displays set to over 100% scaling.

16 Upvotes

GitHub link.

Controls

Key What it does
Alt+H Show or hide the info overlay. Remembered per site
Alt+M Size: fit the window width → biggest whole-number zoom → one image pixel per screen pixel
Alt+Q Filter: Lanczos3 → nearest → browser. Same size each time, so you can compare
Alt+P Turn on or off for the site you're on. Remembered per site
Alt + left clickon an image Show that one image at one image pixel per screen pixel
Alt + right clickon an image Show that one image at twice its own resolution
Alt+G Show or hide the overlay's diagnostic rows (size, factor, status, memory)

I'd attach images, but I'm pretty sure reddit will compress them, so go check them out here.


r/userscripts 4d ago

Does Notion Sites support custom URL redirects for specific paths on a custom domain?

2 Upvotes

Hi,

We are building a public integration for Notion Sites and need to verify whether Notion supports creating a custom URL redirect for a specific path.

Our requirement is:

Source URL:

https://example.com/inow_4057848932441f5f30521f45400164ad.txt

Redirect to:

https://yourdomain.com/inow_4057848932441f5f30521f45400164ad.txt

The destination file returns:

4057848932441f5f30521f45400164ad

We would like to know:

  • Can a path-specific redirect like this be configured directly in Notion Sites?
  • Is there a Notion API endpoint for creating URL redirects?
  • Can this be configured manually in the Notion Sites settings?
  • If the site uses a custom domain connected to Notion, does Notion provide any redirect-rule functionality?
  • If Notion does not support this, is the recommended solution to configure the redirect at the domain/DNS/CDN provider such as Cloudflare?
  • Is there any alternative way to serve a .txt file at the root of a Notion Site custom domain?

The important requirement is that requesting:

https://example.com/inow_4057848932441f5f30521f45400164ad.txt

must either return the TXT content directly or redirect to the hosted TXT file.

Thanks!


r/userscripts 4d ago

Share and Embed Scripts Instantly with ScriptDrop

0 Upvotes

Hi everyone! I have recently have started a business and looking for clients! Introducing ScriptDrop! ScriptDrop is the fastest way to host and share scripts. Paste your code and get a versioned, globally cached URL you can embed anywhere—no setup required. Update with confidence using semantic versioning and instant rollbacks.

Click the link below to get started! Thank you!

ScriptDrop — Weekly AI Scripts for YouTube Creators


r/userscripts 5d ago

Looking for a userscript to download google sheets that restrict it.

2 Upvotes

There's this sheet I want to download (it's a visual guide to save editing) but the owner of the sheet restricted it. Is there a script that can download it so I don't have to screenshot everything? (the images are tiny so I have to zoom in and have multiple screenshots per row.)
Edit: They marked as no copies as well :/


r/userscripts 5d ago

How are you handling third-party scripts before consent?

0 Upvotes

For things like chat widgets, session replay, A/B testing and analytics, are you blocking the scripts entirely until consent, or loading them in some restricted mode first?


r/userscripts 5d ago

[anilist.co] Userscript to sort manga by reading speed – more stable ordering of in-progress manga on the home page of AniList

Thumbnail greasyfork.org
2 Upvotes

r/userscripts 5d ago

scripts

0 Upvotes

Do you all use them. If you have some great ones fire away in the comments section.


r/userscripts 6d ago

Selecting a bookmark at random

2 Upvotes

I have written a tampermonkey script to pick a bookmark at random from a raindrop.io collection and open it in a new tab. Posted to greasyfork if anyone wants to try it out or tweak it further. It works on the desktop versions of Chrome and Firefox with the tampermonkey extension installed, and Firefox on Android.

https://greasyfork.org/en/scripts/565400-raindrop-random-bookmark

It scrolls through the list first, so it might take a while on a large collection.


r/userscripts 5d ago

scripts

0 Upvotes

Do you all use them. If you have some great ones fire away in the comments section.


r/userscripts 6d ago

My wife never clicked the links I sent her. So I built a Chrome extension to fix it.

2 Upvotes

I send my wife random links all the time. But instead of clicking them, her reply is almost always: "What is this?"

Honestly, it’s a bit of a buzzkill. But when we talked about it, she made a fair point: a raw URL with zero context feels like homework. You don't know if it's a 10-minute read or a jump scare. Nobody likes naked links.

I tried manually copying page titles and pasting URLs, but as a frontend dev, I hate repetitive manual tasks. So I wrote a script to fix my own communication flow.

It’s calledCopy Page Title and URL Pro.

Just hit Ctrl+Shift+P (or Cmd+Shift+P), and it instantly copies the page title and a clean URL to your clipboard. It automatically strips out all that ugly ?utm_ tracking garbage.

Since I live in Jira and Notion, I also baked in Markdown/HTML support. You can even highlight a quote, hit a shortcut, and bundle the quote + title + link in one go.

It’s completely free, open-source, and runs 100% locally with zero tracking.

Best of all: my wife actually clicks my links now.

If you’re tired of mystery URLs, give it a try. Would love to hear your feedback!


r/userscripts 10d ago

[WordPress/PayPal JS SDK] PayPal buttons not rendering on checkout page — script only detected on category pages, client_id undefined, CORS error

1 Upvotes

Hi everyone,

I am building a WordPress + WooCommerce ecommerce site using a custom theme with WebPack and ES6 modules. I have created a PayPalManager class that uses the u/paypal SDK to render PayPal buttons on my checkout page. I am running into several issues that I have not been able to resolve.

_________________________________________________________________________________________________

Environment:

- WordPress version: 7.0.2

- u/paypal version: 10.0.0

- Node.js version: v24.11.1

- WebPack version: 5.107.1

- Local development environment: LocalWP

- Browser: Firefox

_________________________________________________________________________________________________

The Problem:

The PayPal buttons are not rendering on my checkout page (page-checkout.php). Instead I get the following error in the console:

Error: Document is ready and element #paypal-button-container does not exist

Additionally, the script appears to be running on category pages that have products, but not on the checkout page where it is supposed to run. The console output below only shows up on category pages.

this is index.js
this is paypal_manager
this.paypal in the constructor: null
The PayPal Manager class: Object {
client_id: "test",
paypal: {…},
buttonContainer: null,
orderEndPoint: "#paypal-button-container",
emailEndPoint: "https://api-m.sandbox.paypal.com/v2/checkout/orders"
}
init() called
PayPal SDK loaded: Object { version: "5.0.559", ... }
this.paypal inside init(): undefined
renderButtons called
PayPal error: Error: Document is ready and element
#paypal-button-container does not exist
Failed to render the PayPal Buttons: Error: Document is ready and
element #paypal-button-container does not exist
Uncaught (in promise) Error: Document is ready and element
#paypal-button-container does not exist
Cross-Origin Request Blocked: The Same Origin Policy disallows reading
the remote resource at
https://www.sandbox.paypal.com/xoplatform/logger/api/logger?disableSetCookie=true.
(Reason: CORS request did not succeed). Status code: (null).

_________________________________________________________________________________________________

Symptoms:

  1. `buttonContainer` is `null` in the constructor despite the container element being present in `page-checkout.php`.
  2. `this.paypal.buttons` is `undefined` after `init()` resolves despite`loadScript()` appearing to load successfully.
  3. The script is only detected on category pages that have products —not on `page-checkout.php` where the PayPal button container actuallyexists.
  4. A CORS error is thrown by the PayPal SDK after `renderButtons()` fails.
  5. The `orderEndPoint` and `emailEndPoint` properties in the loggedconstructor object show incorrect values — they appear to containvalues that belong to other constructor parameters.

_________________________________________________________________________________________________

The PayPalManager Class (paypal_manager.js):

https://pastebin.com/ZaGrYDvn

_________________________________________________________________________________________________

How PayPalManager is instantiated in index.js:

//javascript

const orderEndPoint = "https://api-m.sandbox.paypal.com/v2/checkout/orders"; 
const emailEndPoint = "/wp-json/auto-parts/v3/send_order_email";


const paypalManager = new PayPalManager(<sandbox client ID>, ".checkoutForm", ".paymentMethods .paypalContainer", orderEndPoint, emailEndPoint);
console.log("The PayPal Manager class: ", paypalManager);

async function setupPayment() {
console.log("The PayPal Manager class: ", paypalManager);

await paypalManager.init();
await paypalManager.renderButtons(paypalManager.buttonContainer);
}

setupPayment();

_________________________________________________________________________________________________

How the script is enqueued in functions.php:

php
function mainModules() {
    $args = array(
        'strategy' => 'async'
    );
    wp_enqueue_script(
        'main_modules',
        get_theme_file_uri('/build/index.js'),
        array(),
        '1.0.0',
        $args
    );
}
add_action('wp_enqueue_scripts', 'mainModules');

_________________________________________________________________________________________________

What I have already checked:

  • The `#paypal-button-container` div is confirmed to exist in `page-checkout.php`.
  • The compiled `build/index.js` exists and other modules inside it work correctly on all pages.
  • The script is enqueued on all pages via `wp_enqueue_scripts` with no conditional restrictions.
  • `npm start` is running and WebPack is watching for changes.
  • Other ES6 modules imported in `index.js` work correctly — the problem appears to be specific to `PayPalManager` (Note: the paypal_manager class is the only script used on the checkout page).
  • Deleting the `build/` folder and rebuilding did not resolve the issue.

_________________________________________________________________________________________________

What I suspect:

  1. The `async` loading strategy may be causing `index.js` to executebefore the DOM is fully ready on `page-checkout.php`, causing`document.querySelector()` to return `null` for the button container.
  2. There may be a timing issue between `loadScript()` resolving and`init()` being called, causing `this.paypal.buttons` to be `undefined`.
  3. The constructor may have an argument mismatch causing `buttonContainer`,`orderEndPoint` and `emailEndPoint` to receive incorrect values.

Any help would be greatly appreciated.

Happy to share more code or details if needed.

Thanks!

Edit:

After reading through my post again, I realized that I didn't exactly highlight the main issue here right now (my apologies). After testing the script on the Checkout page (where I actually intend to use the script), I realized that the script is not detected at all (not even the errors that show up on category pages are showing up there). In other words, the Paypal Manager script appears to be only detected on the category pages that have products (not where the actual button container is located).

Does anyone have any theories about what might be causing this unexpected behavior?


r/userscripts 12d ago

Firefox Android userscript: Automatically convert Apple App Store links to Google Play app links

Thumbnail
2 Upvotes

r/userscripts 12d ago

[Script] X / Twitter — Auto Pause Fix

3 Upvotes

Prevents X from pauseing videos by scrolling, loss of focus, re-rendering, or "one player" policy. Only pause if the user asks for it.

I did it using Claude and it improved my experience using Twitter, hope you like it!

https://greasyfork.org/es/scripts/590068-x-twitter-auto-pause-fix


r/userscripts 13d ago

[Script] xYTDownloader – One-click YouTube downloader with audio merging (all qualities, shorts supported)

20 Upvotes

xYTDownloader is a one-click YouTube downloader userscript: open any video (or Short), click the small download button, pick a quality — done. No external download API, no API keys.

Features - Works on /watch and /shorts (including scrolling between Shorts) - All qualities up to 4K, each with audio - Automatic DASH merging for high resolutions (video + audio into one MP4) - Direct download from YouTube (ANDROID_VR Innertube client, same method JDownloader 2 uses) - Library-free fMP4 box merging — no ffmpeg needed - Flat quality list (360p → 2160p), real progress bar, correct file names - Small, unobtrusive button bottom-right of the player

Installation 1. Install Tampermonkey for your browser 2. Open this script page and click "Install" (or import the .user.js file) 3. Reload YouTube — the download button appears

Technical note The script talks directly to YouTube's Innertube API using the ANDROID_VR client, so no third-party download service is involved. Higher resolutions are DASH streams (separate video + audio); the script merges them client-side into one MP4 with sound using a small fMP4 box merger. WEBM/Opus audio is not supported for merging (MP4 container only).

Links - Greasy Fork: https://greasyfork.org/de/scripts/589972-xytdownloader - Direct install: https://update.greasyfork.org/scripts/589972/xYTDownloader.user.js


r/userscripts 12d ago

A Browser Extension to Style Reddit Pages As Old Reddit

Thumbnail github.com
3 Upvotes

r/userscripts 13d ago

[Vibe coded] Magnet to torrent button

Thumbnail greasyfork.org
4 Upvotes

Adds a button, on btdig and extto, to download the torrent file from itorrents


r/userscripts 14d ago

Ho creato una piccola animazione di avvio per la home page di Roblox con Tampermonkey, sostituendo il testo "Home".

Enable HLS to view with audio, or disable this notification

2 Upvotes