diff --git a/docs/supportedsites.md b/docs/supportedsites.md index 7449717c..e18e3ad2 100644 --- a/docs/supportedsites.md +++ b/docs/supportedsites.md @@ -184,7 +184,7 @@ Consider all listed sites to potentially be NSFW. Civitai https://www.civitai.com/ - Collections, Generated Files, individual Images, Image Listings, Models, Model Listings, Posts, Post Listings, Image Searches, Model Searches, Tag Searches, User Profiles, User Collections, User Images, Image Reactions, User Models, User Posts, User Videos, Video Reactions + Collections, Generated Files, individual Images, Image Listings, Models, Model Listings, Posts, Post Listings, Image Searches, Model Searches, Tag Searches, User Profiles, User Collections, User Images, Image Reactions, User Models, User Posts, User Videos, Video Reactions, Video Listings diff --git a/gallery_dl/extractor/civitai.py b/gallery_dl/extractor/civitai.py index 99846853..00400ba4 100644 --- a/gallery_dl/extractor/civitai.py +++ b/gallery_dl/extractor/civitai.py @@ -463,6 +463,17 @@ class CivitaiImagesExtractor(CivitaiExtractor): return self.api.images(params) +class CivitaiVideosExtractor(CivitaiExtractor): + subcategory = "videos" + pattern = BASE_PATTERN + r"/videos(?:/?\?([^#]+))?(?:$|#)" + example = "https://civitai.com/videos" + + def images(self): + params = self._parse_query(self.groups[0]) + params["types"] = ("video",) + return self.api.images(params) + + class CivitaiPostsExtractor(CivitaiExtractor): subcategory = "posts" pattern = BASE_PATTERN + r"/posts(?:/?\?([^#]+))?(?:$|#)" diff --git a/scripts/supportedsites.py b/scripts/supportedsites.py index 6e1ae146..2feabaab 100755 --- a/scripts/supportedsites.py +++ b/scripts/supportedsites.py @@ -245,6 +245,7 @@ SUBCATEGORY_MAP = { "civitai": { "models": "Model Listings", "images": "Image Listings", + "videos": "Video Listings", "posts" : "Post Listings", "search-models": "Model Searches", "search-images": "Image Searches", diff --git a/test/results/civitai.py b/test/results/civitai.py index 22c8f842..d985a787 100644 --- a/test/results/civitai.py +++ b/test/results/civitai.py @@ -388,6 +388,16 @@ __tests__ = ( "#class": civitai.CivitaiImagesExtractor, }, +{ + "#url" : "https://civitai.com/videos", + "#class" : civitai.CivitaiVideosExtractor, +}, + +{ + "#url" : "https://civitai.com/videos?tags=5169", + "#class" : civitai.CivitaiVideosExtractor, +}, + { "#url" : "https://civitai.com/models", "#class": civitai.CivitaiModelsExtractor,