Proxified Links

Proxified hyperlinks to a proxy instance or Farside with no nonsense

Author
proxi
Daily installs
1
Total installs
167
Ratings
0 0 0
Version
0.2.3
Created
2024-01-19
Updated
2024-04-30
License
AGPL-3.0-only
Applies to
All sites

Proxified Links

Proxified hyperlinks to proxied sites or redirect through Farside with no nonsense

Forked from Proxify Links

With appreciation to Farside


A simple and opinionated script that automatically changes links to point to a proxy without pinging anyone

You don't want a script? You want to do it manually?? That's what I've been doing this entire time before I finally wasted my time doing what some other proxy userscript should have done. Manually copy-and-paste your bookmarked instances or farside.link into the URL before loading. Duh.

Why is everything highlighted?

  • By default, links will change to a random hardcoded proxied site
  • Hold X to go through Farside (for up-to-date instances or randomization)
  • Hold Z to revert the link back to the original, bona fide site
  • Hold B+F while selecting an iframe (embedded YouTube) to change to a proxy. Can be combined with above controls.

Mobile touch gestures

  • Tap/hold 2 fingers on the page to reset links to random hardcoded proxied sites
  • Tap/hold 3 fingers on the page to set links to go through Farside
  • Tap/hold 5 fingers on the page to revert links to original, bona fide sites
  • Tap/hold 4 fingers on the root page to enable iframes proxification (embedded YouTube)
    • Tap/hold on an iframe to change to a proxy. Can be followed by any of the above touch controls.
    • Repeat 4-finger gesture to disable iframe proxification

If you find a bug or want to request a change, see the Suggestions section

If you have questions, try not to bother me before asking

No nonsense

This is not an AIO solution. If you want nonsense, add it in yourself or use the other extensions or userscripts that fit your needs.

  • No browser extensions or dependencies aside from your userscript manager. Or load the js directly yourself if you don't trust Greasemonkey or Tampermonkey
  • No non-proxied "alternative frontends" by default (see Services list below). No services that phone home to the official servers. Sorry. But it's easy to reenable or add yourself!
  • No probing HTTP requests to proxies , unlike the original Proxify Links script. Remove instability and delay and let the optional Farside redirect handle alive instances
  • No location redirects from the bona fide site, unlike most proxy redirect userscripts. Seriously, don't ping their servers and add another data point to deanonymize yourself
  • No interfering with the official, bona fide site. Use the first-party frontend at your discretion without linking out to a proxy of itself
  • No search engines. Configure your browser search yourself. Who's messing around linking LMGTFY or broken proxied Google scrapers?
  • No non-clearnet instances by default, due to instance availability and Farside support. TOR and I2P is good, but add your own public or private P2P instances if needed

Bonus nonsense (yes, free nonsense with your no-nonsense): Automatically removes Referer header on all links by default to hide your redirect referrer. Compared to hiding referrer on all XHR, this has less likelihood of breaking sites. However, this can be limited to just proxified links by disabling the ENABLE_REFERER_HIDE_PAGEWIDE flag.

Need changes or fixes?

The original v0.1 rewrite was done over the course of a few days. Which means it has been tested for only a few days. Get it? No???? Really?? Plenty of edge cases and bugs still exist that still need to be fixed. Enable console error logs with the DEBUG flag.

This script was written with ease of modification in mind, given some basic coding experience.

If you want to suggest a change to the included services

Refer to the No nonsense guide to ensure the suggestion isn't nonsense. A Farside redirect is not a requirement but may indicate a poorly supported service. Include a preliminary code change to the PROXIES and EXCLUSIONS collections if you are able to, to share your testing with others.

If you want to report a suggest a fix

Go for it. Include additional information if it occurs on a specific site or element. I'll fix it if I need it myself and update the userscript here. If I don't fix it, do it yourself. I might be on vacation or I might just not care.

Where's the git? Too bad. I'm just an anonymous proxy user. I don't care to maintain this beyond personal needs. Make a git repo yourself and attribute the original author that this was forked from.

Services

A maybily comprehensive list of services included in the script in the order they're defined. First class services at the top are the most mature and fully featured, and probably the best tested in this script.

Included services, as of v0.2.2:

Bona fide Proxied site Farside
youtube.com
youtu.be
youtube-nocookie.com
Piped
Invidious (specific instances that enable proxying by default)
Supported
reddit.com libreddit
teddit* (Discontinued)
Supported
twitter.com
x.com
nitter* (Discontinued) Supported
stackoverflow.com
stackexchange.com
AnonymousOverflow Supported
quora.com quetre Supported
bandcamp.com Tent N/A
instagram.com Proxigram* Supported
tiktok.com ProxiTok* Supported
github.com
gist.github.com
GotHub* Supported
imdb.com libremdb Supported
genius.com dumb* Supported
medium.com Scribe Supported
fandom.com BreezeWiki Supported
wikipedia.org wikiless Supported

* Low feature parity or support

Disabled by default, see PROXIES list in code to reenable

Not a proxy and therefore disabled by default, see PROXIES list in code to reenable

Don't bother me

I'm lost, how do I enable a disabled proxy? Open the installed script in your userscripts manager. Under the site you want to enable, delete the line of text that includes --- Remove this line to use ---. Save the script and reload any pages you want updated.

A service is not on here, what gives? See the Suggestions section before suggesting a proxy. If it's in the No nonsense list, add it for yourself or fork it for yourself.

An instance for a service is missing or dead, plz update? A specific instance may intentionally be left out if it doesn't appear stable or mature, but feel free to suggest it or add it yourself in the meantime. If an instance is dead or unstable, report it and it'll be removed when I get to it. Changes to this script will happen on my own time and for my own needs. If you want to hold someone accountable, look in the mirror and then look at the code.

I bet this change totally makes the script better. Maybe. Implement it or fork it for yourself and come back. See the Suggestions section to make sure it's not a bunch of nonsense. This script has a small scope and I don't care to expand it beyond my personal needs.

I'm sick of getting redirected to this site again and again!! Search and remove it from the list in the code. Post a suggestion if you think that instance sucks and should be removed for everyone. If you know which instance you always want to go to, remove all but one.

Is the link really random? Random also means that it's common to see consecutive reoccurrences. If there is a privacy need or I get bothered by it, I'll change it to artificially avoid repeats or add a control that can invalidate or redo proxified links. In the meantime, use the random Farside redirect or reload the page to get newly proxified links.

I hate the link style . Why? Know where your link is going visually by taking a highlighter to it, or change the styling yourself. The browser may not update its status bar to reflect changes to the link destination. Strong styling on the anchor element and its children means that proxified links are usually obvious even if they aren't simple text links.

I like the link style , but they're missing? Check the developer console for your browser to see if the inline stylesheet is blocked by the page's Content-Security-Policy. Feel free to report these occurrences if they are frequent. I might change the styling to suit all CSP or at least have a visible fallback.

Why are X and Z the modifier keys? This can be configured to your preferred key at the top of the code. Control or Alt may already be used for click or keyboard navigation, depending on OS.

Is keyboard navigation supported? Yes. If you have an issue, consider it a bug and report it.

This shi is laggy. I kind of tried to keep things light, but consider it a bug and report it. Meanwhile, you can exclude this script on specific sites in your userscript manager. There are also several const knobs you can tweak in the code or you can post a fix if you have the knowhow.

I'm troubleshooting or debugging. Onramp me? Enable the DEBUG flag and look for any errors in the dev console. Functions are likely to change names or refactored, but you can step in starting from the handleElement() function on hover/navigation to any element. The event target element will be handled directly as an anchor, but will also be treated as a potential child element wrapped by an anchor by looking up at its ancestors or querying other hovered elements.

This readme or the code comments suuuck. They were written to document alongside the code. I'll take suggestions in mind and update and refactor things when I feel like it.

This thing is totally broken?? See the Suggestions section before reporting a bug. When this thing is verifiably not totally broken, it'll totally get promoted to v1.0.