Gallery Dl Versions Save

Command-line program to download image galleries and collections from several image hosting sites

v1.26.9

1 month ago

Extractors

Additions

  • [artstation] support video clips (#2566, #3309, #3911)
  • [artstation] support collections (#146)
  • [deviantart] recognize deviantart.com/stash/… URLs
  • [idolcomplex] support new pool URLs
  • [lensdump] recognize direct image links (#5293)
  • [skeb] add extractor for followed users (#5290)
  • [twitter] add quotes extractor (#5262)
  • [wikimedia] support azurlane.koumakan.jp (#5256)
  • [xvideos] support /channels/ URLs (#5244)

Fixes

  • [artstation] fix handling usernames with dashes in domain names (#5224)
  • [bluesky] fix not spawning child extractors for followed users (#5246)
  • [deviantart] handle CloudFront blocks (#5363)
  • [deviantart:avatar] fix index for URLs without ? (#5276)
  • [deviantart:stash] fix index values (#5335)
  • [gofile] fix extraction
  • [hiperdex] update URL patterns & fix manga metadata (#5340)
  • [idolcomplex] fix metadata extraction
  • [imagefap] fix folder extraction (#5333)
  • [instagram] make accessing like_count non-fatal (#5218)
  • [mastodon] fix handling null moved account field (#5321)
  • [naver] fix EUC-KR encoding issue in old image URLs (#5126)
  • [nijie] increase default delay between requests (#5221)
  • [nitter] ignore invalid Tweets (#5253)
  • [pixiv:novel] fix text extraction (#5285, #5309)
  • [skeb] retry 429 responses containing a request_key cookie (#5210)
  • [warosu] fix crash for threads with deleted posts (#5289)
  • [weibo] fix retweets (#2825, #3874, #5263)
  • [weibo] fix livephoto filename extensions (#5287)
  • [xvideos] fix galleries with more than 500 images (#5244)

Improvements

  • [bluesky] improve API error messages
  • [bluesky] handle posts with different embed structure
  • [deviantart:avatar] ignore default avatars (#5276)
  • [fapello] download full-sized images (#5349)
  • [gelbooru:favorite] automatically detect returned post order (#5220)
  • [imgur] fail downloads when redirected to removed.png (#5308)
  • [instagram] raise proper error for missing reels_media (#5257)
  • [instagram] change posts are private exception to a warning (#5322)
  • [reddit] improve preview fallback formats (#5296, #5315)
  • [steamgriddb] raise exception for deleted assets
  • [twitter] handle "account is temporarily locked" errors (#5300)
  • [weibo] rework pagination logic (#4168)
  • [zerochan] fetch more posts by using the API (#3669)

Metadata

  • [bluesky] add instance metadata field (#4438)
  • [gelbooru:favorite] add date_favorited metadata field
  • [imagefap] extract folder metadata (#5270)
  • [instagram] default likes to 0 (#5323)
  • [kemonoparty] add revision_count metadata field (#5334)
  • [naver] unescape post title and description
  • [pornhub:gif] extract viewkey and timestamp metadata (#4463)
  • [redgifs] make date available for directories (#5262)
  • [subscribestar] fix date metadata
  • [twitter] add birdwatch metadata field (#5317)
  • [twitter] add protected metadata field (#5327)
  • [warosu] fix board_name metadata

Options

  • [bluesky] add reposts option (#4438, #5248)
  • [deviantart] add comments-avatars option (#4995)
  • [deviantart] extend metadata option (#5175)
  • [flickr] add contexts option (#5324)
  • [gelbooru:favorite] add order-posts option (#5220)
  • [kemonoparty] add order-revisions option (#5334)
  • [vipergirls] add like option (#4166)
  • [vipergirls] add domain option (#4166)

Downloaders

  • [http] add MIME type and signature for .mov files (#5287)

Docker

  • build images from source instead of PyPI package
  • build linux/arm64 images (#5227)
  • build images on every push to master
    • tag images as YYYY.MM.DD
    • tag the most recent build from master as dev
    • tag the most recent release build as latest
  • reduce image size (#5097)

Miscellaneous

  • [formatter] fix local DST datetime offsets for :O
  • build Linux executable on Ubuntu 22.04 LTS (#4184)
  • automatically create directories for logging files (#5249)

v1.26.8

2 months ago

Extractors

Additions

  • [bluesky] add support (#4438, #4708, #4722, #5047)
  • [bunkr] support new domains (#5114, #5130, #5134)
  • [fanbox] add home and supporting extractors (#5138)
  • [imagechest] add user extractor (#5143)
  • [imagetwist] add gallery extractor (#5190)
  • [kemonoparty] add posts extractor (#5194, #5198)
  • [twitter] support communities (#4913)
  • [vsco] support spaces (#5202)
  • [weibo] add gifs option (#5183)
  • [wikimedia] support www.pidgi.net (#5205)
  • [wikimedia] support bulbapedia.bulbagarden.net (#5206)

Fixes

  • [archivedmoe] fix thebarchive WebM URLs (#5116)
  • [batoto] fix crash when manga name or chapter contains a - (#5200)
  • [bunkr] fix extraction (#5088, #5151, #5153)
  • [gofile] update website_token extraction
  • [idolcomplex] fix pagination for tags containing : (#5184)
  • [kemonoparty] fix deleting file names when computing revision_hash (#5103)
  • [luscious] fix IndexError for files without thumbnail (#5122, #5124, #5182)
  • [naverwebtoon] fix title for comics with empty tags (#5120)
  • [pinterest] fix section URLs for boards with /, ?, or # in their name (#5104)
  • [twitter] update query hashes
  • [zerochan] fix skipping every other post

Improvements

  • [deviantart] skip locked/blurred posts (#4567, #5193)
  • [deviantart] implement downloading PNG versions of non-original images with "quality": "png" (#4846)
  • [flickr] handle non-JSON errors (#5131)
  • [idolcomplex] support alphanumeric post IDs (#5171)
  • [kemonoparty] implement filtering duplicate revisions with "revisions": "unique"(#5013)
  • [naverwebtoon] support /webtoon/ paths for all comics (#5123)

Metadata

  • [idolcomplex] extract id_alnum metadata (#5171)
  • [pornpics] support multiple values for channel (#5195)
  • [sankaku] add id-format option (#5073)
  • [skeb] add num and count metadata fields (#5187)

Downloaders

Fixes

  • [http] remove pyopenssl import (#5156)

Miscellaneous

  • fix filename formatting silently failing under certain circumstances (#5185, #5186)

v1.26.7

3 months ago

Extractors

Additions

  • [2ch] add support (#1009, #3540, #4444)
  • [deviantart:avatar] add formats option (#4995)
  • [hatenablog] add support (#5036, #5037)
  • [mangadex] add list extractor (#5025)
  • [steamgriddb] add support (#5033, #5041)
  • [wikimedia] add support (#1443, #2906, #3660, #2340)
  • [wikimedia] support fandom wikis (#2677, #3378)

Fixes

  • [blogger] fix lh-*.googleusercontent.com URLs (#5091)
  • [bunkr] update domain (#5088)
  • [deviantart] fix AttributeError for URLs without username (#5065)
  • [deviantart] fix KeyError: 'premium_folder_data' (#5063)
  • [deviantart:avatar] fix exception when comments are enabled (#4995)
  • [fuskator] make metadata extraction non-fatal (#5039)
  • [gelbooru] only log "Incomplete API response" for favorites (#5045)
  • [giantessbooru] update domain
  • [issuu] fix extraction
  • [nijie] fix download URLs of single image posts (#5049)
  • [patreon] fix KeyError: 'name' (#5048, #5069, #5093)
  • [pixiv] update API headers (#5029)
  • [realbooru] fix download URLs of older posts
  • [twitter] revert to using media timeline by default (#4953)
  • [vk] transform image URLs to non-blurred versions (#5017)

Improvements

  • [batoto] support more mirror domains (#5042)
  • [batoto] improve v2 manga URL pattern
  • [gelbooru] support all tag and URLs with empty tags (#5076)
  • [patreon] download m3u8 manifests with ytdl
  • [sankaku] support post URLs with alphanumeric IDs (#5073)

Metadata

  • [batoto] improve manga_id extraction (#5042)
  • [erome] fix count metadata
  • [kemonoparty] add revision_hash metadata (#4706, #4727, #5013)
  • [paheal] fix source metadata
  • [webtoons] extract more metadata (#5061, #5094)

Removals

  • [chevereto] remove pixl.li
  • [hbrowse] remove module
  • [nitter] remove nitter.lacontrevoie.fr

v1.26.6

3 months ago

Extractors

Additions

  • [batoto] add chapter and manga extractors (#1434, #2111, #4979)
  • [deviantart] add avatar and background extractors (#4995)
  • [poringa] add support (#4675, #4962)
  • [szurubooru] support snootbooru.com (#5023)
  • [zzup] add gallery extractor (#4517, #4604, #4659, #4863, #5016)

Fixes

  • [gelbooru] fix favorite extractor (#4903)
  • [idolcomplex] fix extraction & update URL patterns (#5002)
  • [imagechest] fix loading more than 10 images in a gallery (#4469)
  • [jpgfish] update domain
  • [komikcast] fix manga extractor (#5027)
  • [komikcast] update domain (#5027)
  • [lynxchan] update bbw-chan domain (#4970)
  • [manganelo] fix extraction & recognize .to TLDs (#5005)
  • [paheal] restore extension metadata (#4976)
  • [rule34us] add fallback for video-cdn1 videos (#4985)
  • [weibo] fix AttributeError in user extractor (#5022)

Improvements

  • [gelbooru] show error for invalid API responses (#4903)
  • [rule34] recognize URLs with www subdomain (#4984)
  • [twitter] raise error for invalid strategy values (#4953)

Metadata

  • [fanbox] add metadata option (#4921)
  • [nijie] add count metadata (#146)
  • [pinterest] add count metadata (#4981)

Miscellaneous

  • fix and update zsh completion (#4972)
  • fix --cookies-from-browser macOS Firefox profile path

v1.26.5

4 months ago

Extractors

Additions

  • [deviantart] add intermediary option (#4955)
  • [inkbunny] add unread extractor (#4934)
  • [mastodon] support non-numeric status IDs (#4936)
  • [myhentaigallery] recognize /g/ URLs (#4920)
  • [postmill] add support (#4917, #4919)
  • {shimmie2[ support rule34hentai.net (#861, #4789, #4945)

Fixes

  • [deviantart] add workaround for integer client-id values (#4924)
  • [exhentai] fix error for infinite fallback-retries (#4911)
  • [inkbunny] stop pagination on empty results
  • [patreon] fix bootstrap data extraction again (#4904)
  • [tumblr] fix exception after waiting for rate limit (#4916)

Improvements

  • [exhentai] output continuation URL when interrupted (#4782)
  • [inkbunny] improve /submissionsviewall.php patterns (#4934)
  • [tumblr] support infinite fallback-retries
  • [twitter] default to tweets timeline when replies are enabled (#4953)

Metadata

  • [danbooru] provide tags as list (#4942)
  • [deviantart] set is_original for intermediary URLs to false
  • [twitter] remove date_liked (#3850, #4108, #4657)

Docker

  • add Docker instructions to README (#4850)
  • fix auto-generation of latest tags

v1.26.4

4 months ago

Extractors

Additions

  • [exhentai] add fallback-retries option (#4792)
  • [urlgalleries] add gallery extractor (#919, #1184, #2905, #4886)

Fixes

  • [nijie] fix image URLs of multi-image posts (#4876)
  • [patreon] fix bootstrap data extraction (#4904, #4906)
  • [twitter] fix /media timelines (#4898, #4899)
  • [twitter] retry API requests when response contains incomplete results (#4811)

Improvements

  • [exhentai] store more cookies when logging in with username & password (#4881)
  • [twitter] generalize "Login Required" errors (#4734, #4324)

Options

  • add -e/--error-file command-line and output.errorfile config option (#4732)

Miscellaneous

  • automatically build and push Docker images
  • prompt for passwords on login when necessary
  • fix util.dump_response() to work with bytes header values

v1.26.3

4 months ago

Extractors

Additions

  • [behance] support text modules (#4799)
  • [behance] add modules option (#4799)
  • [blogger] support www.micmicidol.club (#4759)
  • [erome] add count metadata (#4812)
  • [exhentai] add gp option (#4576)
  • [fapello] support .su TLD (#4840, #4841)
  • [pixeldrain] add file and album extractors (#4839)
  • [pixeldrain] add api-key option (#4839)
  • [tmohentai] add gallery extractor (#4808, #4832)

Fixes

  • [cyberdrop] update to site layout changes
  • [exhentai] handle Downloading … requires GP errors (#4576, #4763)
  • [exhentai] fix empty API URL with "source": "hitomi" (#4829)
  • [hentaifoundry] check for and update expired sessions (#4694)
  • [hiperdex] fix manga metadata
  • [idolcomplex] update to site layout changes
  • [imagefap] fix resolution of single images
  • [instagram] fix exception on empty video_versions (#4795)
  • [mangaread] fix extraction
  • [mastodon] fix reblogs (#4580)
  • [nitter] fix video extraction (#4853, #4855)
  • [pornhub] fix user metadata for gifs
  • [tumblr] fix day extractor
  • [wallpapercave] fix extraction
  • [warosu] fix file URLs
  • [webtoons] fix pagination when receiving an HTTP redirect
  • [xvideos] fix metadata extraction
  • [zerochan] fix metadata extraction

Improvements

  • [hentaicosplays] force https:// for download URLs
  • [oauth] warn when cache is enabled but not writeable (#4771)
  • [sankaku] update URL patterns
  • [twitter] ignore promoted Tweets (#3894, #4790)
  • [weibo] detect redirects to login page (#4773)

Removals

  • [foolslide] remove powermanga.org

Downloaders

Changes

  • [http] treat files not passing filesize-min/-max as skipped (#4821)

Options

Additions

  • add metadata-extractor option (#4549)
  • support metadata-* names for *-metadata options (for example url-metadata is now also recognized as metadata-url)

CLI

Additions

  • implement -I/--input-file-comment and -x/--input-file-delete options (#4732)
  • add --ugoira as a general version of --ugoira-conv and co.
  • add --mtime as a general version of --mtime-from-date
  • add --cbz

Fixes

  • allow --mtime-from-date to work with Weibo`s metadata structure

Miscellaneous

Additions

  • add a simple Dockerfile (#4831)

v1.26.2

5 months ago

Extractors

Additions

  • [4archive] add thread and board extractors (#1262, #2418, #4400, #4710, #4714)
  • [hitomi] recognize imageset gallery URLs (#4756)
  • [kemonoparty] add revision_index metadata field (#4727)
  • [misskey] support misskey.design (#4713)
  • [reddit] support Reddit Mobile share links (#4693)
  • [sankaku] support /posts/ tag search URLs (#4740)
  • [twitter] recognize fixupx.com URLs (#4755)

Fixes

  • [exhentai] update to site layout changes (#4730, #4754)
  • [exhentai] provide fallback URLs (#1021, #4745)
  • [exhentai] disable DH ciphers to avoid DH_KEY_TOO_SMALL errors (#1021, #4593)
  • [idolcomplex] disable sending Referer headers (#4726)
  • [instagram] update API headers
  • [kemonoparty] fix parsing of non-standard date values (#4676)
  • [patreon] fix campaign_id extraction (#4699, #4715, #4736, #4738)
  • [pixiv] load cookies for non-OAuth URLs (#4760)
  • [twitter] fix avatars without date information (#4696)
  • [twitter] restore truncated retweet texts (#3430, #4690)
  • [weibo] fix Sina Visitor requests

Improvements

  • [behance] unescape embed URLs (#4742)
  • [fantia] simplify tags to a list of strings (#4752)
  • [kemonoparty] limit title length (#4741)
  • [nijie] set 1-2s delay between requests to avoid 429 errors
  • [patreon] provide ways to manually specify a user's campaign_id
    • https://www.patreon.com/id:12345
    • https://www.patreon.com/USER?c=12345
    • https://www.patreon.com/USER?campaign_id=12345
  • [twitter] cache user_by_… results (#4719)

Post Processors

Fixes

  • [metadata] ignore non-string tag values (#4764)

Miscellaneous

Fixes

  • prevent crash when stdout.line_buffering is not defined (#642)

v1.26.1

6 months ago

Extractors

Additions

  • [bunkr] add extractor for media URLs (#4684)
  • [chevereto] add generic extractors for chevereto sites (#4664)
    • deltaporno.com (#1381)
    • img.kiwi
    • jpgfish
    • pixl.li (#3179, #4357)
  • [deviantart] implement "group": "skip" (#4630)
  • [fantia] add content_count and content_num metadata fields (#4627)
  • [imgbb] add displayname and user_id metadata (#4626)
  • [kemonoparty] support post revisions; add revisions option (#4498, #4597)
  • [kemonoparty] support searches (#3385, #4057)
  • [kemonoparty] support discord URLs with channel IDs (#4662)
  • [moebooru] add metadata option (#4646)
  • [newgrounds] support multi-image posts (#4642)
  • [sankaku] support /posts/ URLs (#4688)
  • [twitter] add sensitive metadata field (#4619)

Fixes

  • [4chanarchives] disable Referer headers by default (#4686)
  • [bunkr] fix /d/ file URLs (#4685)
  • [deviantart] expand nested comment replies (#4653)
  • [deviantart] disable jwt (#4652)
  • [hentaifoundry] fix .swf file downloads (#4641)
  • [imgbb] fix user metadata extraction (#4626)
  • [imgbb] update pagination end condition (#4626)
  • [kemonoparty] update API endpoints (#4676, #4677)
  • [patreon] update campaign_id path (#4639)
  • [reddit] fix wrong previews (#4649)
  • [redgifs] fix niches extraction (#4666, #4667)
  • [twitter] fix crash due to missing source (#4620)
  • [warosu] fix extraction (#4634)

Post Processors

Additions

  • support {_filename}, {_directory}, and {_path} replacement fields for --exec (#4633)

Miscellaneous

Improvements

  • avoid temporary copies with --cookies-from-browser by opening cookie databases in read-only mode

v1.26.0

6 months ago
  • Extractors

    Additions

    • [behance] add date metadata field (#4417)
    • [danbooru] support booru.borvar.art (#4096)
    • [danbooru] support donmai.moe
    • [deviantart] add is_original metadata field (#4559)
    • [e621] support e6ai.net (#4320)
    • [exhentai] add fav option (#4409)
    • [gelbooru_v02] support xbooru.com (#4493)
    • [instagram] add following extractor (#1848)
    • [pillowfort] support /tagged/ URLs (#4570)
    • [pornhub] add gif support (#4463)
    • [reddit] add previews option (#4322)
    • [redgifs] add niches extractor (#4311, #4312)
    • [redgifs] support order parameter for user URLs (#4583)
    • [twitter] add user extractor and include option (#4275)
    • [twitter] add tweet-endpoint option (#4307)
    • [twitter] add date_original metadata for retweets (#4337, #4443)
    • [twitter] extract source metadata (#4459)
    • [twitter] support x.com URLs (#4452)

    Improvements

    • include Referer header in all HTTP requests (#4490, #4518) (can be disabled with referer option)
    • [behance] show errors for mature content (#4417)
    • [deviantart] re-add quality option and /intermediary/ transform
    • [fantia] improve metadata extraction (#4126)
    • [instagram] better error messages for invalid users (#4606)
    • [mangadex] support multiple values for lang (#4093)
    • [mastodon] support /@USER/following URLs (#4608)
    • [moebooru] match search URLs with empty tags (#4354)
    • [pillowfort] extract b2_lg_url media (#4570)
    • [reddit] improve comment metadata (#4482)
    • [reddit] ignore /message/compose URLs (#4482, #4581)
    • [redgifs] provide collection metadata as separate field (#4508)
    • [redgifs] match gfycat image URLs (#4558)
    • [twitter] improve error messages for single Tweets (#4369)

    Fixes

    • [acidimg] fix extraction
    • [architizer] fix extraction (#4537)
    • [behance] fix and update user extractor (#4417)
    • [behance] fix cookie usage (#4417)
    • [behance] handle videos without renditions (#4523)
    • [bunkr] fix media domain for cdn9 (#4386, #4412)
    • [bunkr] fix extracting .wmv files (#4419)
    • [bunkr] fix media domain for cdn-pizza.bunkr.ru (#4489)
    • [bunkr] fix extraction (#4514, #4532, #4529, #4540)
    • [deviantart] fix full resolution URLs for non-downloadable images (#293, #4548, #4563)
    • [deviantart] fix shortened URLs (#4316)
    • [deviantart] fix search (#4384)
    • [deviantart] update Eclipse API endpoints (#4553, #4615)
    • [deviantart] use private tokens for is_mature posts (#4563)
    • [flickr] update default API credentials (#4332)
    • [giantessbooru] fix extraction (#4373)
    • [hiperdex] fix crash for titles containing Unicode characters (#4325)
    • [hiperdex] fix manga metadata
    • [imagefap] fix pagination (#3013)
    • [imagevenue] fix extraction (#4473)
    • [instagram] fix private posts with long shortcodes (#4362)
    • [instagram] fix video preview archive IDs (#2135, #4455)
    • [instagram] handle exceptions due to missing media (#4555)
    • [issuu] fix extraction (#4420)
    • [jpgfish] update domain to jpg1.su (#4494)
    • [kemonoparty] update favorite API endpoint (#4522)
    • [lensdump] fix extraction (#4352)
    • [mangakakalot] update domain
    • [reddit] fix preview.redd.it URLs (#4470)
    • [patreon] fix extraction (#4547)
    • [pixiv] handle errors for private novels (#4481)
    • [pornhub] fix extraction (#4301)
    • [pururin] fix extraction (#4375)
    • [subscribestar] fix preview detection (#4468)
    • [twitter] fix crash on private user (#4349)
    • [twitter] fix TweetWithVisibilityResults (#4369)
    • [twitter] fix crash when sortIndex is undefined (#4499)
    • [zerochan] fix tags extraction (#4315, #4319)

    Removals

    • [gfycat] remove module
    • [shimmie2] remove meme.museum
  • Post Processors

    Changes

    • update finalize events
      • add finalize-error and finalize-success events that trigger depending on whether error(s) did or did not happen
      • change finalize to always trigger regardless of error status

    Additions

    • add python post processor
    • add prepare-after event (#4083)
    • [ugoira] add "framerate": "uniform" (#4421)

    Improvements

    • [ugoira] extend ffmpeg-output (#4421)

    Fixes

    • [ugoira] restore libx264-prevent-odd (#4407)
    • [ugoira] fix high frame rates (#4421)
  • Downloaders

    Fixes

    • [http] close connection when file already exists (#4403)
  • Options

    Additions

    • support parent>child categories for child extractor options, for example an imgur album from a reddit thread with reddit>imgur
    • implement subconfigs option (#4440)
    • add "ascii+" as a special path-restrict value (#4371)

    Removals

    • remove pyopenssl option
  • Tests

    Improvements

    • move extractor results into their own, separate files (#4504)
    • include fallback URLs in content tests (#3163)
    • various test method improvements
  • Miscellaneous

    Fixes

    • [formatter] use value of last alternative (#4492)
    • fix imports when running __main__.py (#4581)
    • fix symlink resolution in __main__.py
    • fix default Firefox user agent string