about summary refs log tree commit diff stats
path: root/src/instances
diff options
context:
space:
mode:
authorEdward <101938856+EdwardLangdon@users.noreply.github.com>2022-10-09 18:40:39 +0530
committerGitHub <noreply@github.com>2022-10-09 18:40:39 +0530
commit488c8c7c8b6b3431aed56c7eb1bc394fc8b6a321 (patch)
tree5e7d60bb0f818f0c37ab26babe127b26dd6baad7 /src/instances
parentUpdate LibreDirect messages pt_BR 07-29-2022 (diff)
parentUpdated instances (diff)
downloadlibredirect-488c8c7c8b6b3431aed56c7eb1bc394fc8b6a321.zip
Merge branch 'master' into patch-1
Diffstat (limited to 'src/instances')
-rw-r--r--src/instances/beatbump.json4
-rw-r--r--src/instances/bibliogram.json6
-rw-r--r--src/instances/blacklist.json73
-rw-r--r--src/instances/cloudtube.json4
-rw-r--r--src/instances/data.json718
-rw-r--r--src/instances/facil.json2
-rw-r--r--src/instances/get_instances.py657
-rw-r--r--src/instances/neuters.json2
8 files changed, 712 insertions, 754 deletions
diff --git a/src/instances/beatbump.json b/src/instances/beatbump.json
index 4c7f65a6..c5c78123 100644
--- a/src/instances/beatbump.json
+++ b/src/instances/beatbump.json
@@ -1,6 +1,6 @@
 {
-	"normal": ["https://beatbump.ml"],
-	"tor": [],
+	"clearnet": ["https://beatbump.ml", "https://beatbump.esmailelbob.xyz"],
+	"tor": ["http://beatbump.lqs5fjmajyp7rvp4qvyubwofzi6d4imua7vs237rkc4m5qogitqwrgyd.onion"],
 	"i2p": [],
 	"loki": []
 }
diff --git a/src/instances/bibliogram.json b/src/instances/bibliogram.json
new file mode 100644
index 00000000..b08aa7a0
--- /dev/null
+++ b/src/instances/bibliogram.json
@@ -0,0 +1,6 @@
+{
+	"clearnet": ["https://bibliogram.1d4.us", "https://bibliogram.froth.zone", "https://ig.tokhmi.xyz", "https://ig.beparanoid.de", "https://bibliogram.priv.pw"],
+	"tor": [],
+	"i2p": [],
+	"loki": []
+}
diff --git a/src/instances/blacklist.json b/src/instances/blacklist.json
index 5819fb7d..8bf43ebf 100644
--- a/src/instances/blacklist.json
+++ b/src/instances/blacklist.json
@@ -1,56 +1,99 @@
 {
   "cloudflare": [
     "https://invidious.kavin.rocks",
+    "https://invidious.rhyshl.live",
     "https://piped.kavin.rocks",
     "https://piped.tokhmi.xyz",
     "https://piped.moomoo.me",
-    "https://piped.syncpundit.com",
     "https://piped.mha.fi",
-    "https://piped.shimul.me",
-    "https://pipedus.palash.dev",
+    "https://de-piped.shimul.me",
+    "https://watch.whatever.social",
+    "https://piped.garudalinux.org",
+    "https://y.rivo.lol",
     "https://nitter.domain.glass",
     "https://birdsite.xanny.family",
-    "https://nitter.moomoo.me",
     "https://notabird.site",
     "https://fuckthesacklers.network",
     "https://nitter.winscloud.net",
     "https://twtr.bch.bar",
     "https://twitter.dr460nf1r3.org",
     "https://nitter.garudalinux.org",
-    "https://nitter.wef.lol",
     "https://nitter.catalyst.sx",
     "https://nitter.fprivacy.com",
-    "https://bib.actionsack.com",
+    "https://read.whatever.social",
+    "https://nitter.rawbit.ninja",
+    "https://nitter.privacytools.io",
+    "https://nitter.sneed.network",
+    "https://n.sneed.network",
+    "https://nitter.twei.space",
+    "https://nitter.d420.de",
     "https://libreddit.domain.glass",
     "https://r.nf",
-    "https://libreddit.flux.industries",
-    "https://lr.oversold.host",
     "https://libreddit.hu",
-    "https://lr.stilic.ml",
     "https://reddi.tk",
     "https://r.walkx.org",
-    "https://libreddit.yonalee.eu",
-    "https://libreddit.winscloud.net",
     "https://r.ahwx.org",
     "https://reddit.dr460nf1r3.org",
     "https://libreddit.encrypted-data.xyz",
     "https://libreddit.eu.org",
+    "https://libreddit.cachyos.org",
+    "https://futureddit.gq",
+    "https://libreddit.freedit.eu",
     "https://teddit.domain.glass",
     "https://teddit.httpjames.space",
     "https://teddit.encrypted-data.xyz",
     "https://teddit.garudalinux.org",
     "https://tedd.it",
+    "https://wiki.privacytools.io",
+    "https://teddit.rawbit.ninja",
     "https://wiki.604kph.xyz",
-    "https://searx.org",
+    "https://wiki.privacytools.io",
+    "https://wikiless.rawbit.ninja",
+    "https://scribe.rawbit.ninja",
+    "https://lingva.garudalinux.org",
+    "https://translate.dr460nf1r3.org",
+    "https://libretranslate.com",
     "https://searx.run",
-    "https://search.albony.xyz",
+    "https://searx.org",
     "https://search.garudalinux.org",
     "https://search.dr460nf1r3.org",
     "https://search.wef.lol",
     "https://i.actionsack.com",
-    "https://rimgo.encrypted-data.xyz"
+    "https://rimgo.encrypted-data.xyz",
+    "https://beatbump.ml",
+    "https://listen.whatever.social"
   ],
   "authenticate": [
-    "https://nitter.nixnet.services"
+    "https://nitter:nitter@nitter.nixnet.services"
+  ],
+  "offline": [
+    "https://invidious.rhyshl.live",
+    "https://proxitok.odyssey346.dev",
+    "https://nhanh.cloud",
+    "https://ntr.odyssey346.dev",
+    "https://futureddit.gq",
+    "https://teddit.ggc-project.de",
+    "https://teddit.froth.zone",
+    "https://teddit.tokhmi.xyz",
+    "https://wiki.privacytools.io",
+    "https://quetre.odyssey346.dev",
+    "https://st.odyssey346.dev",
+    "https://translate.projectsegfau.lt",
+    "https://jsearch.pw",
+    "https://searx.gnu.style",
+    "https://searx.semipvt.com",
+    "https://etsi.me",
+    "https://search.chemicals-in-the-water.eu",
+    "https://search.zzls.xyz",
+    "https://searx.ericaftereric.top",
+    "https://searx.fmac.xyz",
+    "https://www.webrats.xyz",
+    "https://gowogle.voring.me",
+    "https://whoogle.esmailelbob.xyz",
+    "https://search.wef.lol",
+    "https://i.bcow.xyz",
+    "https://lbry.bcow.xyz",
+    "https://beatbump.ml",
+    "https://bw.odyssey346.dev"
   ]
 }
\ No newline at end of file
diff --git a/src/instances/cloudtube.json b/src/instances/cloudtube.json
index 402adc39..8742d09c 100644
--- a/src/instances/cloudtube.json
+++ b/src/instances/cloudtube.json
@@ -1,6 +1,6 @@
 {
-	"normal": ["https://tube.cadence.moe", "https://yt.beparanoid.de"],
-	"tor": ["http://yt.prnoid54e44a4bduq5due64jkk7wcnkxcp5kv3juncm7veptjcqudgyd.onion"],
+	"clearnet": ["https://tube.cadence.moe"],
+	"tor": [],
 	"i2p": [],
 	"loki": []
 }
diff --git a/src/instances/data.json b/src/instances/data.json
index a532260f..a5a7177e 100644
--- a/src/instances/data.json
+++ b/src/instances/data.json
@@ -1,86 +1,110 @@
 {
   "invidious": {
-    "normal": [
+    "clearnet": [
       "https://yewtu.be",
       "https://vid.puffyan.us",
       "https://invidious.snopyta.org",
       "https://invidious.kavin.rocks",
       "https://inv.riverside.rocks",
-      "https://invidious.osi.kr",
+      "https://invidio.xamh.de",
       "https://y.com.sb",
       "https://yt.artemislena.eu",
-      "https://invidious.flokinet.to",
       "https://invidious.sethforprivacy.com",
       "https://invidious.tiekoetter.com",
+      "https://invidious.flokinet.to",
       "https://inv.bp.projectsegfau.lt",
-      "https://invidious.projectsegfau.lt",
       "https://inv.vern.cc",
       "https://invidious.nerdvpn.de",
+      "https://invidious.projectsegfau.lt",
+      "https://invidious.rhyshl.live",
+      "https://inv.privacy.com.de",
       "https://invidious.slipfox.xyz",
-      "https://youtube.076.ne.jp",
       "https://invidious.esmailelbob.xyz",
-      "https://invidious.weblibre.org",
+      "https://youtube.076.ne.jp",
       "https://invidious.namazso.eu"
     ],
     "tor": [
-      "http://c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion",
       "http://w6ijuptxiku4xpnnaetxvnkc5vqcdu7mgns2u77qefoixi63vbvnpnqd.onion",
-      "http://kbjggqkzv65ivcqj6bumvp337z6264huv5kpkwuv6gu5yjiskvan7fad.onion",
+      "http://c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion",
       "http://grwp24hodrefzvjjuccrkw3mjq4tzhaaq32amf33dzpmuxe7ilepcmad.onion",
       "http://osbivz6guyeahrwp2lnwyjk2xos342h4ocsxyqrlaopqjuhwn2djiiyd.onion",
       "http://u2cvlit75owumwpy4dj2hsmvkq7nvrclkpht7xgyye2pyoxhpmclkrad.onion",
       "http://euxxcnhsynwmfidvhjf6uzptsmh4dipkmgdmcmxxuo7tunp3ad2jrwyd.onion",
-      "http://invidious.lqs5fjmajyp7rvp4qvyubwofzi6d4imua7vs237rkc4m5qogitqwrgyd.onion",
-      "http://inv.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion"
+      "http://invidious.esmail5pdn24shtvieloeedh7ehz3nrwcdivnfhfcedl7gf4kwddhkqd.onion",
+      "http://inv.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion",
+      "http://am74vkcrjp2d5v36lcdqgsj2m6x36tbrkhsruoegwfcizzabnfgf5zyd.onion",
+      "http://ng27owmagn5amdm7l5s3rsqxwscl5ynppnis5dqcasogkyxcfqn7psid.onion",
+      "http://kbjggqkzv65ivcqj6bumvp337z6264huv5kpkwuv6gu5yjiskvan7fad.onion"
+    ],
+    "i2p": [
+      "http://verni6dr4qxjgjumnvesxerh5rvhv6oy5ddeibaqy5d7tgbiiyfa.b32.i2p"
     ],
-    "i2p": [],
     "loki": []
   },
   "piped": {
-    "normal": [
+    "clearnet": [
       "https://piped.kavin.rocks",
       "https://piped.tokhmi.xyz",
       "https://piped.moomoo.me",
-      "https://il.ax",
-      "https://piped.syncpundit.com",
       "https://piped.mha.fi",
-      "https://piped.shimul.me",
+      "https://de-piped.shimul.me",
       "https://pipedus.palash.dev",
+      "https://watch.whatever.social",
+      "https://piped.garudalinux.org",
+      "https://y.rivo.lol",
       "https://yt.jae.fi",
       "https://piped.mint.lgbt",
-      "https://piped.privacy.com.de",
-      "https://piped.esmailelbob.xyz"
-    ],
-    "tor": [
-      "http://piped2bbch4xslbl2ckr6k62q56kon56ffowxaqzy42ai22a4sash3ad.onion"
+      "https://il.ax",
+      "https://piped.esmailelbob.xyz",
+      "https://piped.projectsegfau.lt",
+      "https://piped.privacydev.net",
+      "https://piped.smnz.de",
+      "https://piped.adminforge.de",
+      "https://watch.whatevertinfoil.de",
+      "https://piped.qdi.fi"
     ],
+    "tor": [],
     "i2p": [],
     "loki": []
   },
   "pipedMaterial": {
-    "normal": [
-      "https://piped-material.১.net",
-      "https://piped-material.ftp.sh",
-      "https://piped-staging.ftp.sh",
-      "https://ui.piped.১.net"
+    "clearnet": [
+      "https://piped-material.xn--17b.net",
+      "https://piped-material.ftp.sh"
+    ],
+    "tor": [],
+    "i2p": [],
+    "loki": []
+  },
+  "cloudtube": {
+    "clearnet": [
+      "https://tube.cadence.moe"
     ],
     "tor": [],
     "i2p": [],
     "loki": []
   },
   "proxiTok": {
-    "normal": [
-      "https://proxitok.herokuapp.com",
+    "clearnet": [
+      "https://proxitok.pabloferreiro.es",
       "https://proxitok.pussthecat.org",
+      "https://tok.habedieeh.re",
+      "https://proxitok.esmailelbob.xyz",
+      "https://proxitok.dhusch.de",
       "https://proxitok.privacydev.net",
-      "https://tok.habedieeh.re"
+      "https://proxitok.odyssey346.dev",
+      "https://tok.artemislena.eu",
+      "https://tok.adminforge.de",
+      "https://proxitok.manasiwibi.com"
+    ],
+    "tor": [
+      "http://vywqfflneajejuhg7o5iklqvzemu2fcdrb3gtkvnyqsho6qin5svdsad.onion"
     ],
-    "tor": [],
     "i2p": [],
     "loki": []
   },
   "send": {
-    "normal": [
+    "clearnet": [
       "https://send.vis.ee",
       "https://send.zcyph.cc",
       "https://send.turingpoint.de",
@@ -104,11 +128,11 @@
     "loki": []
   },
   "nitter": {
-    "normal": [
+    "clearnet": [
       "https://nitter.net",
-      "https://nitter.42l.fr",
+      "https://nitter.lacontrevoie.fr",
       "https://nitter.pussthecat.org",
-      "https://nitter.nixnet.services",
+      "https://nitter:nitter@nitter.nixnet.services",
       "https://nitter.fdn.fr",
       "https://nitter.1d4.us",
       "https://nitter.kavin.rocks",
@@ -122,7 +146,6 @@
       "https://nitter.it",
       "https://twitter.censors.us",
       "https://nitter.grimneko.de",
-      "https://n.hyperborea.cloud",
       "https://nitter.ca",
       "https://twitter.076.ne.jp",
       "https://nitter.fly.dev",
@@ -137,14 +160,11 @@
       "https://fuckthesacklers.network",
       "https://nitter.esmailelbob.xyz",
       "https://tw.artemislena.eu",
-      "https://de.nttr.stream",
       "https://nitter.winscloud.net",
       "https://nitter.tiekoetter.com",
       "https://nitter.spaceint.fr",
       "https://twtr.bch.bar",
       "https://nitter.privacy.com.de",
-      "https://nitter.mastodon.pro",
-      "https://nitter.notraxx.ch",
       "https://nitter.poast.org",
       "https://nitter.bird.froth.zone",
       "https://nitter.dcs0.hu",
@@ -154,13 +174,11 @@
       "https://n.ramle.be",
       "https://nitter.cz",
       "https://nitter.privacydev.net",
+      "https://nitter.evil.site",
       "https://tweet.lambda.dance",
-      "https://nitter.ebnar.xyz",
       "https://nitter.kylrth.com",
       "https://nitter.foss.wtf",
       "https://nitter.priv.pw",
-      "https://nt.vern.cc",
-      "https://nitter.wef.lol",
       "https://nitter.tokhmi.xyz",
       "https://nitter.catalyst.sx",
       "https://unofficialbird.com",
@@ -173,15 +191,31 @@
       "https://nederland.unofficialbird.com",
       "https://uk.unofficialbird.com",
       "https://n.l5.ca",
-      "https://nitter.slipfox.xyz"
+      "https://nitter.slipfox.xyz",
+      "https://nitter.soopy.moe",
+      "https://nitter.qwik.space",
+      "https://read.whatever.social",
+      "https://nitter.rawbit.ninja",
+      "https://nt.vern.cc",
+      "https://ntr.odyssey346.dev",
+      "https://nitter.ir",
+      "https://nitter.privacytools.io",
+      "https://nitter.sneed.network",
+      "https://n.sneed.network",
+      "https://nitter.manasiwibi.com",
+      "https://nitter.smnz.de",
+      "https://nitter.twei.space",
+      "https://nitter.inpt.fr",
+      "https://nitter.d420.de",
+      "https://nitter.caioalonso.com",
+      "https://nitter.at",
+      "https://nitter.drivet.xyz",
+      "https://nitter.pw",
+      "https://nitter.nicfab.eu"
     ],
     "tor": [
-      "http://3nzoldnxplag42gqjs23xvghtzf6t6yzssrtytnntc6ppc7xxuoneoad.onion",
-      "http://nitter.l4qlywnpwqsluw65ts7md3khrivpirse744un3x7mlskqauz5pyuzgqd.onion",
       "http://nitter7bryz3jv7e3uekphigvmoyoem4al3fynerxkj22dmoxoq553qd.onion",
       "http://npf37k3mtzwxreiw52ccs5ay4e6qt2fkcs2ndieurdyn2cuzzsfyfvid.onion",
-      "http://nitter.v6vgyqpa7yefkorazmg5d5fimstmvm2vtbirt6676mt7qmllrcnwycqd.onion",
-      "http://i23nv6w3juvzlw32xzoxcqzktegd4i4fu3nmnc2ewv4ggiu4ledwklad.onion",
       "http://26oq3gioiwcmfojub37nz5gzbkdiqp7fue5kvye7d4txv4ny6fb4wwid.onion",
       "http://vfaomgh4jxphpbdfizkm5gbtjahmei234giqj4facbwhrfjtcldauqad.onion",
       "http://iwgu3cv7ywf3gssed5iqtavmrlszgsxazkmwwnt4h2kdait75thdyrqd.onion",
@@ -190,7 +224,7 @@
       "http://jebqj47jgxleaiosfcxfibx2xdahjettuydlxbg64azd4khsxv6kawid.onion",
       "http://nttr2iupbb6fazdpr2rgbooon2tzbbsvvkagkgkwohhodjzj43stxhad.onion",
       "http://nitraeju2mipeziu2wtcrqsxg7h62v5y4eqgwi75uprynkj74gevvuqd.onion",
-      "http://nitter.lqs5fjmajyp7rvp4qvyubwofzi6d4imua7vs237rkc4m5qogitqwrgyd.onion",
+      "http://nitter.esmail5pdn24shtvieloeedh7ehz3nrwcdivnfhfcedl7gf4kwddhkqd.onion",
       "http://ibsboeui2im5o7dxnik3s5yghufumgy5abevtij5nbizequfpu4qi4ad.onion",
       "http://ec5nvbycpfa5k6ro77blxgkyrzbkv7uy6r5cngcbkadtjj2733nm3uyd.onion",
       "http://twitter.ap3jtgssd7qn4vfoa62gi2ijddoblslbeuw5dan3xt7myvqpura5i4qd.onion",
@@ -200,123 +234,98 @@
       "http://nitterqdyumlovt7tjqpdjrluitgmtpa53qq3idlpgoe4kxo7gs3xvad.onion",
       "http://nitter.privpw3tndpkw6pnp3g727zfgfdzbu3k6a7chv226s3xymv2p4eiuqyd.onion",
       "http://aaaaaxx74hbzeibageieowryhsqvimbdiitfkfe47tvgawkwkjh3coqd.onion",
-      "http://wiio4sgs4247brk7hj6qck2jxnvldwfdbguigc5ivpxrsegnliyfvuqd.onion"
+      "http://wiio4sgs4247brk7hj6qck2jxnvldwfdbguigc5ivpxrsegnliyfvuqd.onion",
+      "http://qwikxx2erhx6qrymued6ox2qkf2yeogjwypqvzoif4fqkljixasr6oid.onion",
+      "http://4g47cxugkohbweao2x66nnxxfoe3k7gdfzxej537nhdbwr522sbjxeqd.onion",
+      "http://nt.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion",
+      "http://tw.lpoaj7z2zkajuhgnlltpeqh3zyq7wk2iyeggqaduhgxhyajtdt2j7wad.onion",
+      "http://r2eqimhkvxboaltbdsectoo3hkf476pyemsdykclexzajbfx5v6ojlyd.onion",
+      "http://li7snkj6oituazbkr5clmilccwwumhd2dntbhttxomy4dfakeeoar4qd.onion",
+      "http://a5xyidyppowvblric6k6nixgf2eqwnb7zzeaarj7slqbv7tb6ip5t3ad.onion"
     ],
-    "i2p": [],
-    "loki": []
+    "i2p": [
+      "http://axd6uavsstsrvstva4mzlzh4ct76rc6zdug3nxdgeitrzczhzf4q.b32.i2p",
+      "http://u6ikd6zndl3c4dsdq4mmujpntgeevdk5qzkfb57r4tnfeccrn2qa.b32.i2p",
+      "http://gseczlzmiv23p5vhsktyd7whquq2uy3c5fgkmdohh453qp3daoua.b32.i2p",
+      "http://tm4rwkeysv3zz3q5yacyr4rlmca2c4etkdobfvuqzt6vsfsu4weq.b32.i2p",
+      "http://vernzdedoxuflrrxc4vbatbkpjh4k22ecgiqgimdiif62onhagva.b32.i2p"
+    ],
+    "loki": [
+      "http://nitter.priv.loki"
+    ]
   },
   "bibliogram": {
-    "normal": [
-      "https://bibliogram.art",
-      "https://bibliogram.snopyta.org",
-      "https://bibliogram.pussthecat.org",
+    "clearnet": [
       "https://bibliogram.1d4.us",
       "https://bibliogram.froth.zone",
-      "https://insta.trom.tf",
-      "https://insta.tromdienste.de",
       "https://ig.tokhmi.xyz",
       "https://ig.beparanoid.de",
-      "https://bibliogram.privacydev.net",
-      "https://bibliogram.priv.pw",
-      "https://ig.funami.tech",
-      "https://bib.actionsack.com"
+      "https://bibliogram.priv.pw"
     ],
     "tor": [],
     "i2p": [],
     "loki": []
   },
   "libreddit": {
-    "normal": [
-      "https://libredd.it",
+    "clearnet": [
       "https://libreddit.spike.codes",
-      "https://libreddit.dothq.co",
       "https://libreddit.kavin.rocks",
       "https://reddit.invak.id",
-      "https://reddit.phii.me",
       "https://lr.riverside.rocks",
       "https://libreddit.strongthany.cc",
-      "https://libreddit.database.red",
       "https://libreddit.privacy.com.de",
       "https://libreddit.domain.glass",
-      "https://libreddit.sugoma.tk",
-      "https://libreddit.jamiethalacker.dev",
-      "https://reddit.artemislena.eu",
       "https://r.nf",
-      "https://libreddit.some-things.org",
       "https://reddit.stuehieyr.com",
       "https://lr.mint.lgbt",
-      "https://libreddit.igna.rocks",
-      "https://libreddit.autarkic.org",
-      "https://libreddit.flux.industries",
       "https://libreddit.drivet.xyz",
-      "https://lr.oversold.host",
       "https://libreddit.de",
       "https://libreddit.pussthecat.org",
-      "https://libreddit.mutahar.rocks",
       "https://libreddit.northboot.xyz",
       "https://leddit.xyz",
-      "https://de.leddit.xyz",
-      "https://lr.cowfee.moe",
       "https://libreddit.hu",
       "https://libreddit.totaldarkness.net",
       "https://libreddit.esmailelbob.xyz",
       "https://lr.vern.cc",
       "https://libreddit.nl",
-      "https://lr.stilic.ml",
       "https://reddi.tk",
-      "https://libreddit.bus-hit.me",
-      "https://libreddit.datatunnel.xyz",
-      "https://libreddit.crewz.me",
       "https://r.walkx.org",
       "https://libreddit.kylrth.com",
-      "https://libreddit.yonalee.eu",
-      "https://libreddit.winscloud.net",
       "https://libreddit.tiekoetter.com",
       "https://reddit.rtrace.io",
-      "https://libreddit.lunar.icu",
       "https://libreddit.privacydev.net",
-      "https://libreddit.notyourcomputer.net",
       "https://r.ahwx.org",
       "https://bob.fr.to",
-      "https://reddit.beparanoid.de",
       "https://libreddit.dcs0.hu",
       "https://reddit.dr460nf1r3.org",
       "https://rd.jae.su",
-      "https://libreddit.mha.fi",
       "https://libreddit.foss.wtf",
       "https://libreddit.encrypted-data.xyz",
       "https://libreddit.eu.org",
-      "https://l.opnxng.com"
+      "https://l.opnxng.com",
+      "https://libreddit.cachyos.org",
+      "https://rd.funami.tech",
+      "https://libreddit.projectsegfau.lt",
+      "https://futureddit.gq",
+      "https://lr.slipfox.xyz",
+      "https://libreddit.oxymagnesium.com",
+      "https://reddit.utsav2.dev",
+      "https://libreddit.freedit.eu"
     ],
     "tor": [
-      "http://spjmllawtheisznfs7uryhxumin26ssv2draj7oope3ok3wuhy43eoyd.onion",
-      "http://fwhhsbrbltmrct5hshrnqlqygqvcgmnek3cnka55zj4y7nuus5muwyyd.onion",
-      "http://kphht2jcflojtqte4b4kyx7p2ahagv4debjj32nre67dxz7y57seqwyd.onion",
-      "http://inytumdgnri7xsqtvpntjevaelxtgbjqkuqhtf6txxhwbll2fwqtakqd.onion",
-      "http://liredejj74h5xjqr2dylnl5howb2bpikfowqoveub55ru27x43357iid.onion",
-      "http://kzhfp3nvb4qp575vy23ccbrgfocezjtl5dx66uthgrhu7nscu6rcwjyd.onion",
       "http://ecue64ybzvn6vjzl37kcsnwt4ycmbsyf74nbttyg7rkc3t3qwnj7mcyd.onion",
-      "http://ledditqo2mxfvlgobxnlhrkq4dh34jss6evfkdkb2thlvy6dn4f4gpyd.onion",
-      "http://libredoxhxwnmsb6dvzzd35hmgzmawsq5i764es7witwhddvpc2razid.onion",
-      "http://libreddit.2syis2nnyytz6jnusnjurva4swlaizlnleiks5mjp46phuwjbdjqwgqd.onion",
-      "http://ol5begilptoou34emq2sshf3may3hlblvipdjtybbovpb7c7zodxmtqd.onion",
-      "http://lbrdtjaj7567ptdd4rv74lv27qhxfkraabnyphgcvptl64ijx2tijwid.onion",
-      "http://libreddit.lqs5fjmajyp7rvp4qvyubwofzi6d4imua7vs237rkc4m5qogitqwrgyd.onion",
-      "http://reddit.prnoid54e44a4bduq5due64jkk7wcnkxcp5kv3juncm7veptjcqudgyd.onion",
-      "http://inz6tbezfwzexva6dize4cqraj2tjdhygxabmcgysccesvw2pybzhbyd.onion",
-      "http://libreddit.micohauwkjbyw5meacrb4ipicwvwg4xtzl7y7viv53kig2mdcsvwkyyd.onion",
-      "http://lr.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion"
+      "http://libreddit.esmail5pdn24shtvieloeedh7ehz3nrwcdivnfhfcedl7gf4kwddhkqd.onion",
+      "http://ojwp2gtj7dq7scd7gnbac6wp53tklgsicteabrnx2pr7zai64wriiaad.onion"
     ],
     "i2p": [],
     "loki": []
   },
   "teddit": {
-    "normal": [
+    "clearnet": [
       "https://teddit.net",
       "https://teddit.ggc-project.de",
       "https://teddit.zaggy.nl",
       "https://teddit.namazso.eu",
-      "https://teddit.nautolan.racing",
       "https://teddit.tinfoil-hat.net",
       "https://teddit.domain.glass",
       "https://snoo.ioens.is",
@@ -334,20 +343,35 @@
       "https://i.opnxng.com",
       "https://teddit.tokhmi.xyz",
       "https://teddit.garudalinux.org",
-      "https://tedd.it"
+      "https://tedd.it",
+      "https://wiki.privacytools.io",
+      "https://td.vern.cc",
+      "https://teddit.rawbit.ninja",
+      "https://teddit.artemislena.eu",
+      "https://teddit.manasiwibi.com"
     ],
     "tor": [
       "http://snoo.ioensistjs7wd746zluwixvojbbkxhr37lepdvwtdfeav673o64iflqd.onion",
       "http://ibarajztopxnuhabfu7fg6gbudynxofbnmvis3ltj6lfx47b6fhrd5qd.onion",
       "http://tedditfyn6idalzso5wam5qd3kdtxoljjhbrbbx34q2xkcisvshuytad.onion",
       "http://dawtyi5e2cfyfmoht4izmczi42aa2zwh6wi34zwvc6rzf2acpxhrcrad.onion",
-      "http://qtpvyiaqhmwccxwzsqubd23xhmmrt75tdyw35kp43w4hvamsgl3x27ad.onion"
+      "http://qtpvyiaqhmwccxwzsqubd23xhmmrt75tdyw35kp43w4hvamsgl3x27ad.onion",
+      "http://jnuonmf2n36sfdmyksqqqyab3w63cq4kx24olyjleh5z6zzfvyt7uqqd.onion",
+      "http://td.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion",
+      "http://yqu4yj5lju7bmlwpzpmltb5gsu6cw7nnbcxxx4iqemwa56nxjiggf4qd.onion",
+      "http://teddit.lpoaj7z2zkajuhgnlltpeqh3zyq7wk2iyeggqaduhgxhyajtdt2j7wad.onion",
+      "http://24fympskbrdgbf4afuvhqwwl2tv3y2vwxg5t2ktozd4j5b3fob5ntzyd.onion"
+    ],
+    "i2p": [
+      "http://xugoqcf2pftm76vbznx4xuhrzyb5b6zwpizpnw2hysexjdn5l2tq.b32.i2p",
+      "http://teddit.i2p",
+      "http://vzeiwzi7ogwl3ijrfek4fbtwhvamxcpyqoc3s4vcgnhlp54s5clq.b32.i2p",
+      "http://verncco2oaxjikammz4pi7umzp673cme6zuemx7yeeewspwrw3va.b32.i2p"
     ],
-    "i2p": [],
     "loki": []
   },
   "wikiless": {
-    "normal": [
+    "clearnet": [
       "https://wikiless.org",
       "https://wikiless.sethforprivacy.com",
       "https://wiki.604kph.xyz",
@@ -357,65 +381,91 @@
       "https://wikiless.tiekoetter.com",
       "https://wikiless.esmailelbob.xyz",
       "https://wiki.slipfox.xyz",
-      "https://wikiless.funami.tech"
+      "https://wikiless.funami.tech",
+      "https://wl.vern.cc",
+      "https://wiki.privacytools.io",
+      "https://wikiless.rawbit.ninja",
+      "https://wiki.adminforge.de"
     ],
     "tor": [
       "http://dj2tbh2nqfxyfmvq33cjmhuw7nb6am7thzd3zsjvizeqf374fixbrxyd.onion",
       "http://ybgg2evrcdz37y2qes23ff3wjqjdn33tthgoagi76vhxytu4mpxiz5qd.onion",
-      "http://wikiless.lqs5fjmajyp7rvp4qvyubwofzi6d4imua7vs237rkc4m5qogitqwrgyd.onion",
-      "http://c2pesewpalbi6lbfc5hf53q4g3ovnxe4s7tfa6k2aqkf7jd7a7dlz5ad.onion"
+      "http://wikiless.esmail5pdn24shtvieloeedh7ehz3nrwcdivnfhfcedl7gf4kwddhkqd.onion",
+      "http://c2pesewpalbi6lbfc5hf53q4g3ovnxe4s7tfa6k2aqkf7jd7a7dlz5ad.onion",
+      "http://wl.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion",
+      "http://tdx37ew3oke5rxn3yi5r5665ka7ozvehnd4xmnjxxdvqorias2nyl4qd.onion"
     ],
     "i2p": [
+      "http://wikiless.i2p",
       "http://hflqp2ejxygpj6cdwo3ogfieqmxw3b56w7dblt7bor2ltwk6kcfa.b32.i2p",
-      "http://x33lx4h6d7h6xs4eiqwhvaxn3ea5gn2ifmu3jobnvuvn4k4aej7a.b32.i2p"
+      "http://x33lx4h6d7h6xs4eiqwhvaxn3ea5gn2ifmu3jobnvuvn4k4aej7a.b32.i2p",
+      "http://vernesciy2defjsputrjrv6pa5ll6qzrckfffi5lgkumstdojyga.b32.i2p"
     ],
     "loki": []
   },
   "scribe": {
-    "normal": [
+    "clearnet": [
       "https://scribe.rip",
       "https://scribe.nixnet.services",
       "https://scribe.citizen4.eu",
       "https://scribe.bus-hit.me",
-      "https://scribe.froth.zone"
+      "https://scribe.froth.zone",
+      "https://scribe.esmailelbob.xyz",
+      "https://scribe.privacydev.net",
+      "https://scribe.rawbit.ninja",
+      "https://sc.vern.cc"
     ],
     "tor": [],
     "i2p": [],
     "loki": []
   },
   "quetre": {
-    "normal": [
-      "https://quetre.herokuapp.com",
-      "https://quora.vern.cc",
+    "clearnet": [
+      "https://quetre.iket.me",
+      "https://qr.vern.cc",
       "https://quetre.pussthecat.org",
       "https://wuetre.herokuapp.com",
       "https://quetreus.herokuapp.com",
       "https://quetre.tokhmi.xyz",
-      "https://quetre.projectsegfau.lt"
+      "https://quetre.projectsegfau.lt",
+      "https://quetre.esmailelbob.xyz",
+      "https://quetre.odyssey346.dev"
+    ],
+    "tor": [
+      "http://quetre.esmail5pdn24shtvieloeedh7ehz3nrwcdivnfhfcedl7gf4kwddhkqd.onion",
+      "http://qr.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion"
+    ],
+    "i2p": [
+      "http://vernnflenvsqccuanaun7yydnmturi4jkyxlyzhn6ultpje66c3q.b32.i2p"
     ],
-    "tor": [],
-    "i2p": [],
     "loki": []
   },
   "libremdb": {
-    "normal": [
-      "https://libremdb.herokuapp.com",
+    "clearnet": [
+      "https://libremdb.iket.me",
       "https://libremdb.pussthecat.org",
       "https://libremdbeu.herokuapp.com",
-      "https://lmdb.tokhmi.xyz"
+      "https://lmdb.tokhmi.xyz",
+      "https://libremdb.esmailelbob.xyz",
+      "https://ld.vern.cc"
+    ],
+    "tor": [
+      "http://libremdb.esmail5pdn24shtvieloeedh7ehz3nrwcdivnfhfcedl7gf4kwddhkqd.onion",
+      "http://ld.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion"
+    ],
+    "i2p": [
+      "http://vernz3ubrntql4wrgyrssd6u3qzi36zrhz2agbo6vibzbs5olk2q.b32.i2p"
     ],
-    "tor": [],
-    "i2p": [],
     "loki": []
   },
   "simplyTranslate": {
-    "normal": [
+    "clearnet": [
       "https://simplytranslate.org",
       "https://st.tokhmi.xyz",
       "https://translate.josias.dev",
       "https://translate.namazso.eu",
       "https://translate.riverside.rocks",
-      "https://st.manerakai.com",
+      "https://simplytranslate.manerakai.com",
       "https://translate.bus-hit.me",
       "https://simplytranslate.pussthecat.org",
       "https://translate.northboot.xyz",
@@ -425,36 +475,60 @@
       "https://translate.slipfox.xyz",
       "https://st.privacydev.net",
       "https://translate.beparanoid.de",
-      "https://translate.priv.pw"
+      "https://translate.priv.pw",
+      "https://st.odyssey346.dev"
     ],
     "tor": [
       "http://fyng2tsmzmvxmojzbbwmfnsn2lrcyftf4cw6rk5j2v2huliazud3fjid.onion",
       "http://xxtbwyb5z5bdvy2f6l2yquu5qilgkjeewno4qfknvb3lkg3nmoklitid.onion",
-      "http://translate.prnoid54e44a4bduq5due64jkk7wcnkxcp5kv3juncm7veptjcqudgyd.onion"
+      "http://translate.prnoid54e44a4bduq5due64jkk7wcnkxcp5kv3juncm7veptjcqudgyd.onion",
+      "http://simplytranslate.esmail5pdn24shtvieloeedh7ehz3nrwcdivnfhfcedl7gf4kwddhkqd.onion",
+      "http://tl.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion"
     ],
     "i2p": [
-      "http://kmnkkp4v4ublygtnyq46oacy3qw75nrxxniriuaersumw7bfsm2a.b32.i2p"
+      "http://kmnkkp4v4ublygtnyq46oacy3qw75nrxxniriuaersumw7bfsm2a.b32.i2p",
+      "http://verna7avzgd4qqal7k2onjzwxcceqby2gwvya2a2frdswb7z2k4q.b32.i2p"
     ],
     "loki": [
       "http://translate.priv.loki"
     ]
   },
   "lingva": {
-    "normal": [
+    "clearnet": [
       "https://lingva.ml",
       "https://translate.igna.ooo",
       "https://lingva.pussthecat.org",
       "https://translate.plausibility.cloud",
       "https://lingva.lunar.icu",
-      "https://lingva.opnxng.com"
+      "https://lingva.opnxng.com",
+      "https://translate.projectsegfau.lt",
+      "https://lingva.garudalinux.org",
+      "https://translate.dr460nf1r3.org"
     ],
     "tor": [],
     "i2p": [],
     "loki": []
   },
+  "libreTranslate": {
+    "clearnet": [
+      "https://libretranslate.com",
+      "https://libretranslate.de",
+      "https://translate.argosopentech.com",
+      "https://translate.api.skitzen.com",
+      "https://translate.fortytwo-it.com",
+      "https://translate.terraprint.co",
+      "https://lt.vern.cc"
+    ],
+    "tor": [
+      "http://lt.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion"
+    ],
+    "i2p": [
+      "http://vernf45n7mxwqnp5riaax7p67pwcl7wcefdcnqqvim7ckdx4264a.b32.i2p"
+    ],
+    "loki": []
+  },
   "searx": {
-    "normal": [
-      "https://anon.sx",
+    "clearnet": [
       "https://dynabyte.ca",
       "https://jsearch.pw",
       "https://search.ethibox.fr",
@@ -471,9 +545,7 @@
       "https://searx.nakhan.net",
       "https://searx.netzspielplatz.de",
       "https://searx.nixnet.services",
-      "https://searx.org",
-      "https://searx.pwoss.org",
-      "https://searx.rasp.fr",
+      "https://searx.rimkus.it",
       "https://searx.ru",
       "https://searx.run",
       "https://searx.semipvt.com",
@@ -496,11 +568,12 @@
     ],
     "tor": [
       "http://3afisqjw2rxm6z7mmstyt5rx75qfqrgxnkzftknbp2vhipr2nrmrjdyd.onion",
-      "http://w5rl6wsd7mzj4bdkbuqvzidet5osdsm5jhg2f7nvfidakfq5exda5wid.onion",
+      "http://privateoz3u5utrimal2edr56j3r5caakektxxgixigdkycuxigvquid.onion",
       "http://yra4tke2pwcnatxjkufpw6kvebu3h3ti2jca2lcdpgx3mpwol326lzid.onion",
       "http://z5vawdol25vrmorm4yydmohsd4u6rdoj2sylvoi3e3nqvxkvpqul7bqd.onion",
       "http://zbuc3bbzbfdqqo2x46repx2ddajbha6fpsjeeptjhhhhzji3zopxdqyd.onion",
-      "http://f4qfqajszpx5b7itzxt6mb7kj4ktpgbdq7lq6xaiqyqx6a7de3epptad.onion"
+      "http://f4qfqajszpx5b7itzxt6mb7kj4ktpgbdq7lq6xaiqyqx6a7de3epptad.onion",
+      "http://searx.micohauwkjbyw5meacrb4ipicwvwg4xtzl7y7viv53kig2mdcsvwkyyd.onion"
     ],
     "i2p": [
       "http://ransack.i2p",
@@ -509,39 +582,48 @@
     "loki": []
   },
   "searxng": {
-    "normal": [
+    "clearnet": [
       "https://darmarit.org/searx",
       "https://de.xcxc.ml",
       "https://etsi.me",
-      "https://icanfindit.online",
       "https://jackgoss.xyz",
+      "https://metasearch.nl",
       "https://northboot.xyz",
+      "https://notsearch.uk",
       "https://opnxng.com",
       "https://paulgo.io",
       "https://priv.au",
-      "https://private-searx.ml",
       "https://privatus.live",
       "https://s.frlt.one",
+      "https://s.trung.fun",
       "https://s.zhaocloud.net",
+      "https://saber.tk",
+      "https://search.0relay.com",
       "https://search.affusio.com",
-      "https://search.ashs.club",
-      "https://search.bingowaves.xyz",
       "https://search.bus-hit.me",
       "https://search.chemicals-in-the-water.eu",
+      "https://search.cronobox.one",
       "https://search.disroot.org",
       "https://search.gcomm.ch",
       "https://search.kiwitalk.de",
       "https://search.mdosch.de",
+      "https://search.mpx.wtf",
       "https://search.neet.works",
       "https://search.ononoki.org",
       "https://search.privacyguides.net",
       "https://search.projectsegfau.lt",
       "https://search.rabbit-company.com",
+      "https://search.rhscze.cf",
+      "https://search.rowie.at",
       "https://search.sapti.me",
+      "https://search.serginho.dev",
+      "https://search.smnz.de",
       "https://search.teamriverbubbles.com",
       "https://search.unlocked.link",
+      "https://search.uspersec.com",
       "https://search.vidhukant.xyz",
       "https://search.zzls.xyz",
+      "https://searx.baczek.me",
       "https://searx.be",
       "https://searx.becomesovran.com",
       "https://searx.chocoflan.net",
@@ -551,50 +633,55 @@
       "https://searx.fi",
       "https://searx.fmac.xyz",
       "https://searx.gnous.eu",
-      "https://searx.loafland.xyz",
+      "https://searx.kujonello.cf",
       "https://searx.mha.fi",
       "https://searx.mistli.net",
       "https://searx.namejeff.xyz",
+      "https://searx.org",
       "https://searx.orion-hub.fr",
       "https://searx.priv.pw",
       "https://searx.prvcy.eu",
-      "https://searx.rimkus.it",
       "https://searx.sethforprivacy.com",
       "https://searx.sev.monster",
       "https://searx.slipfox.xyz/searx",
       "https://searx.tiekoetter.com",
-      "https://searx.vimproved.me",
-      "https://searx.youshitsune.me",
       "https://searx.zcyph.cc",
-      "https://searxng.au/searx",
-      "https://searxng.tordenskjold.de",
+      "https://searxng.dupa.edu.pl",
+      "https://searxng.nicfab.eu",
       "https://searxng.zackptg5.com",
       "https://serx.ml",
+      "https://sh0.it",
+      "https://soek.allesbeste.com",
       "https://srx.cosmohub.io",
       "https://swag.pw",
+      "https://trydex.tk/searxng",
       "https://www.gruble.de",
       "https://www.webrats.xyz",
-      "https://xcxc.ml"
+      "https://xcxc.ml",
+      "https://xo.wtf"
     ],
     "tor": [
+      "http://w5rl6wsd7mzj4bdkbuqvzidet5osdsm5jhg2f7nvfidakfq5exda5wid.onion",
       "http://4n53nafyi77iplnbrpmxnp3x4exbswwxigujaxy3b37fvr7bvlopxeyd.onion",
-      "http://x5gdjh6t7kb4yubpufhtc3l3df2acev3emxdasd5vyuyoon5rzf5zkyd.onion",
-      "http://search3q76rqpektbrchlf2rjq4fnbxzeov6rljdywg3nwbunpgd7bid.onion",
-      "http://searchoorwalty5a2ailrboa2asqyts2u7bdoqwnjefpgjobpvtzn4qd.onion",
+      "http://b6sxmon57qza6dt36li7huabie5ntrvjr4q5rc2vvbn4hqvzd4phrvyd.onion",
+      "http://searxngg6zleq6ceboe5ltkyo4hyrb3aaycrgzmrljv3jjlb5vcytead.onion",
       "http://gbat2pbpg7ys3fi3pbp64667tt5x66mg45xok35bxdw7v55brm7a27yd.onion",
+      "http://b2c7fvbhnfvwnl6oh2tydhzfx4i37kmmrycq42heqbbe7wovq3uzenid.onion",
       "http://searxdr3pqz4nydgnqocsia2xbywptxbkympa2emn7zlgggrir4bkfad.onion",
-      "http://searx.micohauwkjbyw5meacrb4ipicwvwg4xtzl7y7viv53kig2mdcsvwkyyd.onion",
+      "http://searx.esmail5pdn24shtvieloeedh7ehz3nrwcdivnfhfcedl7gf4kwddhkqd.onion",
+      "http://searxfilowxokbogygrigir4wqxfxqzuxofxgdon7dg6rsii4yxzytyd.onion",
       "http://searx.privpw3tndpkw6pnp3g727zfgfdzbu3k6a7chv226s3xymv2p4eiuqyd.onion",
       "http://rq2w52kyrif3xpfihkgjnhqm3a5aqhoikpv72z3drpjglfzc2wr5z4yd.onion",
       "http://fub6vgedgeadlu3ctskrpkcqjruh76tckwtj5swfhyblgml2tzgzckqd.onion/searx",
       "http://searx3aolosaf3urwnhpynlhuokqsgz47si4pzz5hvb7uuzyjncl2tid.onion",
-      "http://4tz2vlnwk2apf2rpinkqv6uxvfgo5xjx6vl5vp7lxgaiooumetjpstqd.onion"
+      "http://4tz2vlnwk2apf2rpinkqv6uxvfgo5xjx6vl5vp7lxgaiooumetjpstqd.onion",
+      "https://lgmekfnpealdqhnctyg3p5fuelpdwnbqbwnl2ickpdoodzatzgz27ryd.onion"
     ],
     "i2p": [],
     "loki": []
   },
   "whoogle": {
-    "normal": [
+    "clearnet": [
       "https://gowogle.voring.me",
       "https://s.tokhmi.xyz",
       "https://search.albony.xyz",
@@ -614,28 +701,32 @@
     "loki": []
   },
   "librex": {
-    "normal": [
+    "clearnet": [
       "https://librex.beparanoid.de",
+      "https://librex.extravi.dev",
       "https://search.davidovski.xyz",
+      "https://librex.kitscomputer.tk",
       "https://search.funami.tech",
-      "https://librex.catalyst.sx"
+      "https://librex.catalyst.sx",
+      "https://search.madreyk.xyz",
+      "https://search.pabloferreiro.es"
     ],
     "tor": [
-      "http://librex.prnoid54e44a4bduq5due64jkk7wcnkxcp5kv3juncm7veptjcqudgyd.onion",
-      "http://librex.so2mpiyfo4cje7bof5v52y3cvjyo2haxpqfvut4sr6gj2ul4mddx2jid.onion"
+      "http://librex.2356uhnbpv5nk3bni5bv6jg2cd6lgj664kwx3lhyelstpttpyv4kk2qd.onion",
+      "http://ncblhz7q4sfbf755bdbhebfzxcpypz7ewafgi4agatecojz7pln4i3id.onion"
     ],
     "i2p": [
-      "http://fboseyskrqpi6yjiifvz4ryuoiswjezkqsfxfkm2vmbuhehbpr7q.b32.i2p"
+      "http://rra33hiaf6nmby7jfpqe2gqmng3jnzkvbu2n7jgce7vbhoyuhzya.b32.i2p"
     ],
     "loki": []
   },
   "rimgo": {
-    "normal": [
+    "clearnet": [
       "https://i.bcow.xyz",
       "https://rimgo.pussthecat.org",
+      "https://rimgo.totaldarkness.net",
       "https://rimgo.bus-hit.me",
       "https://rimgo.esmailelbob.xyz",
-      "https://rimgo.lunar.icu",
       "https://i.actionsack.com",
       "https://rimgo.privacydev.net",
       "https://imgur.artemislena.eu",
@@ -644,7 +735,7 @@
       "https://rimgo.mha.fi"
     ],
     "tor": [
-      "http://rimgo.lqs5fjmajyp7rvp4qvyubwofzi6d4imua7vs237rkc4m5qogitqwrgyd.onion",
+      "http://rimgo.esmail5pdn24shtvieloeedh7ehz3nrwcdivnfhfcedl7gf4kwddhkqd.onion",
       "http://rimgo.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion",
       "http://rimgo.micohauwkjbyw5meacrb4ipicwvwg4xtzl7y7viv53kig2mdcsvwkyyd.onion"
     ],
@@ -652,43 +743,135 @@
     "loki": []
   },
   "librarian": {
-    "normal": [
+    "clearnet": [
       "https://lbry.bcow.xyz",
       "https://odysee.076.ne.jp",
       "https://librarian.pussthecat.org",
-      "https://lbry.mutahar.rocks",
+      "https://lbry.projectsegfau.lt",
       "https://librarian.esmailelbob.xyz",
-      "https://lbry.vern.cc"
+      "https://lbry.vern.cc",
+      "https://lbry.slipfox.xyz",
+      "https://lbry.sytes.net",
+      "https://lbry.webhop.me",
+      "https://lbry.mywire.org"
+    ],
+    "tor": [
+      "http://librarian.esmail5pdn24shtvieloeedh7ehz3nrwcdivnfhfcedl7gf4kwddhkqd.onion",
+      "http://lbry.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion",
+      "http://5znbzx2xcymhddzekfjib3isgqq4ilcyxa2bsq6vqmnvbtgu4f776lqd.onion",
+      "http://zjmls4urccc5wxc64ilbv4oqarjab6pbanvmhd2qqt6p7fgqrjjnryqd.onion",
+      "http://bxewpsswttslepw27w2hhxhlizwm7l7y54x3jw5cfrb64hb6lgc557ad.onion"
+    ],
+    "i2p": [],
+    "loki": []
+  },
+  "neuters": {
+    "clearnet": [
+      "https://neuters.de"
+    ],
+    "tor": [],
+    "i2p": [],
+    "loki": []
+  },
+  "beatbump": {
+    "clearnet": [
+      "https://beatbump.ml",
+      "https://beatbump.esmailelbob.xyz"
+    ],
+    "tor": [
+      "http://beatbump.lqs5fjmajyp7rvp4qvyubwofzi6d4imua7vs237rkc4m5qogitqwrgyd.onion"
+    ],
+    "i2p": [],
+    "loki": []
+  },
+  "hyperpipe": {
+    "clearnet": [
+      "https://hyperpipe.surge.sh",
+      "https://hyperpipe.esmailelbob.xyz",
+      "https://listen.whatever.social",
+      "https://music.adminforge.de"
     ],
     "tor": [
-      "http://librarian.lqs5fjmajyp7rvp4qvyubwofzi6d4imua7vs237rkc4m5qogitqwrgyd.onion",
-      "http://lbry.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion"
+      "http://hyperpipe.esmail5pdn24shtvieloeedh7ehz3nrwcdivnfhfcedl7gf4kwddhkqd.onion"
+    ],
+    "i2p": [],
+    "loki": []
+  },
+  "facil": {
+    "clearnet": [
+      "https://facilmap.org"
     ],
+    "tor": [],
+    "i2p": [],
+    "loki": []
+  },
+  "simpleertube": {
+    "clearnet": [
+      "https://tube.simple-web.org",
+      "https://simpleertube.esmailelbob.xyz",
+      "https://stube.tokhmi.xyz",
+      "https://st.vern.cc"
+    ],
+    "tor": [],
+    "i2p": [],
+    "loki": []
+  },
+  "breezeWiki": {
+    "clearnet": [
+      "https://breezewiki.com",
+      "https://breezewiki.pussthecat.org",
+      "https://bw.odyssey346.dev",
+      "https://bw.vern.cc",
+      "https://breezewiki.esmailelbob.xyz"
+    ],
+    "tor": [],
     "i2p": [],
     "loki": []
   },
   "peertube": [
+    "https://search.joinpeertube.org",
+    "https://video.bmu.cloud",
+    "https://freedomadultgames.video",
+    "https://tbh.co-shaoghal.net",
+    "https://tube.kansanvalta.org",
+    "https://ytube.retronerd.at",
+    "https://tube.media-techport.de",
+    "https://notobono.de",
+    "https://video.vegafjord.me",
+    "https://peertube-us.howlround.com",
+    "https://peertube-eu.howlround.com",
+    "https://pt.freedomwolf.cc",
+    "https://vr360tube.online",
+    "https://bodavr.com",
+    "https://peertube.tni-hosted.nl",
+    "https://videos.parleur.net",
+    "https://tube.azadehafzar.ir",
+    "https://pewflix.com",
+    "https://video.electronicping.net",
+    "https://videos.im.allmendenetz.de",
+    "https://tube.cyberia.club",
+    "https://casstream.nohost.me",
+    "https://peertube.askan.info",
+    "https://apertatube.net",
+    "https://beetoons.tv",
+    "https://rankett.net",
+    "https://tube.xsoftware.it",
+    "https://video.ut0pia.org",
+    "https://kinotu.be",
+    "https://tube.nogafa.org",
+    "https://www.neptube.io",
+    "https://tube.ghk-academy.info",
+    "https://pcbu.nl",
     "https://pire.artisanlogiciel.net",
-    "https://trutube.xyz",
     "https://tube-test.apps.education.fr",
     "https://tube-sciences-technologies.apps.education.fr",
-    "https://stream.conesphere.cloud",
     "https://tube-institutionnel.apps.education.fr",
-    "https://trutube.online",
     "https://tube-cycle-3.apps.education.fr",
     "https://video.manicphase.me",
-    "https://tube.emy.plus",
-    "https://v.bearvideo.win",
     "https://tubulus.openlatin.org",
-    "https://peertube.securetown.top",
-    "https://tv.datamol.org",
     "https://video.graine-pdl.org",
-    "https://tube.zee.li",
     "https://tube-cycle-2.apps.education.fr",
-    "https://mikeclips.net",
-    "https://tube.s1gm4.eu",
     "https://videos.keyedlimepie.org",
-    "https://video.cpn.so",
     "https://video.davduf.net",
     "https://tube.oldkid.digital",
     "https://tube.fofoca.eu",
@@ -699,246 +882,164 @@
     "https://media.theplattform.net",
     "https://peertube.offerman.com",
     "https://v.lastorder.xyz",
-    "https://video.eradicatinglove.xyz",
-    "https://peertube.thele.me",
-    "https://video.schnitzler.one",
     "https://tube.cybershock.life",
     "https://tube.reseau-canope.fr",
     "https://frentube.myyouniverse.observer",
     "https://tube-maternelle.apps.education.fr",
-    "https://peertube.onionstorm.net",
     "https://dev.dollarvigilante.tv",
     "https://video.trankil.info",
     "https://video.uriopss-pdl.fr",
     "https://pt.bolapara.mywire.org",
-    "https://ptube.ranranhome.info",
-    "https://vidid.pl",
     "https://video.3cmr.fr",
-    "https://tube.die-rote-front.de",
     "https://peertube.miguelcr.me",
     "https://video.thinkof.name",
-    "https://nekofans.tv",
-    "https://video.comun.al",
-    "https://peertube.nrsk.no",
     "https://video.occm.cc",
-    "https://peertube.viviers-fibre.net",
     "https://tube-action-educative.apps.education.fr",
-    "https://themadlads.live",
     "https://jahve.pl",
     "https://videos.yesil.club",
     "https://peertube.adjutor.xyz",
-    "https://peertube.terranout.mine.nu",
     "https://tube.hunterjozwiak.com",
     "https://tube-numerique-educatif.apps.education.fr",
     "https://tube.itsg.host",
-    "https://tube.valinor.fr",
     "https://lucarne.balsamine.be",
     "https://peertube.suranyami.com",
     "https://video.ados.accoord.fr",
     "https://t.0x0.st",
     "https://tube-education-physique-et-sportive.apps.education.fr",
     "https://videos.lemouvementassociatif-pdl.org",
-    "https://videos.casually.cat",
     "https://playroom.kitsunes.world",
-    "https://tube2.nous.media",
-    "https://peertube.freenet.ru",
     "https://peertube.0x5e.eu",
     "https://tube.darknight-coffee.org",
     "https://play.mittdata.se",
-    "https://peertube.lhc.net.br",
-    "https://see.vtopia.live",
     "https://peertube.letoine.fr",
     "https://tube-enseignement-professionnel.apps.education.fr",
-    "https://socpeertube.ru",
     "https://videos.laliguepaysdelaloire.org",
-    "https://videotube.duckdns.org",
     "https://quantube.win",
     "https://twctube.twc-zone.eu",
     "https://vhs.absturztau.be",
-    "https://video.espr.moe",
     "https://peertube.social.my-wan.de",
     "https://phijkchu.com",
     "https://video.lycee-experimental.org",
-    "https://galileo.news",
-    "https://peertube.otakufarms.com",
     "https://tube.motuhake.xyz",
     "https://pt.m0r016.net",
     "https://hitchtube.fr",
     "https://video.fox-romka.ru",
     "https://peertube.ctrl-c.liu.se",
-    "https://peertube.live",
     "https://video.slipfox.xyz",
-    "https://pt.vern.cc",
     "https://vnop.org",
     "https://videos.cassidypunchmachine.com",
-    "https://tv1.gomntu.space",
     "https://dalek.zone",
     "https://seka.pona.la",
     "https://syop.tv",
     "https://watch.thelema.social",
-    "https://tube.miegl.cz",
     "https://mov.clov.fr",
-    "https://videomensoif.ynh.fr",
-    "https://videos.neongarden.life",
     "https://video.vaku.org.ua",
     "https://videos.trom.lt",
-    "https://videod.fr",
     "https://vid.mkp.ca",
     "https://jupiter.tube",
-    "https://tuvideo.encanarias.info",
     "https://videos.squat.net",
     "https://peertube.chaunchy.com",
     "https://tube.vrpnet.org",
     "https://video.tii.space",
-    "https://peertube.familleboisteau.fr",
-    "https://peertube.inubo.ch",
     "https://nightshift.minnix.dev",
     "https://tube.friloux.me",
     "https://peertube.virtual-assembly.org",
-    "https://video.olos311.org",
     "https://peertube.atilla.org",
-    "https://video.lapineige.fr",
-    "https://zapping.no-ip.info",
     "https://tube.azkware.net",
     "https://video.lunasqu.ee",
     "https://v.mkp.ca",
     "https://peertube.eus",
     "https://infothema.net",
     "https://tube.nilsu.org",
-    "https://podlibre.video",
-    "https://videos.tankernn.eu",
     "https://watch.autonomous-zone.earth",
     "https://pirtube.calut.fr",
     "https://y.melonia.se",
-    "https://peertube.cirkau.art",
-    "https://peertube.2i2l.net",
     "https://videos.martyn.berlin",
     "https://turkum.me",
     "https://video.colibris-outilslibres.org",
-    "https://invoice.peertube.biz",
     "https://peertube.chantierlibre.org",
     "https://video.9wd.eu",
     "https://video.niboe.info",
     "https://peertuibe.fedsinfo.nohost.me",
-    "https://s9.gegenstimme.tv",
-    "https://pocketnetpeertube1.nohost.me",
     "https://videos.alamaisondulibre.org",
     "https://videos.tormentasolar.win",
     "https://tube.nestor.coop",
     "https://live.oldskool.fi",
-    "https://dytube.com",
-    "https://tube.thierrytalbert.fr",
     "https://peertube.informaction.info",
     "https://tube.ac-amiens.fr",
     "https://tube.alado.space",
     "https://tube.network.europa.eu",
-    "https://vnchich.com",
     "https://pt.maciej.website",
     "https://peertube.frontmediatique.fr",
     "https://peertube.bgzashtita.es",
     "https://tube.genb.de",
     "https://cliptube.org",
-    "https://tube.tr4sk.me",
     "https://videos.campdarling.com",
-    "https://video.mikka.md",
-    "https://www.aktion-nordost.tv",
     "https://tube.rooty.fr",
     "https://tube.dnet.one",
-    "https://peertube.io",
-    "https://peertube.echelon4.space",
     "https://www.kotikoff.net",
     "https://peertube.nz",
     "https://videos.grafo.zone",
     "https://tube.chocoflan.net",
     "https://video.pthreat.co",
-    "https://peertube.egroc.de",
     "https://pt.k2s.sk",
     "https://video.cats-home.net",
     "https://peertube.narrativerry.xyz",
     "https://tube.9minuti.it",
     "https://krdtube.org",
-    "https://peertube.elforcer.ru",
     "https://tubocatodico.bida.im",
-    "https://linhtran.eu",
     "https://torstenwitte.peertube-host.de",
     "https://peertube.hackerfraternity.org",
     "https://openmedia.edunova.it",
     "https://ocfedtest.hosted.spacebear.ee",
     "https://video.lono.space",
     "https://mirrored.rocks",
-    "https://videopen.net",
     "https://demo.lioncast.org",
     "https://peertube.get-racing.de",
     "https://pierre.tube",
     "https://mirametube.fr",
     "https://vidz.dou.bet",
-    "https://videos.redeyes.site",
     "https://video.hostpath.de",
     "https://free-streams.com",
-    "https://tube.pawelko.net",
     "https://video.livecchi.cloud",
-    "https://anarchy.video",
     "https://peertube.gsugambit.com",
-    "https://media.zat.im",
-    "https://videos.sadx.moe",
     "https://pt.nospy.net",
     "https://yhwh.tube",
-    "https://peerlook.ru",
-    "https://monero.wf",
     "https://tube.kicou.info",
     "https://video.aqr.af",
     "https://videos-passages.huma-num.fr",
     "https://video.linc.systems",
     "https://video.sftblw.moe",
-    "https://peertube.dsmouse.net",
     "https://ptube.horsentiers.fr",
     "https://video.cnt.social",
-    "https://peertube.okko.io",
-    "https://video.mentality.rip",
     "https://tube.03281.fspfc.org",
-    "https://tube.linc.systems",
     "https://peertube.ketchup.noho.st",
     "https://yt.x1337x.fr",
     "https://videos.rabbit-company.com",
     "https://video.paradigmthreat.net",
-    "https://video.lincolncyber.com",
     "https://vid.twhtv.club",
     "https://video.retroedge.tech",
-    "https://truvitv.com",
     "https://pt.ilyamikcoder.com",
     "https://peertube.sensin.eu",
-    "https://watch.riverside.rocks",
-    "https://sharetube.us",
     "https://video.sadmin.io",
     "https://stream.jurnalfm.md",
-    "https://video.asgardius.company",
     "https://video.publicspaces.net",
     "https://video.eientei.org",
     "https://tv.suwerenni.org",
     "https://tube.revertron.com",
     "https://tube.erzbistum-hamburg.de",
-    "https://video.germanische-heilkunde.at",
     "https://views.southfox.me",
-    "https://vide.oxel.me",
     "https://video.mttv.it",
     "https://peertube.cloud.nerdraum.de",
     "https://vid.pretok.tv",
-    "https://videos.slownewsdayshow.com",
     "https://videos.sarcasmstardust.com",
     "https://videos.factsonthegroundshow.com",
-    "https://video.regenpfeifer.net",
-    "https://video.pe6.eu",
     "https://tv.santic-zombie.ru",
     "https://tube.sleeping.town",
-    "https://tube.globalfrens.com",
     "https://peertube.hacknews.pmdcollab.org",
-    "https://freetubes.nohost.me",
     "https://video.snug.moe",
     "https://video.avant-le-strike.buzz",
     "https://videos.ritimo.org",
-    "https://videos.ephphatha.church",
-    "https://video.cerclearistote.com",
-    "https://computerstuff.mooo.com",
     "https://video.greenmycity.eu",
     "https://przej.me",
     "https://pt.mezzo.moe",
@@ -950,60 +1051,44 @@
     "https://bee-tube.fr",
     "https://vid.prometheus.systems",
     "https://tube.nx12.net",
-    "https://redundant2.peertube.support",
     "https://peertube.ignifi.me",
     "https://tv.based.quest",
     "https://peertube.beardedtek.com",
     "https://creemoseducacioninclusiva.uma.es",
     "https://videos.yeswiki.net",
-    "https://tube.lrk.sh",
-    "https://peertube.autogestioncitoyenne.org",
-    "https://stream.dynacloud.ynh.fr",
     "https://video.r3s.nrw",
     "https://peertube.semweb.pro",
     "https://poast.tv",
     "https://testube.distrilab.fr",
     "https://peertube.rse43.com",
-    "https://libremedia.video",
     "https://vid.lelux.fi",
     "https://v.wolfskaempf.de",
-    "https://peertube.chevro.fr",
     "https://media.econoalchemist.com",
     "https://video.qoto.org",
     "https://peertube.maxweiss.io",
     "https://peertube.chatinbit.com",
     "https://peertube.ffs2play.fr",
     "https://peertube.swarm.solvingmaz.es",
-    "https://film.node9.org",
     "https://peertube.mi-site.net",
-    "https://tube.nowtech.io",
     "https://raptube.antipub.org",
     "https://video.cm-en-transition.fr",
     "https://tube.koweb.fr",
     "https://peertube.genma.fr",
     "https://tv.generallyrubbish.net.au",
-    "https://video.travisshears.xyz",
-    "https://videos.codingotaku.com",
     "https://foss.tube",
     "https://peertube.satoshishop.de",
     "https://ua.peertube.red",
     "https://peertube.zwindler.fr",
     "https://videos.fsci.in",
-    "https://swebbtube.se",
     "https://video.dnfi.no",
     "https://peertube.revelin.fr",
-    "https://armstube.com",
     "https://peertube.ti-fr.com",
     "https://video.turbo.chat",
-    "https://tube.toldi.eu",
-    "https://review.peertube.biz",
-    "https://peertube.am-networks.fr",
     "https://video.chbmeyer.de",
     "https://video.rs-einrich.de",
     "https://p2ptv.ru",
     "https://peertube.librenet.co.za",
     "https://h3h3.club",
-    "https://watch.snoot.tube",
     "https://tube.freepeople.fr",
     "https://watch.rt4mn.org",
     "https://video.lrose.de",
@@ -1016,13 +1101,9 @@
     "https://polskijutub.mkljczk.pl",
     "https://peertube.noussommes.org",
     "https://exode.me",
-    "https://megatube.lilomoino.fr",
     "https://video.anartist.org",
     "https://peertube.home.x0r.fr",
     "https://peertube.marud.fr",
-    "https://freetubehub.live",
-    "https://peertube.librelabucm.org",
-    "https://tube4.apolut.net",
     "https://mtube.mooo.com",
     "https://skeptube.fr",
     "https://tube.villejuif.fr",
@@ -1039,9 +1120,7 @@
     "https://open.movie",
     "https://tube.rfc1149.net",
     "https://tube.radiomercure.fr",
-    "https://medias.debrouillonet.org",
     "https://peertube.1984.cz",
-    "https://tube.sp4ke.com",
     "https://pt.nix.uno",
     "https://videos.openmandriva.org",
     "https://video.vanderwarker.photos",
@@ -1063,21 +1142,16 @@
     "https://tube.childrenshealthdefense.eu",
     "https://stream.litera.tools",
     "https://peertube.kriom.net",
-    "https://peertube.grosist.fr",
     "https://peertube.gemlog.ca",
     "https://nettube.uc-netcorsoft.de",
     "https://live.solari.com",
     "https://live.codinglab.ch",
     "https://dud-video.inf.tu-dresden.de",
-    "https://media-test.interior.edu.uy",
     "https://media.interior.edu.uy",
-    "https://peertube.la-scic.fr",
-    "https://phoenixproject.group",
     "https://peertube.sebu77.com",
     "https://www.orion-hub.fr",
     "https://tv.orion-serv.fr",
     "https://video.interru.io",
-    "https://tube.cnr.it",
     "https://peertube.dtmf.ca",
     "https://tube.ponsonaille.fr",
     "https://tube.int5.net",
@@ -1095,12 +1169,9 @@
     "https://video.antopie.org",
     "https://vtr.chikichiki.tube",
     "https://fedimovie.com",
-    "https://videos.thinkerview.com",
     "https://tube.doctors4covidethics.org",
-    "https://yoba.tv",
     "https://tube.mediainformationcenter.de",
     "https://peertube.communecter.org",
-    "https://peertube.librosphere.fr",
     "https://queermotion.org",
     "https://video.audiovisuel-participatif.org",
     "https://peertube.vip",
@@ -1113,7 +1184,6 @@
     "https://tube.nuxnik.com",
     "https://tube.froth.zone",
     "https://peertube.ethibox.fr",
-    "https://www.freetubehub.live",
     "https://tube.communia.org",
     "https://peertube.dragonborn.app",
     "https://ai-tube.ch",
@@ -1124,16 +1194,12 @@
     "https://video.windfluechter.org",
     "https://pocketnetpeertube10.nohost.me",
     "https://tube.io18.top",
-    "https://peertube.remerge.net",
-    "https://video.wuatek.is",
     "https://tube.geekyboo.net",
     "https://notretube.asselma.eu",
     "https://canal.facil.services",
-    "https://ukva.li",
     "https://pt.gordons.gen.nz",
     "https://tube.misterbanal.net",
     "https://peertube.fomin.site",
-    "https://peertube.kenjiyon.xyz",
     "https://tube.g1zm0.de",
     "https://video.ellijaymakerspace.org",
     "https://videos.benpro.fr",
@@ -1169,20 +1235,17 @@
     "https://bideoak.argia.eus",
     "https://video.hainry.fr",
     "https://video.gresille.org",
-    "https://peertube.tangentfox.com",
     "https://puffy.tube",
     "https://tube.kher.nl",
     "https://watch.ocaml.org",
     "https://peertube.kleph.eu",
     "https://tube.missbanal.net",
     "https://pityu.flaki.hu",
-    "https://tv.catalpafestival.fr",
     "https://pony.tube",
     "https://peertube.umeahackerspace.se",
     "https://tube.okcinfo.news",
     "https://www.rocaguinarda.tv",
     "https://videos.wirtube.de",
-    "https://tube.tinfoil-hat.net",
     "https://livegram.net",
     "https://video.ustim.ru",
     "https://merci-la-police.fr",
@@ -1197,7 +1260,6 @@
     "https://peertube.scyldings.com",
     "https://gade.o-k-i.net",
     "https://peertube.mobilsicher.de",
-    "https://video.jigmedatse.com",
     "https://video.amiga-ng.org",
     "https://peertube.espace.si",
     "https://videos.supertuxkart.net",
@@ -1211,7 +1273,6 @@
     "https://peertube.w.utnw.de",
     "https://tube.sp-codes.de",
     "https://tube.apolut.net",
-    "https://tube.mfraters.net",
     "https://tube.pyngu.com",
     "https://peertube.troback.com",
     "https://peertube.ucy.de",
@@ -1225,7 +1286,6 @@
     "https://kino.kompot.si",
     "https://tube.kockatoo.org",
     "https://peertube.cabaal.net",
-    "https://sovran.video",
     "https://stream.k-prod.fr",
     "https://tube.tylerdavis.xyz",
     "https://video.marcorennmaus.de",
@@ -1241,14 +1301,12 @@
     "https://peertube.alpharius.io",
     "https://ptb.lunarviews.net",
     "https://ovaltube.codinglab.ch",
-    "https://video.wilkie.how",
     "https://videos.ahp-numerique.fr",
     "https://auf1.eu",
     "https://tube.toontoet.nl",
     "https://video.gyt.is",
     "https://peertube.jensdiemer.de",
     "https://tube.futuretic.fr",
-    "https://libra.syntazia.org",
     "https://peertube.beeldengeluid.nl",
     "https://tv.lumbung.space",
     "https://peertube.cuatrolibertades.org",
@@ -1266,7 +1324,6 @@
     "https://peertube.radres.xyz",
     "https://darkvapor.nohost.me",
     "https://tube.chaoszone.tv",
-    "https://media.over-world.org",
     "https://tube.avensio.de",
     "https://peertube.klaewyss.fr",
     "https://sender-fm.veezee.tube",
@@ -1280,7 +1337,6 @@
     "https://peertube.iriseden.eu",
     "https://video.shitposter.club",
     "https://tv.mattchristiansenmedia.com",
-    "https://tube.hackerscop.org",
     "https://peertube.kx.studio",
     "https://videos.3d-wolf.com",
     "https://tube.octaplex.net",
@@ -1303,7 +1359,6 @@
     "https://tube.frischesicht.de",
     "https://peertube1.zeteo.me",
     "https://conspiracydistillery.com",
-    "https://peertube.chemnitz.freifunk.net",
     "https://hpstube.fr",
     "https://video.blast-info.fr",
     "https://peertube.bubuit.net",
@@ -1328,7 +1383,6 @@
     "https://peertube.inapurna.org",
     "https://watch.libertaria.space",
     "https://video.triplea.fr",
-    "https://video.catgirl.biz",
     "https://vulgarisation-informatique.fr",
     "https://tube.kotur.org",
     "https://peertube.euskarabildua.eus",
@@ -1339,7 +1393,6 @@
     "https://video.lespoesiesdheloise.fr",
     "https://peertube.luga.at",
     "https://peertube.roflcopter.fr",
-    "https://ptube.rousset.nom.fr",
     "https://peertube.swrs.net",
     "https://tube.shanti.cafe",
     "https://videos.cloudron.io",
@@ -1376,14 +1429,10 @@
     "https://videos.john-livingston.fr",
     "https://melsungen.peertube-host.de",
     "https://evangelisch.video",
-    "https://tube.anufrij.de",
     "https://videos.mastodont.cat",
-    "https://video.taboulisme.com",
     "https://media.undeadnetwork.de",
     "https://tube.dragonpsi.xyz",
-    "https://veezee.tube",
     "https://peertube.nicolastissot.fr",
-    "https://s2.veezee.tube",
     "https://tubes.jodh.us",
     "https://tube.lucie-philou.com",
     "https://video.odayacres.farm",
@@ -1403,7 +1452,6 @@
     "https://video.ecole-89.com",
     "https://tube.kai-stuht.com",
     "https://video.fbxl.net",
-    "https://live.libratoi.org",
     "https://video.p1ng0ut.social",
     "https://watch.deranalyst.ch",
     "https://video.discord-insoumis.fr",
@@ -1431,8 +1479,6 @@
     "https://video.mycrowd.ca",
     "https://kodcast.com",
     "https://video.altertek.org",
-    "https://ruraletv.ovh",
-    "https://videos.weblib.re",
     "https://tube.oisux.org",
     "https://peertube.louisematic.site",
     "https://clap.nerv-project.eu",
@@ -1440,7 +1486,6 @@
     "https://peertube.tspu.edu.ru",
     "https://p.lu",
     "https://serv3.wiki-tube.de",
-    "https://serv1.wiki-tube.de",
     "https://video.lavolte.net",
     "https://peertube.public.cat",
     "https://peertube.anduin.net",
@@ -1451,15 +1496,12 @@
     "https://fotogramas.politicaconciencia.org",
     "https://peertube.pl",
     "https://peertube.manalejandro.com",
-    "https://www4.mir.inter21.net",
     "https://video.csc49.fr",
     "https://tube.wolfe.casa",
     "https://video.dresden.network",
-    "https://peertube.zapashcanon.fr",
     "https://40two.tube",
     "https://tube.amic37.fr",
     "https://video.comptoir.net",
-    "https://kino.schuerz.at",
     "https://peertube.tiennot.net",
     "https://tututu.tube",
     "https://tube.picasoft.net",
@@ -1472,21 +1514,17 @@
     "https://videos.testimonia.org",
     "https://video.mass-trespass.uk",
     "https://peertube.cipherbliss.com",
-    "https://peertube.stemy.me",
     "https://daschauher.aksel.rocks",
     "https://tube.cyano.at",
     "https://tube.nox-rhea.org",
     "https://peertube.securitymadein.lu",
     "https://tube.rita.moe",
-    "https://tuktube.com",
-    "https://v.basspistol.org",
     "https://mytube.kn-cloud.de",
     "https://tube.nuagelibre.fr",
     "https://video.nogafam.es",
     "https://peertube.stream",
     "https://videos.leslionsfloorball.fr",
     "https://player.ojamajo.moe",
-    "https://ftsi.ru",
     "https://video.cigliola.com",
     "https://xxx.noho.st",
     "https://peertube.stefofficiel.me",
@@ -1498,9 +1536,7 @@
     "https://cinema.yunohost.support",
     "https://peertube.s2s.video",
     "https://peertube.travelpandas.eu",
-    "https://video.sdm-tools.net",
     "https://peertube.anzui.dev",
-    "https://video.up.edu.ph",
     "https://video.igem.org",
     "https://worldofvids.com",
     "https://peertube.underworld.fr",
@@ -1508,7 +1544,6 @@
     "https://video.pony.gallery",
     "https://tube.skrep.in",
     "https://tube.others.social",
-    "https://videos.ubuntu-paris.org",
     "https://tube-poitiers.beta.education.fr",
     "https://vid.wildeboer.net",
     "https://battlepenguin.video",
@@ -1519,7 +1554,6 @@
     "https://peertube.davigge.com",
     "https://vod.ksite.de",
     "https://tube.grin.hu",
-    "https://media.inno3.cricket",
     "https://tube.cryptography.dog",
     "https://peertube.zergy.net",
     "https://vid.ncrypt.at",
@@ -1529,8 +1563,6 @@
     "https://video.violoncello.ch",
     "https://peertube.gidikroon.eu",
     "https://tubedu.org",
-    "https://watch.breadtube.tv",
-    "https://video.exodus-privacy.eu.org",
     "https://tilvids.com",
     "https://peertube.devloprog.org",
     "https://peertube.designersethiques.org",
@@ -1567,11 +1599,9 @@
     "https://peertube.netzbegruenung.de",
     "https://plextube.nl",
     "https://tube.opportunis.me",
-    "https://nanawel-peertube.dyndns.org",
     "https://tube-strasbourg.beta.education.fr",
     "https://tube.graz.social",
     "https://tube-besancon.beta.education.fr",
-    "https://vid.garwood.io",
     "https://kolektiva.media",
     "https://peertube.ichigo.everydayimshuflin.com",
     "https://video.lundi.am",
@@ -1588,7 +1618,6 @@
     "https://peertube.debian.social",
     "https://tube.piweb.be",
     "https://peertube.su",
-    "https://video.hackers.town",
     "https://tube.fdn.fr",
     "https://peertube.demonix.fr",
     "https://videos.hauspie.fr",
@@ -1596,7 +1625,6 @@
     "https://mplayer.demouliere.eu",
     "https://video.liberta.vip",
     "https://peertube.gcfamily.fr",
-    "https://video.ploud.fr",
     "https://tube.plaf.fr",
     "https://tube.nah.re",
     "https://dreiecksnebel.alex-detsch.de",
@@ -1635,7 +1663,6 @@
     "https://video.vny.fr",
     "https://peervideo.club",
     "https://tube.taker.fr",
-    "https://peertube.co.uk",
     "https://video.fitchfamily.org",
     "https://video.fdlibre.eu",
     "https://peer.philoxweb.be",
@@ -1684,7 +1711,6 @@
     "https://peertube.makotoworkshop.org",
     "https://peertube.serveur.slv-valbonne.fr",
     "https://video.netsyms.com",
-    "https://video.writeas.org",
     "https://videos.adhocmusic.com",
     "https://vid.y-y.li",
     "https://diode.zone",
@@ -1712,6 +1738,20 @@
     "https://peertube.qtg.fr",
     "https://tube.p2p.legal",
     "https://troll.tv",
-    "https://videos.iut-orsay.fr"
+    "https://videos.iut-orsay.fr",
+    "https://peertube.solidev.net",
+    "https://videos.cemea.org",
+    "https://video.passageenseine.fr",
+    "https://peertube.touhoppai.moe",
+    "https://share.tube",
+    "https://peertube.heraut.eu",
+    "https://peertube.gegeweb.eu",
+    "https://framatube.org",
+    "https://tube.conferences-gesticulees.net",
+    "https://peertube.datagueule.tv",
+    "https://video.lqdn.fr",
+    "https://peertube3.cpy.re",
+    "https://peertube2.cpy.re",
+    "https://peertube.cpy.re"
   ]
 }
\ No newline at end of file
diff --git a/src/instances/facil.json b/src/instances/facil.json
index 798a9cfb..6c89eb17 100644
--- a/src/instances/facil.json
+++ b/src/instances/facil.json
@@ -1,5 +1,5 @@
 {
-	"normal": ["https://facilmap.org"],
+	"clearnet": ["https://facilmap.org"],
 	"tor": [],
 	"i2p": [],
 	"loki": []
diff --git a/src/instances/get_instances.py b/src/instances/get_instances.py
index 5edbfb68..b36cf7ab 100644
--- a/src/instances/get_instances.py
+++ b/src/instances/get_instances.py
@@ -1,36 +1,57 @@
 # Note: Run this script from the root of the repo
 
+import traceback
+import logging
 import requests
 import json
 from urllib.parse import urlparse
-from bs4 import BeautifulSoup
 import re
-from colorama import Fore, Back, Style
-from urllib.parse import urlparse
+from colorama import Fore, Style
 import socket
-import subprocess
 
 mightyList = {}
+config = {}
 
-startRegex = "https?:\/{2}(?:[^\s\/]+\.)+"
+startRegex = r"https?:\/{2}(?:[^\s\/]+\.)+"
 endRegex = "(?:\/[^\s\/]+)*\/?"
 torRegex = startRegex + "onion" + endRegex
 i2pRegex = startRegex + "i2p" + endRegex
 lokiRegex = startRegex + "loki" + endRegex
-authRegex = "https?:\/{2}\S+:\S+@(?:[^\s\/]+\.)+[a-zA-Z0-9]+" + endRegex
+authRegex = r"https?:\/{2}\S+:\S+@(?:[^\s\/]+\.)+[a-zA-Z0-9]+" + endRegex
+
+with open('./src/config/config.json', 'rt') as tmp:
+    config['networks'] = json.load(tmp)['networks']
+
 
 def filterLastSlash(urlList):
     tmp = {}
-    for x in urlList:
-        tmp[x] = {}
-        for y in urlList[x]:
-            tmp[x][y] = []
-            for z in urlList[x][y]:
-                if z.endswith('/'):
-                    tmp[x][y].append(z[:-1])
-                    print(Fore.YELLOW + "Fixed " + Style.RESET_ALL + z)
+    for frontend in urlList:
+        tmp[frontend] = {}
+        for network in urlList[frontend]:
+            tmp[frontend][network] = []
+            for url in urlList[frontend][network]:
+                if url.endswith('/'):
+                    tmp[frontend][network].append(url[:-1])
+                    print(Fore.YELLOW + "Fixed " + Style.RESET_ALL + url)
                 else:
-                    tmp[x][y].append(z)
+                    tmp[frontend][network].append(url)
+    return tmp
+
+
+def idnaEncode(urlList):
+    tmp = {}
+    for frontend in urlList:
+        tmp[frontend] = {}
+        for network in urlList[frontend]:
+            tmp[frontend][network] = []
+            for url in urlList[frontend][network]:
+                try:
+                    encodedUrl = url.encode("idna").decode("utf8")
+                    tmp[frontend][network].append(encodedUrl)
+                    if (encodedUrl != url):
+                        print(Fore.YELLOW + "Fixed " + Style.RESET_ALL + url)
+                except Exception:
+                    tmp[frontend][network].append(url)
     return tmp
 
 
@@ -58,7 +79,7 @@ def is_cloudflare(url):
         instance_ip = socket.gethostbyname(urlparse(url).hostname)
         if instance_ip is None:
             return False
-    except:
+    except Exception:
         return False
     instance_bin = ip2bin(instance_ip)
 
@@ -85,297 +106,244 @@ def is_authenticate(url):
         if 'www-authenticate' in r.headers:
             print(url + ' requires ' + Fore.RED + 'authentication' + Style.RESET_ALL)
             return True
-    except:
+    except Exception:
         return False
     return False
 
 
+def is_offline(url):
+    try:
+        r = requests.get(url, timeout=5)
+        if r.status_code >= 400:
+            print(url + ' is ' + Fore.RED + 'offline' + Style.RESET_ALL)
+            print("Status code")
+            print(r.status_code)
+            return True
+        else:
+            return False
+    except Exception:
+        return False
+
+
+def fetchCache(frontend, name):
+    with open('./src/instances/data.json') as file:
+        mightyList[frontend] = json.load(file)[frontend]
+    print(Fore.YELLOW + 'Failed' + Style.RESET_ALL + ' to fetch ' + name)
+
+
+def fetchFromFile(frontend, name):
+    with open('./src/instances/' + frontend + '.json') as file:
+        mightyList[frontend] = json.load(file)
+    print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + name)
+
+
+def fetchJsonList(frontend, name, url, urlItem, jsonObject):
+    try:
+        r = requests.get(url)
+        rJson = json.loads(r.text)
+        if jsonObject:
+            rJson = rJson['instances']
+        _list = {}
+        for network in config['networks']:
+            _list[network] = []
+        if type(urlItem) == dict:
+            for item in rJson:
+                for network in config['networks']:
+                    if urlItem[network] is not None:
+                        if urlItem[network] in item and item[urlItem[network]] is not None:
+                            if item[urlItem[network]].strip() != '':
+                                _list[network].append(item[urlItem[network]])
+        else:
+            for item in rJson:
+                tmpItem = item
+                if urlItem is not None:
+                    tmpItem = item[urlItem]
+                if tmpItem.strip() == '':
+                    continue
+                elif re.search(torRegex, tmpItem):
+                    _list['tor'].append(tmpItem)
+                elif re.search(i2pRegex, tmpItem):
+                    _list['i2p'].append(tmpItem)
+                elif re.search(lokiRegex, tmpItem):
+                    _list['loki'].append(tmpItem)
+                else:
+                    _list['clearnet'].append(tmpItem)
+
+        mightyList[frontend] = _list
+        print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + name)
+    except Exception:
+        fetchCache(frontend, name)
+        logging.error(traceback.format_exc())
+
+
+def fetchRegexList(frontend, name, url, regex):
+    try:
+        r = requests.get(url)
+        _list = {}
+        for network in config['networks']:
+            _list[network] = []
+
+        tmp = re.findall(regex, r.text)
+
+        for item in tmp:
+            if item.strip() == "":
+                continue
+            elif re.search(torRegex, item):
+                _list['tor'].append(item)
+            elif re.search(i2pRegex, item):
+                _list['i2p'].append(item)
+            elif re.search(lokiRegex, item):
+                _list['loki'].append(item)
+            else:
+                _list['clearnet'].append(item)
+        mightyList[frontend] = _list
+        print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + name)
+    except Exception:
+        fetchCache(frontend, name)
+        logging.error(traceback.format_exc())
+
+
+def fetchTextList(frontend, name, url, prepend):
+    try:
+        r = requests.get(url)
+        tmp = r.text.strip().split('\n')
+
+        _list = {}
+        for network in config['networks']:
+            _list[network] = []
+
+        for item in tmp:
+            item = prepend + item
+            if re.search(torRegex, item):
+                _list['tor'].append(item)
+            elif re.search(i2pRegex, item):
+                _list['i2p'].append(item)
+            elif re.search(lokiRegex, item):
+                _list['loki'].append(item)
+            else:
+                _list['clearnet'].append(item)
+        mightyList[frontend] = _list
+        print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + name)
+    except Exception:
+        fetchCache(frontend, name)
+        logging.error(traceback.format_exc())
+
+
 def invidious():
-    r = requests.get('https://api.invidious.io/instances.json')
-    rJson = json.loads(r.text)
-    invidiousList = {}
-    invidiousList['normal'] = []
-    invidiousList['tor'] = []
-    invidiousList['i2p'] = []
-    invidiousList['loki'] = []
-    for instance in rJson:
-        if instance[1]['type'] == 'https':
-            invidiousList['normal'].append(instance[1]['uri'])
-        elif instance[1]['type'] == 'onion':
-            invidiousList['tor'].append(instance[1]['uri'])
-    mightyList['invidious'] = invidiousList
-    print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'Invidious')
+    name = 'Invidious'
+    frontend = 'invidious'
+    url = 'https://api.invidious.io/instances.json'
+    try:
+        _list = {}
+        _list['clearnet'] = []
+        _list['tor'] = []
+        _list['i2p'] = []
+        _list['loki'] = []
+        r = requests.get(url)
+        rJson = json.loads(r.text)
+        for instance in rJson:
+            if instance[1]['type'] == 'https':
+                _list['clearnet'].append(instance[1]['uri'])
+            elif instance[1]['type'] == 'onion':
+                _list['tor'].append(instance[1]['uri'])
+            elif instance[1]['type'] == 'i2p':
+                _list['i2p'].append(instance[1]['uri'])
+        mightyList[frontend] = _list
+        print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + name)
+    except Exception:
+        fetchCache(frontend, name)
+        logging.error(traceback.format_exc())
 
 
 def piped():
-    r = requests.get(
-        'https://raw.githubusercontent.com/wiki/TeamPiped/Piped/Instances.md')
-
-    tmp = re.findall(
-        '(?:[^\s\/]+\.)+[a-zA-Z]+ (?:\(Official\) )?\| (https:\/{2}(?:[^\s\/]+\.)+[a-zA-Z]+) \| ', r.text)
-    _list = {}
-    _list['normal'] = []
-    _list['tor'] = []
-    _list['i2p'] = []
-    _list['loki'] = []
-    for item in tmp:
-        try:
-            url = requests.get(item, timeout=5).url
-            if url.strip("/") == item:
+    frontend = 'piped'
+    name = 'Piped'
+    try:
+        _list = {}
+        _list['clearnet'] = []
+        _list['tor'] = []
+        _list['i2p'] = []
+        _list['loki'] = []
+        r = requests.get(
+            'https://raw.githubusercontent.com/wiki/TeamPiped/Piped/Instances.md')
+
+        tmp = re.findall(
+            r'(?:[^\s\/]+\.)+[a-zA-Z]+ (?:\(Official\) )?\| (https:\/{2}(?:[^\s\/]+\.)+[a-zA-Z]+) \| ', r.text)
+        for item in tmp:
+            try:
+                url = requests.get(item, timeout=5).url
+                if url.strip("/") == item:
+                    continue
+                else:
+                    _list['clearnet'].append(url)
+            except Exception:
+                logging.error(traceback.format_exc())
                 continue
-            else:
-                _list['normal'].append(url)
-        except:
-            continue
-    mightyList['piped'] = _list
-    print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'Piped')
+        mightyList[frontend] = _list
+        print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + name)
+    except Exception:
+        fetchCache(frontend, name)
+        logging.error(traceback.format_exc())
 
 
 def pipedMaterial():
-    r = requests.get(
-        'https://raw.githubusercontent.com/mmjee/Piped-Material/master/README.md')
-
-    tmp = re.findall(
-            r"\| (https?:\/{2}(?:\S+\.)+[a-zA-Z0-9]*) +\|", r.text)
-    pipedMaterialList = {}
-    pipedMaterialList['normal'] = []
-    pipedMaterialList['tor'] = []
-    pipedMaterialList['i2p'] = []
-    pipedMaterialList['loki'] = []
-    for item in tmp:
-        pipedMaterialList['normal'].append(item)
-    mightyList['pipedMaterial'] = pipedMaterialList
-    print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'pipedMaterial')
+    fetchRegexList('pipedMaterial', 'Piped-Material', 'https://raw.githubusercontent.com/mmjee/Piped-Material/master/README.md', r"\| (https?:\/{2}(?:\S+\.)+[a-zA-Z0-9]*) +\| Production")
 
 
 def cloudtube():
-    json_object = json.dumps(mightyList, ensure_ascii=False, indent=2)
-    with open('./src/instances/cloudtube.json') as file:
-        mightyList['cloudtube'] = json.load(file)
-    print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'CloudTube')
+    fetchFromFile('cloudtube', 'Cloudtube')
 
 
 def proxitok():
-    r = requests.get(
-        'https://raw.githubusercontent.com/wiki/pablouser1/ProxiTok/Public-instances.md')
-
-    tmp = re.findall(
-        r"\| \[.*\]\(([-a-zA-Z0-9@:%_\+.~#?&//=]{2,}\.[a-z]{2,}\b(?:\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?)\)*\|*[A-Z]{0,}.*\|.*\|", r.text)
-    proxiTokList = {}
-    proxiTokList['normal'] = []
-    proxiTokList['tor'] = []
-    proxiTokList['i2p'] = []
-    proxiTokList['loki'] = []
-    for item in tmp:
-        proxiTokList['normal'].append(re.sub(r'/$', '', item))
-    mightyList['proxiTok'] = proxiTokList
-    print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'ProxiTok')
+    fetchRegexList('proxiTok', 'ProxiTok', 'https://raw.githubusercontent.com/wiki/pablouser1/ProxiTok/Public-instances.md', r"\| \[.*\]\(([-a-zA-Z0-9@:%_\+.~#?&//=]{2,}\.[a-z]{2,}\b(?:\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?)\)(?: \(Official\))? +\|(?:(?: [A-Z]*.*\|.*\|)|(?:$))")
 
 
 def send():
-    r = requests.get(
-        'https://gitlab.com/timvisee/send-instances/-/raw/master/README.md')
-    tmp = re.findall(
-        r"- ([-a-zA-Z0-9@:%_\+.~#?&//=]{2,}\.[a-z0-9]{2,}\b(?:\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?)\)*\|*[A-Z]{0,}", r.text)
-    sendList = {}
-    sendList['normal'] = []
-    sendList['tor'] = []
-    sendList['i2p'] = []
-    sendList['loki'] = []
-    for item in tmp:
-        sendList['normal'].append(item)
-    mightyList['send'] = sendList
-    print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'Send')
+    fetchRegexList('send', 'Send', 'https://gitlab.com/timvisee/send-instances/-/raw/master/README.md', r"- ([-a-zA-Z0-9@:%_\+.~#?&//=]{2,}\.[a-z0-9]{2,}\b(?:\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?)\)*\|*[A-Z]{0,}")
 
 
 def nitter():
-    r = requests.get('https://raw.githubusercontent.com/wiki/zedeus/nitter/Instances.md')
-    tmp = re.findall(
-        r"(?:(?:\| \[(?:\S+\.)+[a-zA-Z]+\]\((https?:\/{2}(?:\S+\.)+[a-zA-Z]+)\/?\) (?:\((?:\S+ ?\S*)\) )? *\| (?:✅|🇩🇪) +\|(?:(?:\n)|(?: (?:❌)|(?: ✅)|(?: ❓)|(?: \[))))|(?:-   \[(?:\S+\.)+(?:(?:i2p)|(?:loki))\]\((https?:\/{2}(?:\S+\.)(?:(?:i2p)|(?:loki)))\/?\)))", r.text)
-
-    nitterList = {}
-    nitterList['normal'] = []
-    nitterList['tor'] = []
-    nitterList['i2p'] = []
-    nitterList['loki'] = []
-    for item in tmp:
-        for i in item:
-            if i == '':
-                continue
-            else:
-                item = i
-        if re.search(torRegex, item):
-            nitterList['tor'].append(item)
-        elif re.search(i2pRegex, item):
-            nitterList['i2p'].append(item)
-        elif re.search(lokiRegex, item):
-            nitterList['loki'].append(item)
-        else:
-            nitterList['normal'].append(item)
-    mightyList['nitter'] = nitterList
-    print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'Nitter')
+    fetchRegexList('nitter', 'Nitter', 'https://raw.githubusercontent.com/wiki/zedeus/nitter/Instances.md', r"(?:(?:\| )|(?:-   ))\[(?:(?:\S+\.)+[a-zA-Z0-9]+)\/?\]\((https?:\/{2}(?:\S+\.)+[a-zA-Z0-9]+)\/?\)(?:(?: (?:\((?:\S+ ?\S*)\) )? *\| [^❌]{1,4} +\|(?:(?:\n)|(?: ❌)|(?: ✅)|(?: ❓)|(?: \[)))|(?:\n))")
 
 
 def bibliogram():
-    r = requests.get('https://bibliogram.art/api/instances')
-    rJson = json.loads(r.text)
-    bibliogramList = {}
-    bibliogramList['normal'] = []
-    bibliogramList['tor'] = []
-    bibliogramList['i2p'] = []
-    bibliogramList['loki'] = []
-    for item in rJson['data']:
-        bibliogramList['normal'].append(item['address'])
-    mightyList['bibliogram'] = bibliogramList
-    print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'Bibliogram')
+    fetchFromFile('bibliogram', 'Bibliogram')
 
 
 def libreddit():
-    r = requests.get(
-        'https://raw.githubusercontent.com/spikecodes/libreddit/master/README.md')
-    libredditList = {}
-    libredditList['normal'] = []
-    libredditList['tor'] = []
-    libredditList['i2p'] = []
-    libredditList['loki'] = []
-
-    tmp = re.findall(
-        r"\| \[.*\]\(([-a-zA-Z0-9@:%_\+.~#?&//=]{2,}\.[a-z]{2,}\b(?:\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?)\)*\|*[A-Z]{0,}.*\|.*\|", r.text)
-
-    for item in tmp:
-        if re.search(torRegex, item):
-            libredditList['tor'].append(item)
-        else:
-            libredditList['normal'].append(item)
-    mightyList['libreddit'] = libredditList
-    print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'LibReddit')
+    fetchJsonList('libreddit', 'Libreddit', 'https://github.com/libbacon/libreddit-instances/raw/master/instances.json', {'clearnet': 'url', 'tor': 'onion', 'i2p': 'i2p', 'loki': None}, True)
 
 
 def teddit():
-    r = requests.get(
-        'https://codeberg.org/teddit/teddit/raw/branch/main/instances.json')
-    rJson = json.loads(r.text)
-    tedditList = {}
-    tedditList['normal'] = []
-    tedditList['tor'] = []
-    tedditList['i2p'] = []
-    tedditList['loki'] = []
-    for item in rJson:
-        url = item['url']
-        if url != '':
-            tedditList['normal'].append(url)
-        if 'onion' in item:
-            onion = item['onion']
-            if onion != '':
-                tedditList['tor'].append(onion)
-
-    mightyList['teddit'] = tedditList
-    print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'Teddit')
+    fetchJsonList('teddit', 'Teddit', 'https://codeberg.org/teddit/teddit/raw/branch/main/instances.json', {'clearnet': 'url', 'tor': 'onion', 'i2p': 'i2p', 'loki': None}, False)
 
 
 def wikiless():
-    r = requests.get('https://wikiless.org/instances.json')
-    rJson = json.loads(r.text)
-    wikilessList = {}
-    wikilessList['normal'] = []
-    wikilessList['tor'] = []
-    wikilessList['i2p'] = []
-    wikilessList['loki'] = []
-    for item in rJson:
-        if 'url' in item:
-            if item['url'].strip() != "":
-                wikilessList['normal'].append(item['url'])
-        if 'onion' in item:
-            if item['onion'].strip() != "":
-                wikilessList['tor'].append(item['onion'])
-        if 'i2p' in item:
-            if item['i2p'].strip() != "":
-                wikilessList['i2p'].append(item['i2p'])
-    mightyList['wikiless'] = wikilessList
-    print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'Wikiless')
+    fetchJsonList('wikiless', 'Wikiless', 'https://wikiless.org/instances.json', {'clearnet': 'url', 'tor': 'onion', 'i2p': 'i2p', 'loki': None}, False)
 
 
 def scribe():
-    r = requests.get(
-        'https://git.sr.ht/~edwardloveall/scribe/blob/main/docs/instances.json')
-    rJson = json.loads(r.text)
-    scribeList = {}
-    scribeList['normal'] = []
-    scribeList['tor'] = []
-    scribeList['i2p'] = []
-    scribeList['loki'] = []
-    for item in rJson:
-        scribeList['normal'].append(item)
-    mightyList['scribe'] = scribeList
-    print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'Scribe')
+    fetchJsonList('scribe', 'Scribe', 'https://git.sr.ht/~edwardloveall/scribe/blob/main/docs/instances.json', None, False)
 
 
 def quetre():
-    r = requests.get(
-        'https://raw.githubusercontent.com/zyachel/quetre/main/README.md')
-    _list = {}
-    _list['normal'] = []
-    _list['tor'] = []
-    _list['i2p'] = []
-    _list['loki'] = []
-
-    tmp = re.findall(
-        r"\| \[.*\]\(([-a-zA-Z0-9@:%_\+.~#?&//=]{2,}\.[a-z]{2,}\b(?:\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?)\)*\|*[A-Z]{0,}.*\|.*\|", r.text)
-
-
-    for item in tmp:
-        if re.search(torRegex, item):
-            _list['tor'].append(item)
-        else:
-            _list['normal'].append(item)
-    mightyList['quetre'] = _list
-    print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'Quetre')
+    fetchRegexList('quetre', 'Quetre', 'https://raw.githubusercontent.com/zyachel/quetre/main/README.md', r"\| \[.*\]\(([-a-zA-Z0-9@:%_\+.~#?&//=]{2,}\.[a-z0-9]{2,}\b(?:\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?)\)*\|*[A-Z]{0,}.*\|.*\|")
 
 
 def libremdb():
-    r = requests.get(
-        'https://raw.githubusercontent.com/zyachel/libremdb/main/README.md')
-    _list = {}
-    _list['normal'] = []
-    _list['tor'] = []
-    _list['i2p'] = []
-    _list['loki'] = []
-
-    tmp = re.findall(
-        r"\| ([-a-zA-Z0-9@:%_\+.~#?&//=]{2,}\.[a-z]{2,}\b(?:\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?)*\|*[A-Z]{0,}.*\|.*\|", r.text)
-
-
-    for item in tmp:
-        if item.strip() == "":
-            continue
-        if re.search(torRegex, item):
-            _list['tor'].append(item)
-        else:
-            _list['normal'].append(item)
+    fetchRegexList('libremdb', 'libremdb', 'https://raw.githubusercontent.com/zyachel/libremdb/main/README.md', r"\| \[.*\]\(([-a-zA-Z0-9@:%_\+.~#?&//=]{2,}\.[a-z0-9]{2,}\b(?:\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?)\)*\|*[A-Z]{0,}.*\|.*\|")
 
-    mightyList['libremdb'] = _list
-    print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'Libremdb')
 
 def simpleertube():
-    r = requests.get('https://simple-web.org/instances/simpleertube')
-    _list = {}
-    _list['normal'] = []
-    _list['tor'] = []
-    _list['i2p'] = []
-    _list['loki'] = []
-    for item in r.text.strip().split('\n'):
-        _list['normal'].append('https://' + item)
-
-    mightyList['simpleertube'] = _list
-    print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'SimpleerTube')
+    fetchTextList('simpleertube', 'SimpleerTube', 'https://simple-web.org/instances/simpleertube', 'https://')
 
 
 def simplytranslate():
     r = requests.get('https://simple-web.org/instances/simplytranslate')
     simplyTranslateList = {}
-    simplyTranslateList['normal'] = []
+    simplyTranslateList['clearnet'] = []
     for item in r.text.strip().split('\n'):
-        simplyTranslateList['normal'].append('https://' + item)
+        simplyTranslateList['clearnet'].append('https://' + item)
 
     r = requests.get('https://simple-web.org/instances/simplytranslate_onion')
     simplyTranslateList['tor'] = []
@@ -397,31 +365,19 @@ def simplytranslate():
 
 
 def linvgatranslate():
-    r = requests.get(
-        'https://raw.githubusercontent.com/TheDavidDelta/lingva-translate/main/instances.json')
-    rJson = json.loads(r.text)
-    lingvaList = {}
-    lingvaList['normal'] = []
-    lingvaList['tor'] = []
-    lingvaList['i2p'] = []
-    lingvaList['loki'] = []
-    for item in rJson:
-        lingvaList['normal'].append(item)
-
-    mightyList['lingva'] = lingvaList
-    print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'LinvgaTranslate')
+    fetchJsonList('lingva', 'LingvaTranslate', 'https://raw.githubusercontent.com/TheDavidDelta/lingva-translate/main/instances.json', None, False)
 
 
 def searx_searxng():
     r = requests.get('https://searx.space/data/instances.json')
     rJson = json.loads(r.text)
     searxList = {}
-    searxList['normal'] = []
+    searxList['clearnet'] = []
     searxList['tor'] = []
     searxList['i2p'] = []
     searxList['loki'] = []
     searxngList = {}
-    searxngList['normal'] = []
+    searxngList['clearnet'] = []
     searxngList['tor'] = []
     searxngList['i2p'] = []
     searxngList['loki'] = []
@@ -431,16 +387,16 @@ def searx_searxng():
                 searxngList['tor'].append(item[:-1])
             else:
                 searxList['tor'].append(item[:-1])
-        elif re.search(torRegex, item[:-1]):
+        elif re.search(i2pRegex, item[:-1]):
             if (rJson['instances'][item].get('generator') == 'searxng'):
                 searxngList['i2p'].append(item[:-1])
             else:
                 searxList['i2p'].append(item[:-1])
         else:
             if (rJson['instances'][item].get('generator') == 'searxng'):
-                searxngList['normal'].append(item[:-1])
+                searxngList['clearnet'].append(item[:-1])
             else:
-                searxList['normal'].append(item[:-1])
+                searxList['clearnet'].append(item[:-1])
 
     mightyList['searx'] = searxList
     mightyList['searxng'] = searxngList
@@ -448,160 +404,66 @@ def searx_searxng():
 
 
 def whoogle():
-    r = requests.get(
-        'https://raw.githubusercontent.com/benbusby/whoogle-search/main/misc/instances.txt')
-    tmpList = r.text.strip().split('\n')
-    whoogleList = {}
-    whoogleList['normal'] = []
-    whoogleList['tor'] = []
-    whoogleList['i2p'] = []
-    whoogleList['loki'] = []
-    for item in tmpList:
-        if re.search(torRegex, item):
-            whoogleList['tor'].append(item)
-        elif re.search(torRegex, item):
-            whoogleList['i2p'].append(item)
-        else:
-            whoogleList['normal'].append(item)
-    mightyList['whoogle'] = whoogleList
-    print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'Whoogle')
+    fetchTextList('whoogle', 'Whoogle', 'https://raw.githubusercontent.com/benbusby/whoogle-search/main/misc/instances.txt', '')
 
 
 def librex():
-    r = requests.get(
-        'https://raw.githubusercontent.com/hnhx/librex/main/README.md')
-    _list = {}
-    _list['normal'] = []
-    _list['tor'] = []
-    _list['i2p'] = []
-    _list['loki'] = []
-
-    tmp = re.findall(
-            r"\| {1,2}\[(?:(?:[a-zA-Z0-9]+\.)+[a-zA-Z]{2,}|✅)\]\((https?:\/{2}(?:[a-zA-Z0-9]+\.)+[a-zA-Z0-9]{2,})", r.text)
-
-    for item in tmp:
-        if item.strip() == "":
-            continue
-        elif re.search(torRegex, item):
-            _list['tor'].append(item)
-        elif re.search(i2pRegex, item):
-            _list['i2p'].append(item)
-        else:
-            _list['normal'].append(item)
-    mightyList['librex'] = _list
-    print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'Librex')
+    fetchJsonList('librex', 'LibreX', 'https://raw.githubusercontent.com/hnhx/librex/main/instances.json', {'clearnet': 'clearnet', 'tor': 'tor', 'i2p': 'i2p', 'loki': None}, True)
 
 
 def rimgo():
-    r = requests.get(
-        'https://codeberg.org/video-prize-ranch/rimgo/raw/branch/main/instances.json')
-    rJson = json.loads(r.text)
-    rimgoList = {}
-    rimgoList['normal'] = []
-    rimgoList['tor'] = []
-    rimgoList['i2p'] = []
-    rimgoList['loki'] = []
-    for item in rJson:
-        if 'url' in item:
-            rimgoList['normal'].append(item['url'])
-        if 'onion' in item:
-            rimgoList['tor'].append(item['onion'])
-        if 'i2p' in item:
-            rimgoList['i2p'].append(item['i2p'])
-    mightyList['rimgo'] = rimgoList
-    print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'Rimgo')
+    fetchJsonList('rimgo', 'rimgo', 'https://codeberg.org/video-prize-ranch/rimgo/raw/branch/main/instances.json', {'clearnet': 'url', 'tor': 'onion', 'i2p': 'i2p', 'loki': None}, False)
 
 
 def librarian():
-    r = requests.get(
-        'https://codeberg.org/librarian/librarian/raw/branch/main/instances.json')
-    rJson = json.loads(r.text)
-    librarianList = {}
-    librarianList['normal'] = []
-    librarianList['tor'] = []
-    librarianList['i2p'] = []
-    librarianList['loki'] = []
-    instances = rJson['instances']
-    for item in instances:
-        url = item['url']
-        if url.strip() == "":
-            continue
-        elif re.search(torRegex, url):
-            librarianList['tor'].append(url)
-        elif re.search(i2pRegex, url):
-            librarianList['i2p'].append(url)
-        elif re.search(lokiRegex, url):
-            librarianList['loki'].append(url)
-        else:
-            librarianList['normal'].append(url)
-    mightyList['librarian'] = librarianList
-    print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'Librarian')
+    fetchJsonList('librarian', 'Librarian', 'https://codeberg.org/librarian/librarian/raw/branch/main/instances.json', 'url', True)
 
 
 def neuters():
-    json_object = json.dumps(mightyList, ensure_ascii=False, indent=2)
-    with open('./src/instances/neuters.json') as file:
-        mightyList['neuters'] = json.load(file)
-    print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'Neuters')
+    fetchFromFile('neuters', 'Neuters')
 
 
 def beatbump():
-    json_object = json.dumps(mightyList, ensure_ascii=False, indent=2)
-    with open('./src/instances/beatbump.json') as file:
-        mightyList['beatbump'] = json.load(file)
-    print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'Beatbump')
+    fetchFromFile('beatbump', 'Beatbump')
 
 
 def hyperpipe():
-    r = requests.get(
-        'https://codeberg.org/Hyperpipe/pages/raw/branch/main/api/frontend.json')
-    rJson = json.loads(r.text)
-    hyperpipeList = {}
-    hyperpipeList['normal'] = []
-    hyperpipeList['tor'] = []
-    hyperpipeList['i2p'] = []
-    hyperpipeList['loki'] = []
-    for item in rJson:
-        url = item['url']
-        if url.strip() == "":
-            continue
-        elif re.search(torRegex, url):
-            hyperpipeList['tor'].append(url)
-        elif re.search(i2pRegex, url):
-            hyperpipeList['i2p'].append(url)
-        elif re.search(lokiRegex, url):
-            hyperpipeList['loki'].append(url)
-        else:
-            hyperpipeList['normal'].append(url)
-    mightyList['hyperpipe'] = hyperpipeList
-    print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'Hyperpipe')
+    fetchJsonList('hyperpipe', 'Hyperpipe', 'https://codeberg.org/Hyperpipe/pages/raw/branch/main/api/frontend.json', 'url', False)
 
 
 def facil():
-    json_object = json.dumps(mightyList, ensure_ascii=False, indent=2)
-    with open('./src/instances/facil.json') as file:
-        mightyList['facil'] = json.load(file)
-    print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'FacilMap')
+    fetchFromFile('facil', 'FacilMap')
+
+
+def libreTranslate():
+    fetchRegexList('libreTranslate', 'LibreTranslate', 'https://raw.githubusercontent.com/LibreTranslate/LibreTranslate/main/README.md', r"\[(?:[^\s\/]+\.)+[a-zA-Z0-9]+\]\((https?:\/{2}(?:[^\s\/]+\.)+[a-zA-Z0-9]+)\/?\)\|")
+
+
+def breezeWiki():
+    fetchRegexList('breezeWiki', 'BreezeWiki', 'https://gitdab.com/cadence/breezewiki-docs/raw/branch/main/docs.scrbl', r"\(\"[^\n\s\r\t\f\v\"]+\" \"https?:\/{2}(?:[^\s\/]+\.)+[a-zA-Z0-9]+(?:\/[^\s\/]+)*\" \"(https?:\/{2}(?:[^\s\/]+\.)+[a-zA-Z0-9]+(?:\/[^\s\/]+)*)\"\)")
 
 
 def peertube():
-    r = requests.get(
-        'https://instances.joinpeertube.org/api/v1/instances?start=0&count=1045&sort=-createdAt')
-    rJson = json.loads(r.text)
+    try:
+        r = requests.get(
+            'https://instances.joinpeertube.org/api/v1/instances?start=0&count=1045&sort=-createdAt')
+        rJson = json.loads(r.text)
 
-    myList = []
-    for k in rJson['data']:
-        myList.append('https://'+k['host'])
+        myList = ['https://search.joinpeertube.org']
+        for k in rJson['data']:
+            myList.append('https://'+k['host'])
 
-    mightyList['peertube'] = myList
-    print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'PeerTube')
+        mightyList['peertube'] = myList
+        print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'PeerTube')
+    except Exception:
+        fetchCache('peertube', 'PeerTube')
 
 
 def isValid(url):  # This code is contributed by avanitrachhadiya2155
     try:
         result = urlparse(url)
         return all([result.scheme, result.netloc])
-    except:
+    except Exception:
         return False
 
 
@@ -621,6 +483,7 @@ quetre()
 libremdb()
 simplytranslate()
 linvgatranslate()
+libreTranslate()
 searx_searxng()
 whoogle()
 librex()
@@ -631,10 +494,13 @@ beatbump()
 hyperpipe()
 facil()
 simpleertube()
+breezeWiki()
 mightyList = filterLastSlash(mightyList)
+mightyList = idnaEncode(mightyList)
 
 cloudflare = []
 authenticate = []
+offline = []
 for k1, v1 in mightyList.items():
     if type(mightyList[k1]) is dict:
         for k2, v2 in mightyList[k1].items():
@@ -647,12 +513,15 @@ for k1, v1 in mightyList.items():
                         cloudflare.append(instance)
                     if not instance.endswith('.onion') and not instance.endswith('.i2p') and not instance.endswith('.loki') and is_authenticate(instance):
                         authenticate.append(instance)
+                    elif not instance.endswith('.onion') and not instance.endswith('.i2p') and not instance.endswith('.loki') and is_offline(instance):
+                        offline.append(instance)
 
 peertube()
 
 blacklist = {
     'cloudflare': cloudflare,
-    'authenticate': authenticate
+    'authenticate': authenticate,
+    'offline': offline
 }
 
 # Writing to file
diff --git a/src/instances/neuters.json b/src/instances/neuters.json
index 9e224a52..8023079b 100644
--- a/src/instances/neuters.json
+++ b/src/instances/neuters.json
@@ -1,5 +1,5 @@
 {
-	"normal": ["https://neuters.de"],
+	"clearnet": ["https://neuters.de"],
 	"tor": [],
 	"i2p": [],
 	"loki": []