diff --git a/docs/configuration.rst b/docs/configuration.rst index a5d89d53..bee737d5 100644 --- a/docs/configuration.rst +++ b/docs/configuration.rst @@ -2328,6 +2328,18 @@ Description Search posts for inline images and videos. +extractor.tumblr.offset +----------------------- +Type + ``integer`` +Default + ``0`` +Description + Custom ``offset`` starting value when paginating over blog posts. + + Allows skipping over posts without having to waste API calls. + + extractor.tumblr.original ------------------------- Type diff --git a/docs/gallery-dl.conf b/docs/gallery-dl.conf index 80793422..e507eb03 100644 --- a/docs/gallery-dl.conf +++ b/docs/gallery-dl.conf @@ -297,6 +297,7 @@ "external": false, "inline": true, "posts": "all", + "offset": 0, "original": true, "reblogs": true }, diff --git a/gallery_dl/extractor/tumblr.py b/gallery_dl/extractor/tumblr.py index 0b21c0af..5ad8122a 100644 --- a/gallery_dl/extractor/tumblr.py +++ b/gallery_dl/extractor/tumblr.py @@ -435,11 +435,15 @@ class TumblrAPI(oauth.OAuth1API): def posts(self, blog, params): """Retrieve published posts""" - params.update({"offset": 0, "limit": 50, "reblog_info": "true"}) + params["offset"] = self.extractor.config("offset") or 0 + params["limit"] = 50 + params["reblog_info"] = "true" + if self.posts_type: params["type"] = self.posts_type if self.before: params["before"] = self.before + while True: data = self._call(blog, "posts", params) self.BLOG_CACHE[blog] = data["blog"]