A simple web extension that redirects Twitter, YouTube, Instagram & Google Maps requests to privacy friendly alternatives.

Overview

privacy-redirect

Awesome Humane Tech

Get

Firefox Add-on Chrome Extension Edge Extension

Donate

Donate Buy me a coffee

  • FIRO aEyKPU7mwWBYRFGoLiUGeQQybyzD8jzsS8
  • BTC: 3JZWooswwmmqQKw5iW6AYFfK5gcWTrvueE
  • ETH: 0x90049dc59365dF683451319Aa4632aC61193dFA7

About

A web extension that redirects Twitter, YouTube, Instagram, Google Maps, Reddit, Google Search, & Google Translate requests to privacy friendly alternative frontends for those sites - Nitter, Invidious, FreeTube, Bibliogram, OpenStreetMap, SimplyTranslate & Private Search Engines like DuckDuckGo and Startpage.

It's possible to toggle all redirects on and off. The extension will default to using random instances if none are selected. If these instances are not working, you can try and set a custom instance from the list below.

Custom instances

Privacy Redirect allows setting custom instances, instances can be found here:

Development

Install Dependencies

  • Node.js >=10.0.0 installed
  • npm install

Build

  • npm run build
  • open web-ext-artifacts/

Test

  • npm run test

License

GPLv3.

Permissions

Please note, access to all website navigation events ( all URLs), not just the target domains, is required to allow embedded video redirects to occur. At this time I know of no other way to achieve iframe redirects, happy to hear some suggestions on this though 🙂

Privacy Policy

See the Project Wiki.

Comments
  • Redirect Wikipedia to Wikiless

    Redirect Wikipedia to Wikiless

    I made a project called Wikiless, it's self-hostable, FOSS. How it works is that the backend basically mirrors the Wikipedia content to the user. The user's browser never talks to Wikipedia, only the server backend does. So you don't give your IP address to the Wikipedia. Currently there's no other instances but the official one wikiless.org.

    URL renaming: https://en.wikipedia.org/wiki/Monero -> https://wikiless.org/wiki/Monero?lang=en

    https://de.wikipedia.org/ -> https://wikiless.org/?lang=de

    https://en.wikipedia.org/w/index.php?title=Monero&action=history -> https://wikiless.org/w/index.php?title=Monero&action=history&lang=en

    enhancement đŸ’Ș help wanted 🆘 
    opened by orenomfi 52
  • Add support for Search Providers

    Add support for Search Providers

    Another redirect idea :smile: Edit: updated with search providers

    Potential search providers:

    These are all privacy focused.

    Found on: privacytools.io & restoreprivacy.com

    SearX

    Searx is a privacy-respecting metasearch engine. Google Searches could redirect here (and potentially Bing, Yahoo, Yandex etc).

    Source: GitHub Documentation: doc Instances: searx.space

    There are also Meta-searx instances ("These are websites that source from other searx instances. These are useful if you can't decide which Searx instance to use"). More info is available on searx.space - click "About".

    enhancement đŸ’Ș 
    opened by Jpxe 34
  • Don't Redirect

    Don't Redirect "View on ..." links

    When you click a View on YouTube link in Invidious it redirects back to invidious. It would be more useful if this actually went to YouTube as there is sometimes issues with some videos.

    enhancement đŸ’Ș 
    opened by matteqa 30
  • Change the project license to a Copyleft license

    Change the project license to a Copyleft license

    First, I would like to thank you for developing 'Privacy Redirect' plugin and distributing it as a 'free software'(http://www.gnu.org/philosophy/free-sw.html). However, I would be happier if you release it under any copyleft license(https://www.gnu.org/licenses/copyleft.en.html) such as GNU GPL.

    Submitted via email.

    I'm open to changing the license although I think I need to get permission from all the contributors now as they contributed their code under the existing license and may not want it changed, anyone else have experience with a situation like this?

    help wanted 🆘 
    opened by SimonBrazell 20
  • Ability To Whitelist Sites

    Ability To Whitelist Sites

    Would like to request the ability to whitelist websites from redirecting, this is beneficial on sites that have trouble with Invidious in embeds and you don't mind them passing through, but want other sites to continue using the redirection.

    One site in specific I find I have issues is cytube. https://cytu.be/

    enhancement đŸ’Ș 
    opened by seniorm0ment 18
  • feat(): Add support for redirecting to the old Reddit desktop or mobile design

    feat(): Add support for redirecting to the old Reddit desktop or mobile design

    PR Description:

    Adds support for redirecting Reddit links to the old desktop (https://old.reddit.com/) and mobile designs (https://i.reddit.com/) which serve less JavaScript than the new design (https://www.reddit.com/). Also handles case where you're on an old view (i.e. i.reddit.com) and you update the settings to redirect to the other old view (i.e. old.reddit.com).

    Not sure if this is can really be counted as a privacy redirect since there isn't an alternative, privacy-forward Reddit interface so I would understand if this change isn't accepted. The UI for this change also doesn't feel very intuitive due to the fact we're redirecting to subdomains of the same service. But at least this is reference code for anyone who wants local support :smile:

    Testing:

    Validated in Chromium and Firefox.

    Screenshots:

    pr-popup

    pr-options

    opened by nitrohorse 17
  • Embedded videos don't work

    Embedded videos don't work

    Hello!

    First, thank you for this handy add-on! Combining redirects to those sites into one add-on is really awesome. Please keep up the good work!

    For a while now I have problems with embedded videos. They are not shown, I only get a black rectangle. Please find example output from the Firefox developer console below. I get such and similar output from different pages, varying in the number of repetitions of the same message. The last part on each line is the (temporary) file name, line and column number. (Sorry for the bad format.) Amid that jungle, two URLs shine out:

    • https://invidio.us/yts/jsbin/www-embed-player-vfl19rSh2/www-embed-player.js
    • https://www.youtube.com/yts/jsbin/player_ias-vfl22ubNH/en_US/base.js

    Interestingly, only one URL is redirected to Invidious in the example output (a different problem?). On some pages I get errors with the both URLs, but with the first URL already rewritten to Invidious. When I try to access those URLs, I get redirected to the homepage of Invidious, which fits the error messages about content of unexpected MIME type, as far as I can see. However, fetching those files with invidio.us as domain also leads to the homepage in Ungoogled Chromium.

    I think this is a problem of this add-on, because I tested with another add-on that redirects to Invidious and with that I don't get this error and the videos play. However, I still get communication with YouTube and repeated output of an error message, so this specific (unmaintained) add-on is not the best code example.

    Happy to help testing. Please let me know, if I can provide more information. Thanks!

    The resource from “https://invidio.us/” was blocked due to MIME type (“text/html”) mismatch (X-Content-Type-Options: nosniff). 9B9SId9_lpQ
    The script from “https://invidio.us/” was loaded even though its MIME type (“text/html”) is not a valid JavaScript MIME type. 2 uMG8BMrOO00
    The script from “https://invidio.us/” was loaded even though its MIME type (“text/html”) is not a valid JavaScript MIME type. _w0oBujJ9P4
    The resource from “https://invidio.us/” was blocked due to MIME type (“text/html”) mismatch (X-Content-Type-Options: nosniff). 9B9SId9_lpQ
    The script from “https://invidio.us/” was loaded even though its MIME type (“text/html”) is not a valid JavaScript MIME type. 2 DbKzNqEIDdY
    The script from “https://invidio.us/yts/jsbin/www-embed-player-vfl19rSh2/www-embed-player.js” was loaded even though its MIME type (“text/html”) is not a valid JavaScript MIME type. DbKzNqEIDdY
    Loading failed for the <script> with source “https://www.youtube.com/yts/jsbin/www-embed-player-vfl19rSh2/www-embed-player.js”. DbKzNqEIDdY:3:1
    The resource from “https://invidio.us/” was blocked due to MIME type (“text/html”) mismatch (X-Content-Type-Options: nosniff). 9B9SId9_lpQ
    The script from “https://invidio.us/” was loaded even though its MIME type (“text/html”) is not a valid JavaScript MIME type. DbKzNqEIDdY
    Loading failed for the <script> with source “https://www.youtube.com/yts/jsbin/player_ias-vfl22ubNH/en_US/base.js”. DbKzNqEIDdY:4:1
    ReferenceError: yt is not defined DbKzNqEIDdY:12:1
    The resource from “https://invidio.us/” was blocked due to MIME type (“text/html”) mismatch (X-Content-Type-Options: nosniff). _w0oBujJ9P4
    The resource from “https://invidio.us/” was blocked due to MIME type (“text/html”) mismatch (X-Content-Type-Options: nosniff). uMG8BMrOO00
    Loading failed for the <script> with source “https://www.youtube.com/yts/jsbin/www-embed-player-vfl19rSh2/www-embed-player.js”. uMG8BMrOO00:3:1
    The script from “https://invidio.us/” was loaded even though its MIME type (“text/html”) is not a valid JavaScript MIME type. uMG8BMrOO00
    Loading failed for the <script> with source “https://www.youtube.com/yts/jsbin/player_ias-vfl22ubNH/en_US/base.js”. uMG8BMrOO00:4:1
    ReferenceError: yt is not defined uMG8BMrOO00:12:1
    The resource from “https://invidio.us/” was blocked due to MIME type (“text/html”) mismatch (X-Content-Type-Options: nosniff). _w0oBujJ9P4
    Loading failed for the <script> with source “https://www.youtube.com/yts/jsbin/www-embed-player-vfl19rSh2/www-embed-player.js”. _w0oBujJ9P4:3:1
    The resource from “https://invidio.us/” was blocked due to MIME type (“text/html”) mismatch (X-Content-Type-Options: nosniff). 9B9SId9_lpQ
    Loading failed for the <script> with source “https://www.youtube.com/yts/jsbin/www-embed-player-vfl19rSh2/www-embed-player.js”. 9B9SId9_lpQ:3:1
    The resource from “https://invidio.us/” was blocked due to MIME type (“text/html”) mismatch (X-Content-Type-Options: nosniff). _w0oBujJ9P4
    Loading failed for the <script> with source “https://www.youtube.com/yts/jsbin/player_ias-vfl22ubNH/en_US/base.js”. _w0oBujJ9P4:4:1
    ReferenceError: yt is not defined _w0oBujJ9P4:12:1
    The resource from “https://invidio.us/” was blocked due to MIME type (“text/html”) mismatch (X-Content-Type-Options: nosniff). 9B9SId9_lpQ
    Loading failed for the <script> with source “https://www.youtube.com/yts/jsbin/player_ias-vfl22ubNH/en_US/base.js”. 9B9SId9_lpQ:4:1
    ReferenceError: yt is not defined 9B9SId9_lpQ:12:1
    
    opened by funnyflowerpot 13
  • Added Change Instance button to address-bar

    Added Change Instance button to address-bar

    An instance may be slow, not working, language isn't English, and many other things that will let you want to change to another one. Just click on that button in the address bar, and as you wish.

    opened by ManeraKai 12
  • Add more bibliogram instances

    Add more bibliogram instances

    Here are a few of them https://git.sr.ht/~cadence/bibliogram-docs/tree/master/docs/Instances.md - right now the one that's default almost never works. Cheers!

    enhancement đŸ’Ș bibliogram đŸ“· 
    opened by tiotrom 12
  • Fix overflowing inputs on some platforms.

    Fix overflowing inputs on some platforms.

    width: 100% sets the content-box width, unless the box-sizing value is border-box, see:

    https://developer.mozilla.org/en-US/docs/Web/CSS/box-sizing

    (box-sizing: border-box is already the default for <select>).

    In platforms with more padding by default on inputs (like Firefox on Linux for example) this can cause the inputs to overflow the popup. Also shrink the padding manually to what the popup layout expects, so that it doesn't grow past the popup.

    Additionally we remove the appearance from checkboxes so that they don't take up space.

    This fixes https://bugzilla.mozilla.org/show_bug.cgi?id=1625716.

    opened by emilio 12
  • Customize a list of instances to randomize from

    Customize a list of instances to randomize from

    Related to #101, tag enhancement please

    As of now, instance lists are hard-coded in background.js. It may be a bit complicated, but since instances may (very frequently) temporarily stop working, wouldn't it be convenient to have a customizable instance list?

    enhancement đŸ’Ș 
    opened by austinhuang0131 10
  • Bump qs from 6.5.2 to 6.5.3

    Bump qs from 6.5.2 to 6.5.3

    Bumps qs from 6.5.2 to 6.5.3.

    Changelog

    Sourced from qs's changelog.

    6.5.3

    • [Fix] parse: ignore __proto__ keys (#428)
    • [Fix] utils.merge: avoid a crash with a null target and a truthy non-array source
    • [Fix] correctly parse nested arrays
    • [Fix] stringify: fix a crash with strictNullHandling and a custom filter/serializeDate (#279)
    • [Fix] utils: merge: fix crash when source is a truthy primitive & no options are provided
    • [Fix] when parseArrays is false, properly handle keys ending in []
    • [Fix] fix for an impossible situation: when the formatter is called with a non-string value
    • [Fix] utils.merge: avoid a crash with a null target and an array source
    • [Refactor] utils: reduce observable [[Get]]s
    • [Refactor] use cached Array.isArray
    • [Refactor] stringify: Avoid arr = arr.concat(...), push to the existing instance (#269)
    • [Refactor] parse: only need to reassign the var once
    • [Robustness] stringify: avoid relying on a global undefined (#427)
    • [readme] remove travis badge; add github actions/codecov badges; update URLs
    • [Docs] Clean up license text so it’s properly detected as BSD-3-Clause
    • [Docs] Clarify the need for "arrayLimit" option
    • [meta] fix README.md (#399)
    • [meta] add FUNDING.yml
    • [actions] backport actions from main
    • [Tests] always use String(x) over x.toString()
    • [Tests] remove nonexistent tape option
    • [Dev Deps] backport from main
    Commits
    • 298bfa5 v6.5.3
    • ed0f5dc [Fix] parse: ignore __proto__ keys (#428)
    • 691e739 [Robustness] stringify: avoid relying on a global undefined (#427)
    • 1072d57 [readme] remove travis badge; add github actions/codecov badges; update URLs
    • 12ac1c4 [meta] fix README.md (#399)
    • 0338716 [actions] backport actions from main
    • 5639c20 Clean up license text so it’s properly detected as BSD-3-Clause
    • 51b8a0b add FUNDING.yml
    • 45f6759 [Fix] fix for an impossible situation: when the formatter is called with a no...
    • f814a7f [Dev Deps] backport from main
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump minimatch from 3.0.4 to 3.1.2

    Bump minimatch from 3.0.4 to 3.1.2

    Bumps minimatch from 3.0.4 to 3.1.2.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Include Invidious URL settings parameters

    Include Invidious URL settings parameters

    Is it possible to include URL adjustments to load videos with preset settings. Especially to use invidious's proxy that avoids Google seeing your IP Address.

    Untrackme android app does this: https://framagit.org/tom79/nitterizeme

    opened by S7venLights 0
  • [Suggestion] Enable redirect in Private Browsing mode per service?

    [Suggestion] Enable redirect in Private Browsing mode per service?

    Hi, Thanks for you extension, it truly helps a lot of people.

    I was wondering if it could be possible and not too hard to add an option on each service to enable it, but to be able to choose between "always" and "private browsing mode only".

    This way you could access one or several services when in normal mode, and automatically switch to their privacy-friendly (and often, faster) alternative when in "private mode".

    opened by nanawel 0
  • Reddit: Only redirect a whitelist of routes

    Reddit: Only redirect a whitelist of routes

    There are many URLs on Reddit which aren't on Libreddit, namely the /dev/api which isn't on Libreddit.

    Pages that aren't on Libreddit I would expect not to redirect, and instead take me to the standard Reddit.

    A whitelist should include:

    • /
    • /u/**
    • /r/**
    opened by SethFalco 0
Owner
Simon Brazell
PGP: 554B AA6A D37D 7C30 D960 0F14 D765 747F EAA3 B89D
Simon Brazell
the easiest way to use Google Maps

Important If you're developer, I'm moving gmaps.js to NPM, you can give your opinion and check the migration progress in Issue #404 gmaps.js - A Javas

Gustavo Leon 7.1k Dec 28, 2022
the easiest way to use Google Maps

Important If you're developer, I'm moving gmaps.js to NPM, you can give your opinion and check the migration progress in Issue #404 gmaps.js - A Javas

Gustavo Leon 7.1k Apr 7, 2021
Downloads satellite images from Google Maps, only slightly illegal.

Google Maps Satellite Downloader This is a script to download satellite images from Google Maps. The below mentioned optimization system requires that

null 5 Oct 31, 2022
Polymaps is a free JavaScript library for making dynamic, interactive maps in modern web browsers.

Polymaps Polymaps is a free JavaScript library for making dynamic, interactive maps in modern web browsers. See http://polymaps.org for more details.

Urban Airship 1.6k Dec 23, 2022
This is a collection of over two hundred code samples an growing for the Bing Maps V8 web control.

Bing Maps V8 Code Samples This is a collection of over a hundred code samples for the Bing Maps V8 web control. These samples have been collected from

Microsoft 130 Dec 8, 2022
This project contains the TypeScript definitions for the Bing Maps V8 Web Control.

Bing Maps V8 TypeScript Definitions These are the official TypeScript definitions for the Bing Maps V8 Web Control. These can be used to provide intel

Microsoft 35 Nov 23, 2022
An open-source JavaScript library for world-class 3D globes and maps :earth_americas:

CesiumJS is a JavaScript library for creating 3D globes and 2D maps in a web browser without a plugin. It uses WebGL for hardware-accelerated graphics

Cesium 9.7k Dec 26, 2022
UNMAINTAINED Open source JavaScript renderer for Kartograph SVG maps

This project is not maintained anymore. Here are a few reasons why I stopped working on kartograph.js: there's no need to support non-SVG browsers any

null 1.5k Dec 11, 2022
An open-source JavaScript library for world-class 3D globes and maps :earth_americas:

CesiumJS is a JavaScript library for creating 3D globes and 2D maps in a web browser without a plugin. It uses WebGL for hardware-accelerated graphics

Cesium 9.7k Jan 3, 2023
React components for Leaflet maps

React Leaflet React components for Leaflet maps. Documentation Getting started API reference Changes See the CHANGELOG file. Contributing See the CONT

Paul Le Cam 4.4k Jan 3, 2023
Vue 2 components for Leaflet maps

Vue2Leaflet Vue2Leaflet is a JavaScript library for the Vue framework that wraps Leaflet making it easy to create reactive maps. How to install npm in

Vue Leaflet 1.9k Dec 29, 2022
Converts geojson to svg string given svg viewport size and maps extent.

geojson2svg Converts geojson to svg string given svg viewport size and maps extent. Check world map, SVG scaled map and color coded map examples to de

Gagan Bansal 163 Dec 17, 2022
AngularJS directive to embed an interact with maps managed by Leaflet library

Angular Leaflet Why the fork? While we are grateful for all the original work at tombatossals/angular-leaflet-directive. We need to be able to operate

AngularUI 313 Nov 10, 2022
An online tool to generate and visualize maps for irregular and/or gapped LED layouts, for use with FastLED, Pixelblaze and other libraries.

An online tool to generate and visualize maps for irregular and/or gapped LED layouts, for use with FastLED, Pixelblaze and other libraries.

Jason Coon 172 Dec 8, 2022
đŸ–Œïž Create beautiful maps from OpenStreetMap data in a webapp

prettymapp ?? Prettymapp is a webapp to create beautiful maps from OpenStreetMap data (based on prettymaps) ?? Try it out here: prettymapp on streaml

Christoph Rieke 233 Jan 3, 2023
Dashboards-maps is a frontend plugin that helps you in uploading custom GeoJSON to OpenSearch and communicates with the geospatial backend plugin for the same.

Welcome! Project Resources Code of Conduct License Copyright Dashboards-Maps Dashboards-maps is a frontend plugin that helps you in uploading custom G

null 9 Dec 28, 2022
Interactive, thoroughly customizable maps in the browser, powered by vector tiles and WebGL

Mapbox GL JS is a JavaScript library for interactive, customizable vector maps on the web. It takes map styles that conform to the Mapbox Style Specif

Mapbox 9.4k Jan 7, 2023
React friendly API wrapper around MapboxGL JS

react-map-gl | Docs react-map-gl is a suite of React components designed to provide a React API for Mapbox GL JS-compatible libraries. More informatio

Vis.gl 6.9k Jan 2, 2023
A Google Earth Engine tool for identifying satellite radar interference

Many military radars interfere with open source satellite imagery when they're turned on. A new tool lets anyone monitor when and where these radars a

Bellingcat 411 Dec 27, 2022