diff --git a/docs/supportedsites.md b/docs/supportedsites.md
index 308c9cc7..5ec771c5 100644
--- a/docs/supportedsites.md
+++ b/docs/supportedsites.md
@@ -1657,9 +1657,33 @@ Consider all listed sites to potentially be NSFW.
| Nitter Instances |
-
+
+ | Nitter.net |
+ https://nitter.net/ |
+ Media Files, Replies, Search Results, Tweets |
|
+
+
+ | Nitter.space |
+ https://nitter.space/ |
+ Media Files, Replies, Search Results, Tweets |
|
+
+
+ | Nitter.tiekoetter |
+ https://nitter.tiekoetter/ |
+ Media Files, Replies, Search Results, Tweets |
+ |
+
+
+ | Xcancel |
+ https://xcancel.com/ |
+ Media Files, Replies, Search Results, Tweets |
+ |
+
+
+ | Lightbrd |
+ https://lightbrd.com/ |
Media Files, Replies, Search Results, Tweets |
|
diff --git a/gallery_dl/extractor/nitter.py b/gallery_dl/extractor/nitter.py
index eea8c9cd..49f65c2e 100644
--- a/gallery_dl/extractor/nitter.py
+++ b/gallery_dl/extractor/nitter.py
@@ -229,6 +229,26 @@ class NitterExtractor(BaseExtractor):
BASE_PATTERN = NitterExtractor.update({
+ "nitter.net": {
+ "root": "https://nitter.net",
+ "pattern": r"(?:www\.)?nitter\.net",
+ },
+ "nitter.space": {
+ "root": "https://nitter.space",
+ "pattern": r"(?:www\.)?nitter\.space",
+ },
+ "nitter.tiekoetter": {
+ "root": "https://nitter.tiekoetter",
+ "pattern": r"(?:www\.)?nitter\.tiekoetter\.com",
+ },
+ "xcancel": {
+ "root": "https://xcancel.com",
+ "pattern": r"(?:www\.)?xcancel\.com",
+ },
+ "lightbrd": {
+ "root": "https://lightbrd.com",
+ "pattern": r"(?:www\.)?lightbrd\.com",
+ },
})
USER_PATTERN = BASE_PATTERN + r"/(i(?:/user/|d:)(\d+)|[^/?#]+)"
diff --git a/test/results/lightbrd.py b/test/results/lightbrd.py
new file mode 100644
index 00000000..3719f849
--- /dev/null
+++ b/test/results/lightbrd.py
@@ -0,0 +1,23 @@
+# -*- coding: utf-8 -*-
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2 as
+# published by the Free Software Foundation.
+
+from gallery_dl.extractor import nitter
+
+
+__tests__ = (
+{
+ "#url" : "https://lightbrd.com/supernaturepics/status/604341487988576256",
+ "#category": ("nitter", "lightbrd", "tweet"),
+ "#class" : nitter.NitterTweetExtractor,
+},
+
+{
+ "#url" : "https://lightbrd.com/supernaturepics",
+ "#category": ("nitter", "lightbrd", "tweets"),
+ "#class" : nitter.NitterTweetsExtractor,
+},
+
+)
diff --git a/test/results/nitternet.py b/test/results/nitternet.py
new file mode 100644
index 00000000..7455a923
--- /dev/null
+++ b/test/results/nitternet.py
@@ -0,0 +1,47 @@
+# -*- coding: utf-8 -*-
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2 as
+# published by the Free Software Foundation.
+
+from gallery_dl.extractor import nitter
+
+
+__tests__ = (
+{
+ "#url" : "https://nitter.net/supernaturepics/status/604341487988576256",
+ "#category": ("nitter", "nitter.net", "tweet"),
+ "#class" : nitter.NitterTweetExtractor,
+ "#results" : "https://nitter.net/pic/orig/media%2FCGMNYZvW0AIVoom.jpg",
+
+ "comments" : 18,
+ "content" : "Big Wedeene River, Canada",
+ "count" : 1,
+ "date" : "dt:2015-05-29 17:40:00",
+ "extension": "jpg",
+ "filename" : "CGMNYZvW0AIVoom",
+ "likes" : 513,
+ "num" : 1,
+ "quoted" : False,
+ "quotes" : 0,
+ "retweet" : False,
+ "retweets" : 455,
+ "tweet_id" : "604341487988576256",
+ "url" : "https://nitter.net/pic/orig/media%2FCGMNYZvW0AIVoom.jpg",
+ "author" : {
+ "name": "supernaturepics",
+ "nick": "Nature Pictures",
+ },
+ "user" : {
+ "name": "supernaturepics",
+ "nick": "Nature Pictures",
+ },
+},
+
+{
+ "#url" : "https://nitter.net/supernaturepics",
+ "#category": ("nitter", "nitter.net", "tweets"),
+ "#class" : nitter.NitterTweetsExtractor,
+},
+
+)
diff --git a/test/results/nitterspace.py b/test/results/nitterspace.py
new file mode 100644
index 00000000..fc8064db
--- /dev/null
+++ b/test/results/nitterspace.py
@@ -0,0 +1,23 @@
+# -*- coding: utf-8 -*-
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2 as
+# published by the Free Software Foundation.
+
+from gallery_dl.extractor import nitter
+
+
+__tests__ = (
+{
+ "#url" : "https://nitter.space/supernaturepics/status/604341487988576256",
+ "#category": ("nitter", "nitter.space", "tweet"),
+ "#class" : nitter.NitterTweetExtractor,
+},
+
+{
+ "#url" : "https://nitter.space/supernaturepics",
+ "#category": ("nitter", "nitter.space", "tweets"),
+ "#class" : nitter.NitterTweetsExtractor,
+},
+
+)
diff --git a/test/results/nittertiekoetter.py b/test/results/nittertiekoetter.py
new file mode 100644
index 00000000..05b11b3e
--- /dev/null
+++ b/test/results/nittertiekoetter.py
@@ -0,0 +1,23 @@
+# -*- coding: utf-8 -*-
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2 as
+# published by the Free Software Foundation.
+
+from gallery_dl.extractor import nitter
+
+
+__tests__ = (
+{
+ "#url" : "https://nitter.tiekoetter.com/supernaturepics/status/604341487988576256",
+ "#category": ("nitter", "nitter.tiekoetter", "tweet"),
+ "#class" : nitter.NitterTweetExtractor,
+},
+
+{
+ "#url" : "https://nitter.tiekoetter.com/supernaturepics",
+ "#category": ("nitter", "nitter.tiekoetter", "tweets"),
+ "#class" : nitter.NitterTweetsExtractor,
+},
+
+)
diff --git a/test/results/xcancel.py b/test/results/xcancel.py
new file mode 100644
index 00000000..948459cc
--- /dev/null
+++ b/test/results/xcancel.py
@@ -0,0 +1,23 @@
+# -*- coding: utf-8 -*-
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2 as
+# published by the Free Software Foundation.
+
+from gallery_dl.extractor import nitter
+
+
+__tests__ = (
+{
+ "#url" : "https://xcancel.com/supernaturepics/status/604341487988576256",
+ "#category": ("nitter", "xcancel", "tweet"),
+ "#class" : nitter.NitterTweetExtractor,
+},
+
+{
+ "#url" : "https://xcancel.com/supernaturepics",
+ "#category": ("nitter", "xcancel", "tweets"),
+ "#class" : nitter.NitterTweetsExtractor,
+},
+
+)