about summary refs log tree commit diff stats
path: root/src/instances
diff options
context:
space:
mode:
Diffstat (limited to 'src/instances')
-rw-r--r--src/instances/data.json332
-rw-r--r--src/instances/get_instances.py194
2 files changed, 526 insertions, 0 deletions
diff --git a/src/instances/data.json b/src/instances/data.json
new file mode 100644
index 00000000..abaf2488
--- /dev/null
+++ b/src/instances/data.json
@@ -0,0 +1,332 @@
+{
+  "invidious": {
+    "normal": [
+      "https://yewtu.be",
+      "https://invidious.snopyta.org",
+      "https://vid.puffyan.us",
+      "https://invidious.kavin.rocks",
+      "https://invidio.xamh.de",
+      "https://inv.riverside.rocks",
+      "https://invidious-us.kavin.rocks",
+      "https://invidious.osi.kr",
+      "https://tube.cthd.icu",
+      "https://invidious.flokinet.to",
+      "https://yt.artemislena.eu",
+      "https://invidious.privacy.gd",
+      "https://youtube.076.ne.jp",
+      "https://invidious.namazso.eu"
+    ],
+    "tor": [
+      "http://c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion",
+      "http://w6ijuptxiku4xpnnaetxvnkc5vqcdu7mgns2u77qefoixi63vbvnpnqd.onion",
+      "http://kbjggqkzv65ivcqj6bumvp337z6264huv5kpkwuv6gu5yjiskvan7fad.onion",
+      "http://grwp24hodrefzvjjuccrkw3mjq4tzhaaq32amf33dzpmuxe7ilepcmad.onion",
+      "http://hpniueoejy4opn7bc4ftgazyqjoeqwlvh2uiku2xqku6zpoa4bf5ruid.onion",
+      "http://osbivz6guyeahrwp2lnwyjk2xos342h4ocsxyqrlaopqjuhwn2djiiyd.onion",
+      "http://u2cvlit75owumwpy4dj2hsmvkq7nvrclkpht7xgyye2pyoxhpmclkrad.onion",
+      "http://2rorw2w54tr7jkasn53l5swbjnbvz3ubebhswscnc54yac6gmkxaeeqd.onion"
+    ]
+  },
+  "nitter": {
+    "normal": [
+      "https://nitter.net",
+      "https://nitter.42l.fr",
+      "https://nitter.pussthecat.org",
+      "https://nitter.nixnet.services",
+      "https://nitter.fdn.fr",
+      "https://nitter.1d4.us",
+      "https://nitter.kavin.rocks",
+      "https://nitter.unixfox.eu",
+      "https://nitter.domain.glass",
+      "https://nitter.eu",
+      "https://nitter.namazso.eu",
+      "https://nitter.actionsack.com",
+      "https://birdsite.xanny.family",
+      "https://nitter.hu",
+      "https://twitr.gq",
+      "https://nitter.moomoo.me",
+      "https://nittereu.moomoo.me",
+      "https://bird.trom.tf",
+      "https://nitter.it",
+      "https://twitter.censors.us",
+      "https://nitter.grimneko.de",
+      "https://nitter.alefvanoon.xyz",
+      "https://n.hyperborea.cloud",
+      "https://nitter.ca",
+      "https://twitter.076.ne.jp",
+      "https://nitter.mstdn.social",
+      "https://nitter.fly.dev",
+      "https://notabird.site",
+      "https://nitter.weiler.rocks",
+      "https://nitter.silkky.cloud",
+      "https://nitter.sethforprivacy.com",
+      "https://nttr.stream",
+      "https://nitter.cutelab.space",
+      "https://nitter.nl",
+      "https://nitter.mint.lgbt",
+      "https://nitter.tokhmi.xyz",
+      "https://nitter.bus-hit.me",
+      "https://fuckthesacklers.network",
+      "https://nitter.govt.land",
+      "https://nitter.datatunnel.xyz",
+      "https://nitter.esmailelbob.xyz",
+      "https://tw.artemislena.eu",
+      "https://de.nttr.stream",
+      "https://nitter.winscloud.net",
+      "https://nitter.tiekoetter.com"
+    ],
+    "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",
+      "http://erpnncl5nhyji3c32dcfmztujtl3xaddqb457jsbkulq24zqq7ifdgad.onion",
+      "http://ckzuw5misyahmg7j5t5xwwuj3bwy62jfolxyux4brfflramzsvvd3syd.onion",
+      "http://jebqj47jgxleaiosfcxfibx2xdahjettuydlxbg64azd4khsxv6kawid.onion",
+      "http://nttr2iupbb6fazdpr2rgbooon2tzbbsvvkagkgkwohhodjzj43stxhad.onion",
+      "http://nitraeju2mipeziu2wtcrqsxg7h62v5y4eqgwi75uprynkj74gevvuqd.onion",
+      "http://nitter.lqs5fjmajyp7rvp4qvyubwofzi6d4imua7vs237rkc4m5qogitqwrgyd.onion",
+      "http://ibsboeui2im5o7dxnik3s5yghufumgy5abevtij5nbizequfpu4qi4ad.onion"
+    ]
+  },
+  "bibliogram": {
+    "normal": [
+      "https://bibliogram.art",
+      "https://bibliogram.snopyta.org",
+      "https://bibliogram.pussthecat.org",
+      "https://bibliogram.1d4.us",
+      "https://insta.trom.tf",
+      "https://bib.riverside.rocks",
+      "https://bibliogram.esmailelbob.xyz",
+      "https://bib.actionsack.com",
+      "https://biblio.alefvanoon.xyz"
+    ]
+  },
+  "teddit": {
+    "normal": [
+      "https://teddit.net",
+      "https://teddit.ggc-project.de",
+      "https://teddit.kavin.rocks",
+      "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",
+      "https://teddit.httpjames.space",
+      "https://teddit.alefvanoon.xyz",
+      "https://incogsnoo.com",
+      "https://teddit.pussthecat.org",
+      "https://reddit.lol",
+      "https://teddit.sethforprivacy.com",
+      "https://teddit.totaldarkness.net",
+      "https://teddit.adminforge.de",
+      "https://teddit.bus-hit.me"
+    ],
+    "tor": [
+      "http://teddit4w6cmzmj5kimhfcavs7yo5s7alszvsi2khqutqtlaanpcftfyd.onion",
+      "http://snoo.ioensistjs7wd746zluwixvojbbkxhr37lepdvwtdfeav673o64iflqd.onion",
+      "http://ibarajztopxnuhabfu7fg6gbudynxofbnmvis3ltj6lfx47b6fhrd5qd.onion",
+      "http://tedditfyn6idalzso5wam5qd3kdtxoljjhbrbbx34q2xkcisvshuytad.onion",
+      "http://dawtyi5e2cfyfmoht4izmczi42aa2zwh6wi34zwvc6rzf2acpxhrcrad.onion",
+      "http://qtpvyiaqhmwccxwzsqubd23xhmmrt75tdyw35kp43w4hvamsgl3x27ad.onion"
+    ]
+  },
+  "wikiless": {
+    "normal": [
+      "https://wikiless.org",
+      "https://wikiless.alefvanoon.xyz",
+      "https://wikiless.sethforprivacy.com",
+      "https://wiki.604kph.xyz"
+    ],
+    "tor": [
+      "http://dj2tbh2nqfxyfmvq33cjmhuw7nb6am7thzd3zsjvizeqf374fixbrxyd.onion"
+    ]
+  },
+  "scribe": {
+    "normal": [
+      "https://scribe.rip",
+      "https://scribe.nixnet.services",
+      "https://scribe.citizen4.eu",
+      "https://scribe.bus-hit.me"
+    ]
+  },
+  "simplyTranslate": {
+    "normal": [
+      "https://simplytranslate.org",
+      "https://st.alefvanoon.xyz",
+      "https://translate.josias.dev",
+      "https://translate.namazso.eu",
+      "https://translate.riverside.rocks",
+      "https://manerakai.asuscomm.com:447",
+      "https://translate.bus-hit.me",
+      "https://simplytranslate.pussthecat.org",
+      "https://translate.northboot.xyz",
+      "https://translate.tiekoetter.com"
+    ],
+    "tor": [
+      "http://fyng2tsmzmvxmojzbbwmfnsn2lrcyftf4cw6rk5j2v2huliazud3fjid.onion",
+      "http://xxtbwyb5z5bdvy2f6l2yquu5qilgkjeewno4qfknvb3lkg3nmoklitid.onion"
+    ]
+  },
+  "lingva": {
+    "normal": [
+      "https://lingva.ml",
+      "https://translate.alefvanoon.xyz",
+      "https://translate.igna.rocks",
+      "https://lingva.pussthecat.org",
+      "https://translate.datatunnel.xyz",
+      "https://lingva.esmailelbob.xyz"
+    ]
+  },
+  "searx": {
+    "normal": [
+      "https://anon.sx",
+      "https://darmarit.org/searx",
+      "https://dynabyte.ca",
+      "https://engo.mint.lgbt",
+      "https://jsearch.pw",
+      "https://metasearch.nl",
+      "https://nibblehole.com",
+      "https://northboot.xyz",
+      "https://paulgo.io",
+      "https://procurx.pt",
+      "https://s.zhaocloud.net",
+      "https://search.antonkling.se",
+      "https://search.asynchronousexchange.com",
+      "https://search.biboumail.fr",
+      "https://search.bus-hit.me",
+      "https://search.disroot.org",
+      "https://search.ethibox.fr",
+      "https://search.jpope.org",
+      "https://search.mdosch.de",
+      "https://search.neet.works",
+      "https://search.ononoki.org",
+      "https://search.snopyta.org",
+      "https://search.st8.at",
+      "https://search.stinpriza.org",
+      "https://search.trom.tf",
+      "https://search.zdechov.net",
+      "https://search.zzls.xyz",
+      "https://searx-private-search.de",
+      "https://searx.bar",
+      "https://searx.be",
+      "https://searx.bissisoft.com",
+      "https://searx.divided-by-zero.eu",
+      "https://searx.dresden.network",
+      "https://searx.ebnar.xyz",
+      "https://searx.esmailelbob.xyz",
+      "https://searx.everdot.org",
+      "https://searx.fmac.xyz",
+      "https://searx.fossencdi.org",
+      "https://searx.gnous.eu",
+      "https://searx.gnu.style",
+      "https://searx.hardwired.link",
+      "https://searx.lavatech.top",
+      "https://searx.mastodontech.de",
+      "https://searx.mha.fi",
+      "https://searx.mxchange.org",
+      "https://searx.nakhan.net",
+      "https://searx.netzspielplatz.de",
+      "https://searx.nevrlands.de",
+      "https://searx.ninja",
+      "https://searx.nixnet.services",
+      "https://searx.openhoofd.nl",
+      "https://searx.operationtulip.com",
+      "https://searx.org",
+      "https://searx.prvcy.eu",
+      "https://searx.pwoss.org",
+      "https://searx.rasp.fr",
+      "https://searx.roughs.ru",
+      "https://searx.ru",
+      "https://searx.run",
+      "https://searx.sadblog.xyz",
+      "https://searx.semipvt.com",
+      "https://searx.slash-dev.de",
+      "https://searx.solusar.de",
+      "https://searx.sp-codes.de",
+      "https://searx.stuehieyr.com",
+      "https://searx.theanonymouse.xyz",
+      "https://searx.thegreenwebfoundation.org",
+      "https://searx.tiekoetter.com",
+      "https://searx.tk",
+      "https://searx.tux.land",
+      "https://searx.tuxcloud.net",
+      "https://searx.tyil.nl",
+      "https://searx.vitanetworks.link",
+      "https://searx.webheberg.info",
+      "https://searx.xkek.net",
+      "https://searx.xyz",
+      "https://searx.zackptg5.com",
+      "https://searx.zapashcanon.fr",
+      "https://searx.zecircle.xyz",
+      "https://serx.cf",
+      "https://spot.ecloud.global",
+      "https://suche.dasnetzundich.de",
+      "https://suche.uferwerk.org",
+      "https://swag.pw",
+      "https://sx.catgirl.cloud",
+      "https://sx.fedi.tech",
+      "https://timdor.noip.me/searx",
+      "https://trovu.komun.org",
+      "https://www.gruble.de",
+      "https://www.webrats.xyz",
+      "https://xeek.com",
+      "https://searx.roflcopter.fr"
+    ],
+    "tor": [
+      "http://3afisqjw2rxm6z7mmstyt5rx75qfqrgxnkzftknbp2vhipr2nrmrjdyd.onion",
+      "http://searxbgetrkiwxhdwi6svpgh7eotopqyxhbqiokrwzg7dcte44t36kyd.onion",
+      "http://suche.xyzco456vwisukfg.onion",
+      "http://w5rl6wsd7mzj4bdkbuqvzidet5osdsm5jhg2f7nvfidakfq5exda5wid.onion",
+      "http://4n53nafyi77iplnbrpmxnp3x4exbswwxigujaxy3b37fvr7bvlopxeyd.onion",
+      "http://z34ambyi6makk6ta7ksog2sljly2ctt2sa3apekb7wkllk72sxecdtad.onion",
+      "http://search.4bkxscubgtxwvhpe.onion",
+      "http://juy4e6eicawzdrz7.onion",
+      "http://z5vawdol25vrmorm4yydmohsd4u6rdoj2sylvoi3e3nqvxkvpqul7bqd.onion",
+      "http://zbuc3bbzbfdqqo2x46repx2ddajbha6fpsjeeptjhhhhzji3zopxdqyd.onion",
+      "http://f4qfqajszpx5b7itzxt6mb7kj4ktpgbdq7lq6xaiqyqx6a7de3epptad.onion",
+      "http://searx.cwuzdtzlubq5uual.onion",
+      "http://rq2w52kyrif3xpfihkgjnhqm3a5aqhoikpv72z3drpjglfzc2wr5z4yd.onion",
+      "http://searx3aolosaf3urwnhpynlhuokqsgz47si4pzz5hvb7uuzyjncl2tid.onion",
+      "http://searx.bsbvtqi5oq2cqzn32zt4cr2f2z2rwots3dq7gmdcnlyqoxko2wx6reqd.onion"
+    ],
+    "i2p": [
+      "http://ransack.i2p",
+      "http://mqamk4cfykdvhw5kjez2gnvse56gmnqxn7vkvvbuor4k4j2lbbnq.b32.i2p"
+    ]
+  },
+  "whoogle": {
+    "normal": [
+      "https://gowogle.voring.me",
+      "https://s.alefvanoon.xyz",
+      "https://search.albony.xyz",
+      "https://search.garudalinux.org",
+      "https://search.sethforprivacy.com",
+      "https://whoogle.fossho.st",
+      "https://whooglesearch.net",
+      "https://www.whooglesearch.ml",
+      "https://whoogle.dcs0.hu",
+      "https://whoogle.esmailelbob.xyz"
+    ]
+  },
+  "rimgo": {
+    "normal": [
+      "https://i.bcow.xyz",
+      "https://rimgo.bcow.xyz",
+      "https://rimgo.pussthecat.org",
+      "https://img.riverside.rocks",
+      "https://rimgo.totaldarkness.net",
+      "https://rimgo.bus-hit.me"
+    ],
+    "tor": [
+      "http://l4d4owboqr6xcmd6lf64gbegel62kbudu3x3jnldz2mx6mhn3bsv3zyd.onion",
+      "http://jx3dpcwedpzu2mh54obk5gvl64i2ln7pt5mrzd75s4jnndkqwzaim7ad.onion"
+    ]
+  }
+}
\ No newline at end of file
diff --git a/src/instances/get_instances.py b/src/instances/get_instances.py
new file mode 100644
index 00000000..0929bd22
--- /dev/null
+++ b/src/instances/get_instances.py
@@ -0,0 +1,194 @@
+# Note: Run this script from the root of the repo
+
+import requests
+import json
+from urllib.parse import urlparse
+from bs4 import BeautifulSoup
+
+mightyList = {}
+
+
+def get_host_name(link):
+    url = urlparse(link)
+    return url.netloc
+
+
+# Invidious
+r = requests.get('https://api.invidious.io/instances.json')
+rJson = json.loads(r.text)
+invidiousList = {}
+invidiousList['normal'] = []
+invidiousList['tor'] = []
+for instance in rJson:
+    if instance[1]['type'] == 'https':
+        invidiousList['normal'].append(instance[1]['uri'])
+    elif instance[1]['type'] == 'tor':
+        invidiousList['tor'].append(instance[1]['uri'])
+mightyList['invidious'] = invidiousList
+print('fetched Invidious')
+
+
+# Nitter
+r = requests.get('https://github.com/zedeus/nitter/wiki/Instances')
+soup = BeautifulSoup(r.text, 'html.parser')
+markdownBody = soup.find(class_='markdown-body')
+tables = markdownBody.find_all('table')
+tables.pop(3)
+tables.pop(3)
+nitterList = {}
+nitterList['normal'] = []
+nitterList['tor'] = []
+for table in tables:
+    tbody = table.find('tbody')
+    trs = tbody.find_all('tr')
+    for tr in trs:
+        td = tr.find('td')
+        a = td.find('a')
+        url = a.contents[0]
+        if url.endswith('.onion'):
+            url = 'http://' + url
+            nitterList['tor'].append(url)
+        else:
+            url = 'https://' + url
+            nitterList['normal'].append(url)
+mightyList['nitter'] = nitterList
+print('fetched Nitter')
+
+# Bibliogram
+r = requests.get('https://bibliogram.art/api/instances')
+rJson = json.loads(r.text)
+bibliogramList = {}
+bibliogramList['normal'] = []
+for item in rJson['data']:
+    bibliogramList['normal'].append(item['address'])
+mightyList['bibliogram'] = bibliogramList
+print('fetched Bibliogram')
+
+
+# Teddit
+r = requests.get(
+    'https://codeberg.org/teddit/teddit/raw/branch/main/instances.json')
+rJson = json.loads(r.text)
+tedditList = {}
+tedditList['normal'] = []
+tedditList['tor'] = []
+for item in rJson:
+    url = item['url']
+    if url != '':
+        tedditList['normal'].append(url)
+    if 'tor' in item:
+        onion = item['tor']
+        if onion != '':
+            tedditList['tor'].append(onion)
+
+mightyList['teddit'] = tedditList
+print('fetched Teddit')
+
+
+# Wikiless
+r = requests.get('https://wikiless.org/instances.json')
+rJson = json.loads(r.text)
+wikilessList = {}
+wikilessList['normal'] = []
+wikilessList['tor'] = []
+for item in rJson:
+    if item.endswith('.onion'):
+        wikilessList['tor'].append('http://' + item)
+    else:
+        wikilessList['normal'].append('https://' + item)
+mightyList['wikiless'] = wikilessList
+print('fetched Wikiless')
+
+# Scribe
+r = requests.get(
+    'https://git.sr.ht/~edwardloveall/scribe/blob/main/docs/instances.json')
+rJson = json.loads(r.text)
+scribeList = {}
+scribeList['normal'] = []
+for item in rJson:
+    scribeList['normal'].append(item)
+mightyList['scribe'] = scribeList
+print('fetched Scribe')
+
+
+# SimplyTranslate
+r = requests.get('https://simple-web.org/instances/simplytranslate')
+simplyTranslateList = {}
+simplyTranslateList['normal'] = []
+for item in r.text.strip().split('\n'):
+    simplyTranslateList['normal'].append('https://' + item)
+
+r = requests.get('https://simple-web.org/instances/simplytranslate_onion')
+simplyTranslateList['tor'] = []
+for item in r.text.strip().split('\n'):
+    simplyTranslateList['tor'].append('http://' + item)
+
+mightyList['simplyTranslate'] = simplyTranslateList
+print('fetched SimplyTranslate')
+
+# LinvgaTranslate
+r = requests.get(
+    'https://raw.githubusercontent.com/TheDavidDelta/lingva-translate/main/instances.json')
+rJson = json.loads(r.text)
+lingvaList = {}
+lingvaList['normal'] = []
+for item in rJson:
+    lingvaList['normal'].append(item)
+mightyList['lingva'] = lingvaList
+print('fetched LinvgaTranslate')
+
+
+# SearX
+r = requests.get('https://searx.space/data/instances.json')
+rJson = json.loads(r.text)
+searxList = {}
+searxList['normal'] = []
+searxList['tor'] = []
+searxList['i2p'] = []
+for item in rJson['instances'].keys():
+    item = item[:-1]
+    if item.endswith('.onion'):
+        searxList['tor'].append(item)
+    elif item.endswith('.i2p'):
+        searxList['i2p'].append(item)
+    else:
+        searxList['normal'].append(item)
+mightyList['searx'] = searxList
+print('fetched SearX')
+
+
+# Whoogle
+r = requests.get(
+    'https://raw.githubusercontent.com/benbusby/whoogle-search/main/misc/instances.txt')
+tmpList = r.text.strip().split('\n')
+whoogleList = {}
+whoogleList['normal'] = []
+for item in tmpList:
+    whoogleList['normal'].append(item)
+mightyList['whoogle'] = whoogleList
+print('fetched Whoogle')
+
+
+# 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'] = []
+
+for item in rJson:
+    if item.endswith('.onion'):
+        rimgoList['tor'].append('http://' + item)
+    else:
+        rimgoList['normal'].append('https://' + item)
+mightyList['rimgo'] = rimgoList
+print('fetched Rimgo')
+
+
+# Writing to file
+json_object = json.dumps(mightyList, ensure_ascii=False, indent=2)
+with open('src/instances/data.json', 'w') as outfile:
+    outfile.write(json_object)
+# print(json_object)
+print('wrote instances/data.json')