diff --git a/docs/supportedsites.md b/docs/supportedsites.md
index 9b2a4bc5..8805aebe 100644
--- a/docs/supportedsites.md
+++ b/docs/supportedsites.md
@@ -838,7 +838,7 @@ Consider all listed sites to potentially be NSFW.
Tapas |
https://tapas.io/ |
- Episodes, Series |
+ Creators, Episodes, Series |
Supported |
diff --git a/gallery_dl/extractor/tapas.py b/gallery_dl/extractor/tapas.py
index 0a9df20c..167953d2 100644
--- a/gallery_dl/extractor/tapas.py
+++ b/gallery_dl/extractor/tapas.py
@@ -151,3 +151,18 @@ class TapasEpisodeExtractor(TapasExtractor):
def episode_ids(self):
return (self.episode_id,)
+
+
+class TapasCreatorExtractor(TapasExtractor):
+ subcategory = "creator"
+ pattern = BASE_PATTERN + r"/(?!series|episode)([^/?#]+)"
+ example = "https://tapas.io/CREATOR"
+
+ def items(self):
+ url = "{}/{}/series".format(self.root, self.groups[0])
+ page = self.request(url).text
+ page = text.extr(page, '")
+
+ data = {"_extractor": TapasSeriesExtractor}
+ for path in text.extract_iter(page, ' href="', '"'):
+ yield Message.Queue, self.root + path, data
diff --git a/test/results/tapas.py b/test/results/tapas.py
index 1278d9f8..d4289383 100644
--- a/test/results/tapas.py
+++ b/test/results/tapas.py
@@ -73,4 +73,17 @@ __tests__ = (
},
},
+{
+ "#url" : "https://tapas.io/SANG123/series",
+ "#comment" : "#5306",
+ "#category": ("", "tapas", "creator"),
+ "#class" : tapas.TapasCreatorExtractor,
+ "#urls" : (
+ "https://tapas.io/series/the-return-of-the-disaster-class-hero-novel",
+ "https://tapas.io/series/the-return-of-the-disaster-class-hero",
+ "https://tapas.io/series/tomb-raider-king",
+ "https://tapas.io/series/tomb-raider-king-novel",
+ ),
+},
+
)