Release history
gallery-dl releases
Command-line program to download image galleries and collections from several image hosting sites
All releases
31 shown
v1.32.1
Breaking risk
⚠ Upgrade required
- Pull updates from Codeberg for versions >= 1.32.0 (migration path per issue #9473).
Breaking changes
- Removed extractor module `comick`.
- Removed extractor module `weebdex`.
Notable features
- Added Aryion extractor for watched users (`messagepage`).
- Added Framedsc support.
- Implemented Exhentai `source: torrent` extraction.
Full changelog
Active development has moved to Codeberg
(see [Announcement] Moving to Codeberg for details)
https://codeberg.org/mikf/gallery-dl/releases/tag/v1.32.1
Extractors
- Additions
- Removals
- [comick] remove module
- [weebdex] remove module
aryion- rename
watchextractor tomessagepage
- rename
blogger- fix video extraction (
gh#9487)
- fix video extraction (
deviantartdiscordexhentaifacebook- handle negative
fallback-retriesvalues - increase
loopdetection threshold (gh#9495)
- handle negative
furaffinity- fix download URL extraction (
gh#9494)
- fix download URL extraction (
imxto- extract
datemetadata (gh#9450)
- extract
instagramnitter- add
fallback-retriesoption (cb#59) - use
request_location()for user ID lookups
- add
philomena- add
commentsoption (gh#9478)
- add
pixiv- fix & update
searchextractor (gh#9469)
- fix & update
reddit- add
pinnedoption (gh#9004)
- add
scrolller- fix
userGraphQL query
- fix
telegraph- extract full article
html&linksmetadata (gh#9468)
- extract full article
twibooru- add
commentsoption (gh#9478)
- add
twitter- fix
AttributeErrorwhen extended user metadata fetch fails (pr#76)
- fix
vipergirls- support proxy domains (
cb#43)
- support proxy domains (
warosu- fix extraction (
gh#9485)
- fix extraction (
weibo- fix
KeyError: 'title'(cb#47)
- fix
Documentation
- replace more GitHub links
Output
- add
unitsoption (cb#56)
Scripts
release- include
requirementsdirectory
- include
rm- delete
extractor/utilsfiles
- delete
Update
Utilities
job- run
filterbeforedate&tagspredicates (gh#9492)
- run
text- implement
iextr()
- implement
util- implement
format_bytes_binary()
- implement
v1.32.0
Breaking risk
Breaking changes
- Removed `date-format` option; ISO 8601 format is now enforced.
Notable features
- Basic server/IPC queue implementation
- Added `date-before` and `date-after` filtering options
- Implemented tag blacklist/whitelist (`tags-blacklist`, `tags-whitelist`) support across many extractors
Full changelog
Active development has moved to Codeberg
(see [Announcement] Moving to Codeberg for details)
https://codeberg.org/mikf/gallery-dl/releases/tag/v1.32.0
Core
- implement basic server/IPC queue (
pr#9338) - implement
date-before/-afteroptions (gh#1167gh#1389gh#2308) - implement
tags-blacklist/-whitelistoptions (gh#2446gh#3755gh#4240gh#4248gh#4270gh#4272gh#4387gh#5208gh#6267gh#6845gh#7324gh#7910) - implement
followoption (gh#8752) - implement path-restricted archive paths (
gh#3359gh#3361gh#4100gh#8027) - implement linear/exponential backoff for
sleep-429 - implement lazy-loading of larger extractor resources like GraphQL queries and HTML generation functionality
- refactor internal caching mechanisms
- rename
image-*&chapter-*options tofile-*&child-* - enable
metadata-url/-path/-parent/-extractorby default - remove
date-formatoption - use ISO 8601 format instead - report errors when using removed/deprecated options (
gh#9163) - fix preserving (private) metadata in cached values (
gh#9375)
Extractors
common
- add common headers to
request_json()requests - add reference to
exceptionmodule toExtractorclass - fix
"browser": "…/VERSION"parsing (gh#9401) - improve
__NEXT_DATA__extraction (gh#9420gh#9435gh#9447cb#23cb#30) - include duration in
wait()output - exclude
altURLs frominclude=all
8muses
- use dynamic directories by default
allporncomic
aryion
- improve error message on login failure (
gh#9429) - use
text.filename_from_contentdisposition
bellazon
- ignore
/main/style_emoticons/URLs (gh#9140)
bluesky
- support submitting sign-in code during login (
gh#9367)
bunkr
- add
direct-linkextractor (cb#27)
chevereto
- combine
image&videoextractors into afileextractor - improve password requirement detection
- support
putmega.com(gh#2045gh#9361)
cien
- support downloading article cover images
civitai
- support
civitai.red(gh#9421gh#9422gh#9426gh#9459cb#29cb#32)
(api-keyorcookiesare now required to access NSFW content)
comicartfans
- add support (
gh#4524) - implement
child-rangeskip
coomer
- improve default file order (
gh#9097)
cosmos
- add support (
gh#9358) - fix
KeyError: 'multipleMedia'(gh#9358) - update default image
format - support specifying a user ID with
id:...
cosplayrule34
cyberdrop
- support
/e/embed URLs (gh#9301)
danbooru
- implement
tags-blacklistimport (gh#5208)
deviantart
- emit log messages when requesting download URL (
gh#9217) - export
journaltemplates &tiptapfunctions - fix login with username & password (
gh#9351) - fix possible
KeyError: 'extension'(gh#9339) - fix
TypeErrorwhenauto-unwatchis enabled (gh#9182) - fix
"refresh-token": "cache"(gh#9217gh#9268) - implement
code_challengeflow foroauth:deviantart(pr#14)
discord
- [search] implement
date-beforeskip
e621
- implement
tags-blacklistimport (gh#5208) - update
tagsformat
exhentai
- enable
tagscategories by default
- fix
TypeErrorfor users without avatar page (gh#9347) - change
loopdefault totrue(cb#26) - disable jump detection for multi-photo posts (
gh#9286) - download only 1 file for single-photo posts (
gh#9286) - support
/permalink.phppost URLs (gh#9352)
flickr
foolfuuka
- improve media link resolution (
pr#9047)
gelbooru_v01
gelbooru_v02
- fix infinite pagination loop when using
--range(gh#9176)
gofile
- update WT generation
salt(gh#9183) - enable
recursiveby default
harvardlawnuremberg
- add
documentextractor (pr#18)
imagepond
- support
/i/URLs & update root domain - update extractors
imageshack
- add support (
gh#9282)
- add
audiooption (gh#9297) - extract
audiometadata (gh#9297) - handle missing music_info and skip invalid audio URLs (
gh#9335) - add
photosextractor (pr#25) - add
static-videosoption (gh#9103) - add
user-cacheoption (gh#8978gh#9025) - add
user-strategyoption (gh#8978gh#9025) - expose story item audience metadata (
gh#9320) - extend
previewsoption (gh#9297) - extend
user-strategyoption (gh#9039gh#9069) - fix user caching behavior (
gh#9025)
joyreactor
- rewrite (
gh#6642gh#7104gh#7531) - ignore tag info section
- stop pagination when next page link is not present
koofr
- fix names with special characters (
cb#31)
mangadex
- extract
usermetadata (pr#15)
myhentaigallery
- support URLs starting with
/a/(cb#13)
newgrounds
- fix login with username & password (
gh#9308)
nhentai
- update to API v2 (
cb#1)
nsfwalbum
nudostar
- fix file URLs of models with more than 1000 images (
gh#9332)
oauth
- fix
AttributeError: 'update'(gh#9230) - fix
cacheattribute overwriting function - implement
code_challengeflow for deviantart (pr#14)
patreon
- fix extracting
contentimages (gh#9292) - restore
contentmetadata (gh#9171gh#9208gh#9185) - use
text.filename_from_contentdisposition(gh#9322) - [user] implement
date-beforeskip
pholder
- fix solving challenges (
gh#9264)
pixeldrain
- enable
recursiveby default
pixiv
- fix
KeyError: 'total_comments'(cb#16) - rename
followtofollowedsubcategory - [bookmark] implement
cursorsupport (gh#9289)
plurk
- refactgor (
gh#1111gh#1683gh#4360gh#4425gh#5477pr#5) - add
directory_fmt&filename_fmt - add
plurk_id_base36in metadata - add option
external&replurkoptions - fix directlink error
- parse dates
poipiku
- implement login with username & password (
gh#9284)
postype
- add support (
pr#17)
- add
user-agent-oauthoption (gh#8641gh#8838) - support
www.old.reddit.comURLs (gh#9137) - use OAuth API when
client_idis given (gh#8838) - [user] improve error message for suspended accounts (
gh#9177)
redgifs
- implement
post-rangeskip (gh#9274) - improve API related error messages (
gh#9274) - increase number of results per page to 100 (
gh#9274) - [user] forward URL parameters (
gh#9274)
sankaku
- implement
tags-blacklistimport (gh#5208)
schalenetwork
- enable
tagscategories by default
scrolller
- add
userextractor (gh#8961)
sizebooru
- fix
idextraction (gh#9425)
snapchat
szurubooru
- submit consent form when necessary
- use
util.HTTPBasicAuth()
tcbscans
tsumino
- remove module
tumblr
- do not ignore
reblogsoption for single posts - filter duplicate inline images (
gh#9418) - fix
"reblogs": "same-blog"(gh#9360) - improve inline file regex (
gh#6505) - retry without OAuth when blocked by other user (
gh#8803) - support
date-beforeskip
- ensure
self.apiis always defined (gh#9271gh#9273cb#9295) - extend
articlehandling (gh#8995) - extract
friends_mutualuser metadata (gh#9349) - prevent crash when processing empty pinned Tweets (#9231)
- fix
KeyError: 'id_str'when downloading card videos (gh#9294) - fix possible
KeyError: 'entities'in_transform_user() - implement
metadata-useroption (gh#8984) - implement
"search-pagination": "date" - implement
showrepliesoption (gh#7092gh#9389) - rename
repliessubcategory towith-replies(gh#9162gh#8107) - rewrite
articleimage URLs (gh#8995) - use
_tweetid_to_datetimemethod
urlgalleries
- update extractor (
gh#9090)
vipergirls
- support
viper.toURLs (gh#9417)
webtoons
- extract date metadata from comic episode listings (
pr#6)
- add
likesoption (gh#9366) - update
Sina Visitor Systembypass (gh#9279) - visit homepage for guest cookies when API blocked (
gh#9279)
xenforo
- decode
/redirect/URLs (gh#9042gh#9364) - extract
thread[path]metadata (gh#9369) - fix
binascii.Error: Incorrect padding - improve detection of auth requirement (
gh#9216) - support
thefappeningblog.com/forum(cb#12)
xfolio
- implement
fullsizeoption - support
.webppreview image downloads
ytdl
- propagate
ControlExceptionand handle ignoreerrors (pr#9229)
zerochan
- fix
/fav/tag searches (gh#9387)
Downloaders
http
- check
downloadflag before connecting to server (gh#9109)
Post Processors
- add
child&child-afterevents
exec
- add
outputoption - implement
success&erroroptions
metadata
- add
emptyoption - improve
_write_tags()code
ugoira
- add more
mkvmergeoptions (gh#8803) - disable
mkvmerge-mtimeby default (gh#9222) - disable
mkvmergeoutput, addmkvmerge-outputoption
Actions
- implement
keywordaction
flag
- implement
skip(gh#8960) - implement
pause,toggle, andclear - add ability to clear/reset all flags
Cache
- remove decorator classes
- support
:memory:database path - update database file access
Configuration
- support setting default file type via
GDL_CONFIG_TYPEenvironment variable and--config-typecommand-line option - improve
--config-status - fix
JSONDecodeErrorwhen using non-JSON config types (gh#9063)
Docker
- harden builds
- enable hash-checking mode
- disallow source distributions
- https://pip.pypa.io/en/stable/topics/secure-installs/
- install gallery-dl from Codeberg repository
Documentation
- add
pull_request_template.md
configuration
- document postprocessor
/MODEand@EVENT(gh#8980) - document postprocessor
type(gh#8803) - improve
output.colors&output.ansidescription (gh#9155) - update
extractor.*.archive - use anchors for alternative/deprecated names
README
- fix broken repo links (
pr#2) - include link to options in opening paragraph (
gh#8803) - update GitHub links (
cb#38) - update links to stable executable releases
Options
- add
--blacklist&--whitelistcommand-line options - add
--config-type&--config-jsoncommand-line options - add
--restrict-filenames&--windows-filenamescommand-line options - add
geo-bypass/--xffoption - add
sleep-retriesoption - use
"ugoira": "original"by default - use
yuv420poutput pixel format for ugoira presets - implement various
cachecommand-line options--cache-clear--cache-file--cache-show--cache-status--cache-vacuum
Path
- implement
generate_path() - include
"html": "htm"in defaultextension-map - include
|replacement inwindows+preset
Scripts
- implement
requirements.py - [pull-request] support Codeberg PR URLs
- [release] update issue link replacements
- [run_tests] randomize test order
Tests
- fix failure due to test order
job
- add tests for DataJob
resolve - test
parent-metadata/_extractorhandling
results
- fix testing external extractors
- implement testing exception messages
Utilities
text
- implement
extract_urls()helper - implement
filename_from_contentdisposition(gh#4022) - implement
parse_hex_escapes
util
- add
typeargument toHTTPBasicAuth - implement
build_duration_func_ex() - implement
predicate_date()&predicate_tags() - implement complex
tags-blacklistfilter rules - improve
rangepredicate stop by using flags - remove support for paths as lists
Miscellaneous
- add
initoption - [exception] implement
StopDownload - [formatter] add
q&Qconversions - URL-encode & -decode values - [workflows:executables] use Python 3.14
v1.31.10
Breaking risk
Breaking changes
- DeviantArt: `original` downloads are disabled by default (config change)
Security fixes
- Patreon: restrict legacy `User-Agent` use to mitigate potential abuse (#9249)
- Twitter: fix extraction of `ondemand.s.a.js` and prevent crash on empty pinned Tweets (multiple fixes #9260, #9262, #9265, #9267, #9270, #9231)
Notable features
- Added extractor for Fantasia fanclubs
- Added support for Foriio
- Added support for Iwara.ai
Full changelog
Extractors
Additions
- [fantia] add extractor for supported fanclubs (#9236 #9237)
- [foriio] add support (#2293)
- [iwara] support
iwara.ai(#9241) - [rule34world] add support (#9227)
- [wikimedia] support
mgewiki.moe(#9258) - [xenforo] support
blacktowhite.net(#9216)
Fixes
- [bellazon] handle
/main/index.phpattachments (#9140) - [bilibili] fix & improve
livephotofilenames (#9210) - [deviantart] disable
originaldownloads by default (#9211 #9213 #9217) - [deviantart] apply
originalto all downloadable file types (#9217) - [exhentai] prevent
ValueErrorfor incomplete MPV data (#9259) - [gofile] update Website Token
salt - [myportfolio] disallow
cdn.myportfolio.comURLs - [patreon] restrict legacy
User-Agentuse (#9249) - [pholder] fix
Could not locate window.data JSONerror (#9264) - [reddit] fix results for
/user/…/comments/URLs (#9212) - [reddit] fix
previewsforcommentsubmissions (#9206) - [twitter] fix
ondemand.s.a.jsextraction (#9260 #9262 #9265 #9267 #9270) - [twitter] prevent crash when processing empty pinned Tweets (#9231)
Improvements
- [bilibili] extract
user_idmetadata (#9210) - [deviantart] remove
blurfilters (#9217) - [twitter] implement
previewsoption (#9232) - [wikimedia] handle
index.phppaths (#9258) - [xenforo] add
quotedoption (#9207) - [xenforo] add
attachments&embedsoptions - [xenforo] improve auth requirement detection (#9216)
- [yiffverse] recognize
system&metatag types
Post Processors
- [mtime] allow using
modeto select date key
v1.31.9
Bug fix
Fixed AttributeError in twitter extractor.
Full changelog
Extractors
Fixes
- [twitter] fix
AttributeError: '_update_variables_search_maxid'(#9203)
v1.31.8
New feature
⚠ Upgrade required
- HTTP downloader now releases connections on `416 Range Not Satisfiable` responses
- `path-restrict` accepts `windows+` as a special value
Notable features
- Added `tag` extractor for fanbox and readcomiconline
- Added support for filester, mixdrop file extractor, e621 shared URLs, sankaku parent post search, smugmug deleted‑file error handling, tumblr media from answers/asks, vipr missing‑image detection, xenforo imgur embeds, facebook:photo metadata improvement, pixiv hash extraction
- Added `actions` postprocessor and extended `ugoira` mkvmerge options
Full changelog
Extractors
Additions
- [fanbox] add
tagextractor (#9128) - [filester] add support (#9196)
- [mixdrop] add
fileextractor (#8982 #9130) - [readcomiconline] add
tagextractor (#9190)
Fixes
- [bellazon] fix
contentof posts with multiple quotes (#9140) - [fansly] fix
KeyError: 'data'(#9149) - [gofile] fix extractor (#9183)
- [kemono:discord] fix archive data overwriting general data (#9184 #9195)
- [luscious] fix empty file URLs (#9172 #9188)
- [paheal] fix tag searches with only 1 result (#9186)
- [patreon] update default
User-Agentheaders (#9165) - [reddit:user] disable
onlyforupvoted&downvotedresults (#9124) - [simplyhentai] rewrite (#9158)
- [tiktok] use more lenient regex for secondary user IDs (#9094)
- [twitter] use
max_idas defaultsearch-pagination(#9193 #9194) - [weebdex] fix
KeyError: 'chapter'for oneshots (#9123) - [whyp] fix downloading private content (#9133)
Improvements
- [e621] support shared post URLs (#9168)
- [sankaku] include parent post in
parent:…searches (#9102) - [smugmug] improve error for deleted files (#9140)
- [tumblr] support media from
answer'/'asksposts (#4509) - [vipr] detect missing images (#8415)
- [xenforo] support
imgurmedia embeds (#9127)
Metadata
- [facebook:photo] improve metadata availability (#9147)
- [pixiv] extract
hashmetadata when available - [postimg] fix
filenamemetadata (#9119)
Downloaders
- [http] release connections on
416 Range Not Satisfiableresponses
Post Processors
- [actions] add
actionspostprocessor - [hash] allow using
modeto select hashes - [ugoira] add more
mkvmergeoptions (#8803)
Miscellaneous
- [path] add
windows+as a specialpath-restrictvalue
v1.31.7
Bug fix
Notable features
- [pholder] added support
- [xenforo] added `profile` extractor and fixed attachment extraction
- [iwara] added `format` option
Full changelog
Extractors
Additions
- [pholder] add support (#2568 #9067)
- [xenforo] add
profileextractor (#9046)
Fixes
- [deviantart] use private token for
tierlocked deviations (#9072) - [iwara] fix extractors (#9096)
- [mangadex] preserve
api-parametersorder (#9111) - [mangadex:covers] fix
400 Bad Requestwhen usinglangoption - [manganelo] fix
mangaextractor (#9059) - [mangataro] fix
chapterextractor - [paheal] fix
md5metadata (#9110 #9121) - [pornpics] fix
searchextractor pagination (#9022 #9068) - [postimg:gallery] support multiple pages (#9119)
- [reddit] fix
KeyError: 'children'when expanding comments (#9037) - [reddit] fix
/external-previewembed downloads (#9037) - [reddit:user] fix user lookup when using sub view (#8228 #9032)
- [reddit:user] disable
onlyfor/savedresults (#9071) - [simpcity] fix
gofilelinks (#9042) - [weebdex] fix
chapter-reverse(#9041) - [xenforo] fix
IndexErrorwhen extracting attachments (#9046) - [xenforo] fix attachments extraction (#9070)
Improvements
- [eporner] detect
Age Verificationpages (#9064) - [fikfap] support main page post URLs (#9026)
- [imagefap] don't return anything for empty profiles (#9034)
- [imagefap] handle
/galleries?folderid=0URLs (#9034) - [iwara] add
formatoption - [koofr] improve subdirectory handling
- [mangadex] add
coversoption
Metadata
- [chevereto] extract
titlemetadata (#9061) - [kemono] add
archives-formatoption (#9104) - [koofr] provide
num&count
Post Processors
- [exec] use non-UNC path replacements on Windows (#8879)
- [ugoira] fix processing
.gifframes
Miscellaneous
- [formatter] fix exceptions for non-default
fmt(#9113)
v1.31.6
Bug fix
⚠ Upgrade required
- Added support for Floorp cookies (#9005)
- Firefox profile path support extended to version 147+ (#8803)
Notable features
- Added `hashtag` extractor for fikfap (#9018)
- Support dashes in usernames for fikfap (#9019)
- Reddit user extractor now supports `only` option and provides `user` metadata (#8228)
Full changelog
Extractors
Additions
- [fikfap] add
hashtagextractor (#9018)
Fixes
- [8chan] fail downloads of
POWimages (#8975) - [artstation] fix embedded videos (#8972 #9003)
- [artstation] fix
challengeextractor - [imagefap:user] support multiple pages (#9016)
- [imhentai] use alternate strategy for galleries without image data (#8951)
- [instagram] use
/topsearch/to fetch user information (#8978) - [pixiv] fix errors when using metadata options for avatar/background
- [simpcity] extract
tiktok&redditmedia embeds (#8994 #8996) - [tiktok] always try to resolve JS challenges (#8993)
- [tiktok] use time cursor for story requests (#8991)
- [tiktok] identify when user accounts do not exist (#8977)
- [tiktok] do not exit early when rolling back cursor (#8968)
- [xhamster] fix user profile extraction (#8974)
Improvements
- [8chan] skip
TOScookie name lookup if already present - [artstation] download
/8k/images (#9003) - [discord:server-search] use
max_idfor pagination - [fikfap] allow for dashes in usernames (#9019)
- [instagram] cache user profile results on disk (#8978)
- [reddit:user] implement
onlyoption (#8228) - [reddit:user] provide
usermetadata (#8228) - [tiktok] fix outdated error message (#8979)
- [twitter] support
articlemedia (#8995) - [xenforo] implement
"order-posts": "reaction"(#8997)
Cookies
- add support for
Floorp(#9005) - support
Firefox147+ profile paths (#8803)
Miscellaneous
- [job] fix overwriting
_extractorfields (#8958) - use tempfile when updating input files (#8981)
v1.31.5
New feature
Notable features
- Added `server-search` extractor for Discord
- Added `image` and `people` extractors for Listal
- Added support for Mangafreak and Mangatown sites
Full changelog
Extractors
Additions
- [discord] add
server-searchextractor - [listal] add
image&peopleextractors (#1589 #8921) - [mangafreak] add support (#8928)
- [mangatown] add support (#8925)
- [xenforo] support
titsintops.com(#8945) - [xenforo] support
forums.socialmediagirls.com(#8964)
Fixes
- [civitai:user-posts] fix pagination (#8955)
- [imhentai] detect galleries without image data (#8951)
- [kemono] fix possible
AttributeErrorwhen processing revisions (#8929) - [mangataro] fix
mangaextractor (#8930) - [pornhub] fix
400 Bad Requestwhen logged in (#8942) - [tiktok] solve JS challenges (#8850)
- [tiktok] fix account extraction (#8931)
- [tiktok] extract more story item list pages (#8932)
- [tiktok] do not fail story extraction if a user has no stories (#8938)
- [weebdex] make metadata extraction non-fatal (#8939 #8954)
- [weibo] fix
KeyError - 'pid'when processing subalbums (#8792) - [xenforo] improve
attachmentextraction (#8947) - [xenforo] fix cookies check before login (#8919)
Improvements
- [exhentai] implement Multi-Page Viewer support (#2616 #5268)
- [kemono] reduce
revisionsAPI requests when possible - [tiktok] implement
subtitlessupport (#8805) - [tiktok] implement downloading all
covertypes (#8805) - [tiktok] do not stop extraction if a post fails (#8962)
- [weebdex] add
langoption (#8957) - [weebdex] support query parameter filters
- [weibo] add
subalbumsinclude (#8792) - [xenforo] improve error message extraction (#8919)
- [xenforo] decode
/goto/link-confirmationlinks (#8964)
Post Processors
- [mtime] fix overwriting
Last-Modifiedmtime when selecting invalid values (#8918)
Miscellaneous
- [docs/options] add Table of Contents
- [job] add
output.jsonloption (#8953) - [job] add
extractor.*.parentoption - [job] enable all
parent-…options for parent extractors by default
v1.31.4
Breaking risk
Breaking changes
- Removed [batoto] module (#8834 #8908).
Notable features
- [common] added `parent-session` option
- [common] added `googlebot` User-Agent preset
- [docker] build from python:3.14-alpine
Full changelog
Extractors
Additions
- [kaliscan] add support (#8917)
- [turbo] add support - rewrite
saintextractors (#8893 #8896 #8909) - [xenforo] support
celebforum.to(#8902) - [xenforo] add
media-albumextractor (#8902)
Fixes
- [mangafire] fix extractors - generate
vrftokens (#8400 #8906) - [nitter] use
gallery-dl/<version>User-Agent (#7045 #8130 #8409) - [tiktok] fix
followingextractor (#8849) - [xenforo] fix using cookies for custom instances (#8902)
Improvements
- [imagebam] raise
NotFoundErrorfor deleted images & galleries (#8890) - [kemono:discord] improve
filenameparsing - [kemono:discord] support server URLs with trailing
/ - [tiktok] download best quality videos (#8846)
- [tiktok] prefer
legacyendpoint for user post extraction (#8812 #8847) - [twitter] implement
"ratelimit": "abort:N"(#5251 #8864) - [weebdex] add
data-saveroption (#8914) - [xenforo] ignore links starting with
#
Metadata
- [kemono:discord] extract
archivesmetadata (#8898) - [xenforo:media-album] extract
albummetadata (#8902)
Removals
- [batoto] remove module (#8834 #8908)
Miscellaneous
- [common] implement
parent-sessionoption - [common] add
googlebotUser-Agent preset - [docker] build from
python:3.14-alpine - [release] add more checks before committing a release
- [util] replace classes with functions for predicates, Popen, HTTPBasicAuth
v1.31.3
Breaking risk
Breaking changes
- Rename of `USERAGENT` constant to `USERAGENT_GALLERYDL` (#8836)
Notable features
- Add support for Live Photo downloads from Bilibili
- Add `zip` option for Pixeldrain album extraction
Full changelog
Extractors
Additions
- [booth] add
categoryextractor (#8867) - [thefap] add support (#8821 #8822)
- [xenforo] implement
mediasupport (#8785)- add
media-item,media-user,media-categoryextractors
- add
Fixes
- [ahottie:album] support multiple pages (#8862 #8886)
- [bellazon] use
data-full-imageURLs if available (#8833) - [fanbox] make
commentsextraction non-fatal (#8814) - [imagevenue] fix
NotFoundErrorfor valid image links (#8818) - [xenforo] fix/improve
bb*Wrapperextraction (#8868)
Improvements
- [bellazon] match thread URLs with escaped characters
- [bilibili] add support for Live Photo downloads (#8860)
- [booth:item] support URLs with language codes
- [chevereto] implement password support
- [chevereto:user] support
albumresults - [dankefuerslesen] support
/reader/seriesURLs (#8811) - [furaffinity:favorite] support URLs with custom start position
- [imagetwist:gallery] support multiple pages (#8826)
- [koofr] refactor (#8803)
- [pixeldrain:album] add
zipoption - [pixeldrain] warn about hotlink-protected files (#8803)
- [pixeldrain] improve
filenameparsing - [rule34xyz] support URLs with
wwwsubdomain (#8875) - [saint] support
turbovid.cr&turbo.crURLs (#8851 #8888) - [shopify] support URLs starting with language codes
- [webtoons] extend
bgmoption (#8733) - [weibo:album] implement
subalbumsupport (#8792) - [wikimedia] use
gallery-dl/<version>User-Agent (#8770 #8861)
Metadata
- [bellazon] unescape
thread[slug]names - [imagetwist:gallery] extract
gallery_title&gallery_idmetadata - [motherless] fix gallery media metadata issues (#8873)
- [rule34xyz] recognize
system&metatag types - [sexcom] fix
tagswhen passing cookies (#8880) - [tiktok] provide
post_typemetadata (#8815) - [xenforo] extract
author_slugmetadata (#8785)
Downloaders
- [ytdl] implement
_ytdl_manifest_remux
Miscellaneous
- [common] implement
"user-agent": "+PRESET" - [docs/README] add Discord link
- [formatter] overload
.operator - [job] fix extractor
kwdictvalues being unavailable in filters - [util] adjust Firefox/Chrome User-Agent versions
- [util] rename
USERAGENTtoUSERAGENT_GALLERYDL(#8836)
v1.31.2
New feature
Notable features
- Added extractors for ahottie, discord server‑assets, imgpv image, manganelo bookmark, tiktok stories/liked/saved/reposts, twitter notifications, whyp, yourlesbians album
- Added options: facebook `loop`, fansly `previews`, koofr `zip`, tiktok `order-posts`
Full changelog
Extractors
Additions
- [ahottie] add aupport (#8710)
- [discord] add
server-assetsextractor (#8589) - [imgpv] add
imageextractor (#8773) - [manganelo] add
bookmarkextractor (#8776) - [tiktok] add support for stories, liked posts, saved posts, reposts (#8035 #8466 #8715)
- [twitter] add
notificationsextractor (#7974) - [whyp] add support (#8725)
- [yourlesbians] add
albumextractor (#8713)
Fixes
- [batoto] replace k-subdomain image URLs with n-subdomain (#8791)
- [civitai] update
quality-videosdefault (#8787) - [deviantart:stash] fix
JSONDecodeEerrorfor folders (#8750) - [exhentai] fix possible exception in
finalize()(#8741) - [instagram:stories] extract correct
expiresdates (#8764) - [sankaku] fix re-authentication (#8779)
- [tapas] unescape HTML entities in image URLs (#8790)
- [tumblr:search] prevent
KeyErrorwhen usingoffsetpagination (#8720) - [xenforo] fix incomplete video URLs (#8786)
Improvements
- [bunkr] detect new maintenance video file (#8802)
- [fansly] disable
formatscheck by default (#8757) - [instagram] detect homepage redirects (#8714)
- [instagram] don't warn on minor image size differences (#8300)
- [pixiv] support
sketchinclude (#8789) - [subscribestar] support filterting
userposts bytag(#8737) - [tiktok] remove yt-dlp dependency (#7246 #8466 #8730 #8715)
- [webtoons] download episode background music (#8733)
- [xenforo] support
/#post-IDURLs
Metadata
- [pixiv] provide
countmetadata (#8794) - [tiktok] combine
…_idfields into a singlefile_idone (#8804) - [webtoons] extract
num_play&num_stopfor background music (#8733 #8755)
Options
- [facebook] add
loopoption (#8696) - [fansly] add
previewsoption (#8686) - [koofr] implement
zipoption (#6582 #8700) - [tiktok] add
order-postsoption (#8730 #8715)
Downloaders
- [http] add MIME type and signature for
.aacfiles - [ytdl] fix overwriting
mtimeof downloaded files (#8767) - [ytdl] expect all exception types when extracting
info_dict(#8343)
Miscellaneous
- [actions] fix
abort(#8753) - [options] add
--sleep-skip(#6582)
v1.31.1
New feature
Notable features
- Added generic `2chen` board extractor supporting https://schan.help/
- Added `watch` extractor for aryion
- Added `gallery` extractor for comedywildlifephoto
Full changelog
Extractors
Additions
- [2chen] implement generic
2chenboard extractors- support
https://schan.help/(#8680)
- support
- [aryion] add
watchextractor (#8705) - [comedywildlifephoto] add
galleryextractor (#8690) - [koofr] add
sharedextractor (#8700) - [picazor] add
userextractor (#7083 #7504 #7795 #8717) - [weebdex] add support (#8722)
- [xenforo] support
allthefallen.moe/forum(#3249 #8268)
Fixes
- [aryion:favorite] fix extraction (#8705 #8723 #8728)
- [aryion] fix
descriptionmetadata - [boosty] include
Authorizationheader with file downloads (#8704) - [fanbox] make
_extract_post()non-fatal (#8711) - [furaffinity] fix
tagsmetadata (#8724) - [mastodon] fix
AttributeError: 'parse_datetime_iso'(#8709) - [tenor] fix
titlemetadata - [twitter] fix
avatar&backgrounddownloads with"expand": true(#8698)
Improvements
- [boosty] warn about expired
authcookie tokens (#8704) - [misskey] implement
order-postsoption (#8516) - [reddit] use
"videos": "dash"by default (#8657) - [pixiv] warn about invalid
PHPSESSIDcookie (#8689)
Downloaders
- [ytdl] fix
UnboundLocalError: 'tries'(#8707) - [ytdl] respect
--no-skip
Miscellaneous
- [path] implement dynamic length directories (#1350)
- [formatter] add
Iformat specifier - identity - [tests] add
pathtests
v1.31.0
Breaking risk
Breaking changes
- [redbust] remove module
Notable features
- Add `channel` extractor for arena, `search` for aryion, support for audiochan, cfake, cyberfile:folder (subfolders), Danbooru media‑asset, e621 artist & artist-search, eporner, fikfap, fitnakedgirls, myhentaigallery tag, nudostarforum, okporn, pornpics category & listing, pornstarstube, sexcom feed, shimmie2 soybooru.com support, sxypix, generic XenForo forum extractors
- Downloader enhancements: http `_http_segmented` support, ytdl retry functionality and improved error handling
- Post‑processor additions: metadata `newline` option, exec `verbose` option
Full changelog
Extractors
Additions
- [arena] add
channelextractor (#5847 #8509) - [aryion] add
searchextractor (#8567) - [audiochan] add support (#8602)
- [cfake] add support (#707 #6021 #8549 #8687 #8430)
- [cyberfile] add
sharedextractor (#8323) - [Danbooru] add
media-assetextractor (#8580) - [e621] add
artist&artist-searchextractors (#8448) - [eporner] add support (#8581)
- [fikfap] add support (#8673)
- [fitnakedgirls] add support (#8671)
- [myhentaigallery] add
tagextractor (#8537) - [nudostarforum] add support (#8664)
- [okporn] add support (#8575)
- [pornpics] add
category&listingextractors (#8662) - [pornstarstube] add support (#8576)
- [sexcom] add
feedextractor (#8519) - [shimmie2] support
soybooru.com(#8467) - [sxypix] add support (#4507 #8391 #8574)
- [xenforo] implement generic
XenForoforum extractors
Fixes
- [bellazon] fix errors when handling guest users (#8397)
- [bellazon] fix starting from a specific page
- [cien] fix
creator&recentextractors (#8524) - [fanbox:redirect] disable cookie usage (#8565)
- [gofile] fix extraction (#8681 #8683)
- [imagebam] fix
filename&extensionfor names without ext (#8476) - [instagram] fix
AttributeError: 'videos_dash'(#8561) - [motherless] fix
gallery_titleextraction (#8605) - [paheal] fix
AttributeError - [pixiv] fix
KeyError: 'is_bookmarked'(#8398) - [postimg] fix extraction (#8505)
- [rawkuma] update extractors to new site layout (#8568)
- [realbooru] fix
tagsfor video posts (#8455) - [reddit] fix
KeyError: 'media_metadata'for embeds (#8551) - [sankaku][idolcomplex] fix download URLs (#8666)
- [schalenetwork] fix
tagscategories (#8625) - [silverpic] fix extraction & force
.netTLD - [simpcity] fix
contentfor first post of a thread - [simpcity] fix starting from a specific page (#8599)
- [twitter] fix
KeyErrorfortemporarily unavailableusers (#8423) - [twitter] fix
KeyError - 'source_id'with disabledtransform(#8429) - [twitter] fix
AttributeErrorforsearch-pagination": "max_id"(#8613) - [twitter] update & fix
pinnedTweet extraction (#8500) - [vsco] use
"browser": "firefox"by default (#8127) - [webtoons] fix
thumbnailextraction (#8413) - [xasiat] fix
IndexErrorfor albums without category (#8569)
Improvements
- [2ch] support
.orgTLD (#8629) - [bunkr] detect when an album is deleted mid-download (#8619)
- [cyberdrop] update domain to
cyberdrop.cr(#8496) - [cyberfile:folder] support subfolders (#8323)
- [deviantart:gallery] match URLs with query parameters (#8514)
- [discord] limit length of default filenames (#6582)
- [erome] improve error message for deleted & copyrighted albums (#8665)
- [fansly] handle posts without
accountId/contentId/attachments(#8572) - [flickr] extract public API key from website (#7564 #7649 #7700 #8553)
- [imagehost] improve
filename&extensionhandling - [imagetwist] detect deleted images (#8415)
- [imagevenue] improve error for deleted images (#8477)
- [imgbox] match direct links (#8474)
- [imhentai:search] support
/advanced-search/URLs (#8507) - [instagram] improve error for non-existent profiles (#8550)
- [jpgfish] update domain to
jpg7.cr(#8530) - [newgrounds] set error status when encountering inaccessible posts (#8654)
- [realbooru] extract video fallbacks (#8661)
- [reddit] use REST API by default (#8559)
- [reddit] support comment share link (#8434)
- [rule34us:tag] support URLs with empty
qquery parameter (#8546) - [pixhost] force
.toTLD (#8428) - [postimg] force
postimg.ccdomain (#8505) - [sankaku][idolcomplex] support URLs with locale code (#8667)
- [simpcity] implement login with username & password (#8418)
- [simpcity] extract attachment/inline files (#8560)
- [simpcity] extract
click to load mediaURLs (#8609) - [tiktok] ignore empty
musicentries (#8571) - [twitter] restore better user NotFoundError messages (#8621)
- [twitter] implement workarounds for empty
coredata (#8613) - [wikimedia] add
format=originaltofandom/wikiggfile URLs (#5512) - [wikimedia] implement config lookups for
fandom/wikiggsites (#7283)
Metadata
- [bellazon] add
num_internal&num_externalmetadata fields (#8415) - [bellazon] remove query parameters from attachment IDs (#8544)
- [bunkr] extract
album_…metadata for/f/URLs (#8405) - [chevereto] extract
album_id&album_slugmetadata (#8604) - [chevereto:album] extract
count&nummetadata (#8604) - [civitai] implement extracting
tagsmetadata (#8626) - [fanbox] return metadata of inaccessible posts (#8643)
- [hentaifoundry] extract
categoriesmetadata (#8656) - [imagehosts] provide
post_urlmetadata (#6582) - [instagram] extract
subscriptionmetadata for story/highlight items (#8459) - [instagram] extract correct
width&heightfor videos (#8399) - [kemono] improve
filename - [patreon] include full metadata with each URL (#4286 #8498)
- [pixhost] extract
directorymetadata (#6582) - [subscribestar] improve
filename(#8416) - [wikimedia] provide
langmetadata (#7283)
Options
- [bluesky] add
api-serveroption (#8668) - [civitai] add
sort&periodoptions (#8426) - [fanbox:creator] add
offsetoption (#6582) - [itaku] add
orderoption - [mangadex] add
data-saveroption (#8573) - [misskey] add
date-min&date-maxoptions (#8516) - [misskey] add
text-postsoption (#8516) - [patreon] add
order-postsoption (#7856 #8482) - [schalenetwork][hdoujin] re-implement
cbzoption (#8431) - [tiktok] add
coversoption (#8515) - [twitter] add general
limitoption (#8173) - [twitter] implement
retries-apioption (#8317) - [twitter] implement
search-resultsoption (#8613) - [twitter] implement using fallback values for
search-limit(#8173) - [weibo] add
textoption (#8422)
Removals
- [redbust] remove module (#6582)
Common
- allow general ISO 8601 values for
date-min&date-max - use
parentvalue asparent-metadatadefault (#8525 #8604)
Downloaders
- [http] fail downloads of empty files (#8661)
- [http] implement
_http_segmented(#8602) - [ytdl] implement
retryfunctionality (#1131 #8269) - [ytdl] improve error detection
- [ytdl] improve error message when importing default ytdl modules
- [ytdl] update
_extract_manifest() - [ytdl] forward
_ytdl_manifest_headersto formats - [ytdl] restructure code
Post Processors
- [metadata] add
newlineoption (#8439) - [exec] add
verboseoption (#7743)
Formatter
- add
Lbformat specifier -Lfor bytes - add
Xbformat specifier -Xfor bytes (#6582)
Job
- add
keywords-globaloption (#6582) - implement
post-filter&post-rangeoptions - implement
"archive-event": "after"(#8373) - use identity checks
- inline
dispatchloop
Path
- implement conditional
part-directory(#8329) - treat broken symlinks as existing files (#8490)
- improve
exists()performance
Miscellaneous
- [cookies] fix cookie count logging message order (#8414)
- [dt] move datetime utils into separate
dtmodule - [output] add
deferoption for logging files (#8523) - [output] add
Logger.traceback()helper - [scripts/init] fix error when running with default values (#8583)
- [util] support integer values for
…-rangeoptions (#8604) - [workflows:tests] include Python 3.14 & pypy3.11
v1.30.10
Breaking risk
Breaking changes
- Removed Twitter login support (#4202 #6029 #6040 #8362)
Notable features
- [bluesky] Added `bookmark` extractor
- [exec] Supports `{_temppath}` replacement fields
- [formatter] Improved error messages
Full changelog
Extractors
Additions
- [bluesky] add
bookmarkextractor (#8370) - [dandadan] add support (#8381)
Fixes
- [bellazon] fix video URL extraction (#8392)
- [bluesky] handle exceptions during file extraction
- [civitai] prevent downloading random posts from deleted users (#8299)
- [girlsreleased] update API endpoints (#8360)
- [instagram] restore
video_dash_manifestdownloads (#8364) - [kemono] prevent fatal exceptions when retrieving user profile data (#8382)
- [mangadex] fix
RuntimeErrorfor titles without adescription(#8389) - [naver-blog] fix video extraction (#8385)
- [poipiku] fix original file downloads (#8356)
- [weibo] fix retrieving followers-only content (#6447 #7939 #8063 #8354 #8357)
- [weibo] use
pageparameter forfeedresults (#7523 #8128 #8357) - [wikimedia] fix name & extension of files without an extension (#8344)
- [wikimedia] ignore missing files (#8388)
Improvements
- [bellazon] ignore links to other threads (#8392)
- [common] disable delay for
request_location() - [fansly] update format selection (#4401)
- [fansly] download user posts from all account walls (#4401)
- [instagram] support
/share/SHORTCODEURLs (#8340) - [weibo] ignore ongoing live streams (#8339)
- [zerochan] forward URL parameters to API requests (#8377)
Metadata
- [instagram] extract
subscriptionmetadata (#8349) - [webtoons] fix
episodemetadata extraction (#2591)
Removals
- [twitter] remove login support (#4202 #6029 #6040 #8362)
Post Processors
- [exec] support
{_temppath}replacement fields (#8329)
Miscellaneous
- [formatter] improve error messages (#8369)
- [path] implement conditional
base-directory - use
utf-8encoding when opening files in text mode (#8376)
v1.30.9
Breaking risk
Breaking changes
- [chevereto] remove `img.kiwi`
Notable features
- [mangafire] add support
- [mangareader] add support
- [patreon] add `collection` extractor
Full changelog
Extractors
Additions
- [mangafire] add support (#7064 #7701)
- [mangareader] add support (#6529 #6868)
- [patreon] add
collectionextractor (#8286) - [s3ndpics] add support (#8322)
Fixes
- [chevereto] fix
idfor links without file name (#8307) - [chevereto:album] fix video downloads (#8149 #8295)
- [hdoujin] fix
KeyError: 13by addingreclasstag type (#8290) - [misskey] include
withRenotesparameter in API requests (#8285) - [nozomi] percent-encode search tags (#8328)
- [simpcity] fix
KeyError: 'url'when thread author is deleted (#8323) - [twitter] fix
quote_idof individual Tweets (#8284) - [zerochan] prevent
HttpError: '503 Service Temporarily Unavailable'(#8288)
Improvements
- [chevereto] support URLs with
wwwsubdomain (#8149) - [imxto:gallery] support multiple pages (#8282)
- [instagram] add
warn-images&warn-videosoptions (#8283) - [instagram] use
reelsubcategory for/reel/SHORTCODEURLs (#8274) - [instagram] support
/reels/SHORTCODEURLs (#8318) - [paheal] normalize
No resultsoutput message (#8313) - [pixiv] implement searching past 5000 results (#1686 #7082 #8298)
- [thehentaiworld] support more
postURL formats (#8277) - [weibo] download
.m3u8manifests with ytdl (#8339) - [weibo] resolve
wblive-out.api.weibo.comURLs (#8339) - [weibo] use
replay_hdURLs as video fallback (#8339) - [wikimedia] add ability to download image revisions (#7283 #8330)
- [zerochan] normalize
No resultsoutput message (#8313)
Metadata
- [hdoujin] extract
sourcemetadata (#8280) - [instagram] provide
typemetadata (#8274) - [mangadex] extract more manga-related metadata (#8325)
Removals
- [chevereto] remove
img.kiwi
Downloaders
- [http] add MIME type and signature for m3u8 & mpd files (#8339)
Post Processors
- [python] restore
archivefunctionality
Miscellaneous
- [cookies] add support for
Orionbrowser (#8303) - [docker] include more optional Python dependencies (#8026)
- [docs] update
configuration.rstformatting
v1.30.8
Breaking risk
⚠ Upgrade required
- ytdl downloader fixed errors caused by removal of deprecated options
Notable features
- Added extractors for chevereto (imglike.com, category), Danbooru (random), hdoujin, imgpile, mangadex (covers), mangataro, thehentaiworld
- Updated 2ch domain to 2ch.su and added support for 2ch.life URLs
- Extract biography metadata from facebook, full tagged_… metadata from instagram:tagged, more metadata and directory type from iwara, comment metadata from reddit
Full changelog
Extractors
Additions
- [chevereto] support
imglike.com(#5179) - [chevereto] add
categoryextractor (#5179) - [Danbooru] add
randomextractor (#8270) - [hdoujin] add support (#6810)
- [imgpile] add support (#5044)
- [mangadex] add
coversextractor (#4994) - [mangataro] add support (#8237)
- [thehentaiworld] add support (#274 #8237)
Fixes
- [4archive] fix
TypeError(#8217) - [bellazon] fix video attachments (#8239)
- [bunkr] fix
JSONDecodeErrorfor files with URL slugs containing apostrophes'(#8150) - [instagram] ensure manifest data exists before attempting a DASH download (#8267)
- [schalenetwork] fix extraction (#6948 #7391 #7728)
- [twitter] fix quoted Tweets being marked as
deleted(#8225)
Improvements
- [2ch] update domain to
2ch.su, support2ch.lifeURLs (#8216) - [bellazon][simpcity][vipergirls] process threads in descending order (#8248)
- [bellazon] extract
inlineimages (##8247) - [bellazon] support video embeds (#8239)
- [bellazon] support
#comment-12345post links (#8239) - [lensdump] support new direct file URL pattern (#8251)
- [simpcity] extract URLs of
<iframe>embeds (#8214 #8256) - [simpcity] improve post content extraction (#8214)
Metadata
- [facebook] extract
biographymetadata (#8233) - [instagram:tagged] provide full
tagged_…metadata when usingid:…URLs (#8263) - [iwara] extract more metadata (#6582)
- [iwara] make
typeavailable for directories (#8245) - [reddit] provide
commentmetadata for all media files (#8228)
Options
- [bellazon] add
quotedoption (#8247) - [bellazon] implement
order-postsoption (#8248) - [kemono:discord] implement
order-postsoption (#8241) - [simpcity] implement
order-postsoption (#8248) - [vipergirls] implement
order-postsoption (#8248)
Downloaders
- [ytdl] fix errors caused by deprecated options removal
Post Processors
- [metadata] add
"mode": "print"(#2691) - [python] add
"mode": "eval" - close archive database connections (#8243)
Miscellaneous
- [util] define
__enter__&__exit__methods forNullResponseobjects (#8227) - [util] extend list of ISO 639 language codes
v1.30.7
New feature
Notable features
- Added support for extracting media from bellazon, cyberfile, and simpcity sites
- Enhanced fansly extractor: added `creator-media` endpoint, improved format selection, and fixed handling of posts with more than five files
Full changelog
Extractors
Additions
- [bellazon] add support (#7480)
- [cyberfile] add support (#5015)
- [fansly] add
creator-mediaextractor (#4401) - [simpcity] add support (#3127 #5145 #5879 #8187)
Fixes
- [aibooru] fix download URLs (#8212)
- [ao3] fix pagination (#8206)
- [boosty] fix extracting
accessTokenfrom cookies (#8203) - [comick] update
buildIdon404errors (#8157) - [facebook] fix
/photo/?fbid=…&set=…URLs being handled as a set (#8181) - [fansly] fix & improve format selection (#4401)
- [fansly] fix posts with more than 5 files (#4401)
- [imgbb] fix & update (#7936)
- [tiktok] fix
KeyError: 'author'(#8189)
Improvements
- [comick] handle redirects
- [fansly] provide fallback URL for manifest downloads (#4401)
- [fansly:creator] support custom wall IDs (#4401)
- [tungsten:user] support filtering results by tag (#8061)
- [twitter] continue searches on empty response (#8173)
- [twitter] implement various
search-…options (#8173)
Miscellaneous
- [formatter] exclude
<>\characters from!Rresults (#8180) - [formatter] support negative indices
- [util] emit debug
Proxy Maplogging message (#8195)
v1.30.6
Bug fix
Notable features
- Added video extractor for chevereto
- Added covers extractor for comick
- Added fansly support
Full changelog
Extractors
Additions
- [chevereto] add
videoextractor (#8149) - [comick] add
coversextractor - [fansly] add support (#4401)
- [instagram] add
stories-trayextractor (#6582) - [shimmie2] support
co.llection.pics(#8166) - [tungsten] add support (#8061)
- [vk] add
wall-postextractor (#474 #6378 #8159)
Fixes
- [bunkr] fix downloading albums with more than 100 files (#8150 #8155 #8175)
- [chevereto:user] fix names starting with an
a(#8149) - [common] prevent exception when using empty
user-agent(#8116) - [deviantart:search] fix extraction (#8083)
- [hentaifoundry:story] fix
src&descriptionextraction (#8163) - [imagebam] update guard page bypass cookies (#8123)
- [kemono] fix
.binarchive files not being added to archives list (#8156) - [reddit] fix
TypeaErrorwhen processing comments (#8139) - [tumblr] fix pagination when using
date-max - [twitter] prevent exceptions in
_transform_community()(#8134) - [twitter] prevent
KeyError: 'name'in_transform_user()(#8154) - [twitter] fix
KeyError: 'core'when processing communities (#8141) - [zerochan] fix
500 Internal Server Errorduring login (#8097 #8114)
Improvements
- [comick] detect broken chapters (#8054)
- [erome] handle reposts on user profiles (#6582)
- [instagram] improve video quality warning regex (#8078)
- [jpgfish] update domain to
jpg6.su - [reddit] add
api&limitoptions (#7997 #8012 #8092) - [reddit] support video embeds (#8139)
- [tumblr:tagged] support
/archive/tagged/URLs (#8160)
Metadata
- [khinsider] extract
descriptionmetadata - [tumblr:tagged] provide
search_tagsmetadata (#8160) - [vk] parse
date&descriptionmetadata (#8029) - [vk:album] extract more metadata (#8029)
Downloaders
- [ytdl] implement
_ytdl_manifest_cookies
Miscellaneous
- [formatter] add
Rconversion - extract URLs (#8125) - [options] add
-aas short option for--user-agent - [scripts/init] implement
-s/--subcategory
v1.30.5
Breaking risk
Breaking changes
- Removed [zzup] module (#4604)
- [shimmie2] removed support for `sizechangebooru.com` (#7667)
Notable features
- [twitter] added `highlights` extractor
- [twitter] added `home` extractor
- [civitai:search] added `token` option
Full changelog
Extractors
Additions
- [shimmie2] support
noz.rip/booru(#8101) - [sizebooru] add support (#7667)
- [twitter] add
highlightsextractor (#7826) - [twitter] add
homeextractor (#7974)
Fixes
- [aryion] fix pagination (#8091)
- [rule34] support using
api-key&user-id(#8077 #8088 #8098) - [tumblr:search] fix
ValueError: not enough values to unpack(#8079) - [twitter] handle
KeyError: 'result'for retweets (#8072) - [zerochan] expect
500 Internal Server Errorresponses for HTML requests (#8097)
Improvements
- [civitai:search] add
tokenoption (#8093) - [instagram] warn about lower quality video downloads (#7921 #8078)
- [instagram] remove
candidateswarning (#7921 #7989 #8071) - [oauth] improve error messages (#8086)
- [pixiv] distinguish empty from deleted profiles (#8066)
- [twitter] update API endpoint query hashes & parameters
Metadata
- [batoto] extract more metadata (#7994)
- [instagram:highlights] extract
author&owner&usermetadata (#7846) - [newgrounds] extract
slugmetadata (#8064) - [twitter] extract
communitymetadata (#7424)
Removals
- [shimmie2] remove
sizechangebooru.com(#7667) - [zzup] remove module (#4604)
Downloaders
- [ytdl] improve playlist handling (#8085)
Scripts
- implement
rmhelper script - add
-g/--gitcommand-line options - [util] add
git()&lines()helper functions
Miscellaneous
- [config] add
confargument toconfig.load()(#8084)
v1.30.4
Bug fix
Notable features
- [civitai] add `videos` extractor
- [newgrounds] fallback for images with empty `full_image_text` src
Full changelog
Extractors
Additions
- [civitai] add
videosextractor (#6644)
Fixes
- [civitai] fix posts not returning video files (#8053)
- [civitai] fix
403 Forbiddenerrors for searches - [kemono] send
Accept: text/cssheader for API requests (#8047 #8057)
Improvements
- [newgrounds] add fallback for images with empty
full_image_textsrc
Miscellaneous
- fix accessing methods through
path-metadataproxy (#6582)
v1.30.3
Mixed
Notable features
- Added extractors for booth, civitai (collection & user-collections), facebook info & albums, imgdrive image, imgtaxi image, imgwallet image, picstate image, silverpic image, tumblr following & followers, xasiat support
- Improved Instagram download warning about lower quality images and added `include` option for skeb
- Implemented common "user-agent": "@BROWSER" setting and path-convert option
Full changelog
Extractors
Additions
- [booth] add support (#7920)
- [civitai] add
collection&user-collectionsextractors (#8005) - [facebook] add
infoextractor (#6582) - [facebook] add
albumsextractor (#7848) - [imgdrive] add
imageextractor (#7976) - [imgtaxi] add
imageextractor (#8019) - [imgwallet] add
imageextractor (#8021) - [picstate] add
imageextractor (#7946) - [silverpic] add
imageextractor (#8020) - [tumblr] add
following&followersextractors (#8018) - [xasiat] add support (#4161 #5929 #7934)
Fixes
- [blogger] fix video extraction (#7892)
- [comick] handle chapters without chapter data (#7972)
- [comick] handle volume-only chapters (#8043)
- [comick] fix exception when filtering by translation group (#8045)
- [deviantart:tiptap] fix
KeyError: 'attrs'(#7929) - [everia] fix image extraction (#7973 #7977)
- [facebook] fix
avatarextraction for empty profiles (#7962) - [facebook] handle profiles without photos or
set_id(#7962) - [fappic] rewrite thumbnail URLs (#8013)
- [idolcomplex] update to new domain and interface (#7559 #8009)
- [kemono][coomer] fix extraction (#8028 #8031)
- [kemono] update
/creatorsendpoint (#8039 #8040) - [kemono] don't set error status for posts without comments (#7961)
- [pixiv] fix
IndexErrorfor unviewable works (#7940) - [pixiv] fix artworks downloads when using expired cookies (#7987)
- [scrolller] fix NSFW subreddit pagination (#7945)
- [twitter] fix potential
UnboundLocalErrorwhenvideosare disabled (#7932) - [vsco] disable TLS 1.2 cipher suites by default (#7984 #7986)
- [wikimedia:wiki] fix
AttributeError: 'subcategories'(#7931)
Improvements
- [aibooru] support
general.aibooru.online&aibooru.download - [comick] add
langoption (#7938) - [hentaifoundry] add
descriptionsoption (#7952) - [facebook] raise
AuthRequiredfor profiles requiring cookies (#7962) - [instagram] warn about lower quality image downloads (#7921)
- [kemono] support
"endpoint": "posts+"for full metadata (#8028) - [misskey] support
misskey.art(#7923) - [motherless] detect
404/File not foundpages - [pixiv] detect suspended/deleted accounts (#7990)
- [pixiv] improve API error messages
- [pixiv] remove redundant cookies initialization code
- [scrolller] limit
titlelength in default filenames - [skeb] implement
includeoption (#6558 #7267) - [vk] update default
archive_fmt(#8030)
Metadata
- [cien] provide
author[id]metadata (#6582) - [dankefuerslesen] extract more metadata (#7915)
- [dankefuerslesen:manga] fix metadata being overwritten
- [facebook] ensure numeric
user_idvalues (#7953) - [facebook:set] fix/improve
user_idextraction (#7848) - [fappic] fix
filenamevalues
Common
- [common] implement
"user-agent": "@BROWSER"(#7947) - [common] improve error message for non-Netscape cookie files (#8014)
Downloaders
- [ytdl] don't overwrite existing
filenamedata (#7964)
Miscellaneous
- [docs/configuration] improve
client-id&api-keyinstructions - [docs/formatting] update and improve
- [job] apply
extension-maptoSimulationJobresults (#7954) - [job] improve URL
schemeextraction performance - [job] split collected DataJob results
- [path] implement
path-convertoption (#493 #6582) - [scripts] improve and extend
init,generate_test_result, andpyprint - extend
-A/--abort&"skip": "abort"functionality (#7891) - use more f-strings (#7671)
v1.30.2
Bug fix
Notable features
- Added `posts` and `bookmarks` extractors for itaku (#7707)
- Supported new domains kemono.cr, coomer.st in respective extractors
Full changelog
Extractors
Additions
- [itaku] add
posts&bookmarksextractors (#7707)
Fixes
- [kemono] support new
kemono.crdomain (#7902 #7909 #7911 #7913 #7904) - [coomer] support new
coomer.stdomain (#7907 #7909 #7911 #7904)
Post Processors
- [exec] use
Falseasstart_new_sessiondefault to avoid aTypeError(#7899)
Miscellaneous
- [tests/postprocessor] fix
TypeErrorwhen logging an error (#6582)
v1.30.1
Breaking risk
Breaking changes
- Snap base migrated from core20 to core22 (#7841)
- YouTube downloader switched from youtube-dl to yt-dlp (#7865)
Notable features
- Added Jinja template support in Formatter
- Added `--sleep-429` command‑line option for rate‑limit handling
Full changelog
Extractors
Additions
- [civitai] add
generatedextractor (#7796) - [facebook] add
avatarextractor (#7848) - [imgadult] add
imageextractor (#7893) - [itaku] add
following&followersextractors (#7707) - [leakgallery] add support (#7872)
- [madokami] add
mangaextractor (#7828)
Changes
- [civitai] change default
userincludes to["user-images", "user-videos"](#7874)
Fixes
- [behance] fix
403 Forbiddenerrors by using"browser": "firefox"(#7803 #7877) - [civitai] fix
AttributeErrorwhen a file's post was deleted (#7860) - [pornhub] fix
galleryextractor (#7842) - [readcomiconline] force
One pagereading mode (#7890) - [sexcom] update
searchextractor (#7807) - [urlgalleries] fix extraction (#7858)
- [wikimedia] add missing
selfargument when callingprepare()(#7835)
Improvements
- [4chan] detect files containing only null bytes (#7883)
- [azurelanewiki] prevent Anubis challenge
- [bilibili] warn about blocked articles (#7880)
- [civitai] fix
extensionfor videos withoutnameandmimeType - [common] detect Cloudflare & DDoS-Guard challenge pages in
request_json()&request_xml()(#7833) - [facebook] add retries to profile page requests (#7725 #7834 #7852)
- [facebook] implement
includeoption (#7848) - [itaku] implement
includeoption (#7707) - [patreon] implement
cursorsupport (#7856) - [patreon] support
date-maxfor/homeURLs (#7856) - [pixiv] improve AJAX error messages (#7896)
Metadata
- [behance] provide
creator[name]metadata (#7885) - [civitai] ensure
file&postdata has adatevalue (#7548) - [inkbunny] enable
poolmetadata (#7850) - [nhentai] provide
gallery_idfor pagination results (#7868)
Downloaders
- [ytdl] add
deprecationsoption
Post Processors
- [exec] add
sessionoption (#6582)
Snap
- migrate base to
core22(#7841) - switch to
yt-dlp(#7865) - fix deprecated
CRAFT_ARCH_TRIPLETusage (#7866)
Formatter
- add
Jinjatemplate support (#1390) - add
Wconversion - sanitize whitespace (#6582)
Miscellaneous
- [actions] fix
parse_loggingimport (#7837) - [options] add
--sleep-429command-line option (#7871) - [scripts] ensure files use
utf-8encoding and\nnewlines (#7872) - [tests/extractor] improve example URL mismatch error message (#7872)
- [tests/results] fix
#logchecks for URLs raising exceptions - fix exit status for requests'
JSONDecodeError(#4380) - use walrus operators
:=inifstatements (#7671)
v1.30.0
Breaking risk
Breaking changes
- Minimum supported Python version increased to 3.8
Full changelog
Changes
- raise minimum supported Python version to 3.8 (#7671)
- update extractor names (#7746 #7612)
- | Old | New |
|------------------------|------------------------|
|kemonoparty|kemono|
|coomerparty|coomer|
|koharu|schalenetwork|
|naver|naver-blog|
|chzzk|naver-chzzk|
|naverwebtoon|naver-webtoon|
|pixiv:novel|pixiv-novel:novel|
|pixiv:novel-user|pixiv-novel:user|
|pixiv:novel-series|pixiv-novel:series|
|pixiv:novel-bookmark|pixiv-novel:bookmark| - config settings will automatically use the old values
- target directories using
{category}will use the new category names by default - use
--compator"category-map": "compat"to restore oldcategorynames
- | Old | New |
- include exit status bitmasks of
NotFoundError(8) andNoExtractorError(64)
into generalHttpError(4) andInputError(32) respectively
Extractors
Additions
- [civitai] add
search-imagesandpostsextractors (#7609) - [comick] add support (#1825 #6782)
- [dankefuerslesen] add support (#7669)
- [dynastyscans] add
anthologyextractor (#7627) - [girlsreleased] add support (#6200)
- [girlswithmuscle] add support (#4493 #6016)
- [iwara] add support (#2652 #5840 #7785)
- [kemono] add
artistsextractor (#7582) - [misskey] add
avatar,background, andinfoextractors (#5347) - [motherless] add
groupextractor (#7774 #7787) - [naver-chzzk] add
commentandcommunityextractors (#7735 #7741) - [nudostar] add support (#5735 #6556)
- [rawkuma] add support (#4571)
- [redbust] add support (#6759 #6918 #7043)
Fixes
- [4archive] fix
threadextractor - [arcalive] fix download URLs (#7678)
- [arcalive] replace
ac-p.namusubdomains withac-o.namu(#7556) - [archivedmoe] fix redirection issue (#7652 #7653 #7664)
- [aryion] fix
favoriteextractor (#7775) - [batoto] fix downloading manga with alerts/notices (#7657)
- [behance] fix
403 Forbiddenerrors (#7710) - [bunkr] fix file downloads (#7747)
- [civitai] fix & update
searchextractor (#7609) - [danbooru] fix Ugoira conversions for posts without
ZIP:ZipFileName(#7630) - [deviantart:tag] fix
username(#7587) - [deviantart:tiptap] fix
TypeErrorwhentextAlignis null (#7639) - [directlink] fix config lookups by subcategory (#6582)
- [discord] support forwarded messages & handle missing threads (#7706 #7722)
- [furaffinity] fix
submissionsresults (#7759) - [hitomi] fix negative tag searches (#7694)
- [kemono] fix tagged creator posts
- [mangadex:list] fix config lookups for
list-feedsubcategory - [nijie] fix file extraction (#7624)
- [paheal] fix
404 Not Founderror for tags with URL encoded characters (#7642) - [patreon] send
Refererheader when downloading.m3u8videos (#7571) - [patreon] fix
campaign_idextraction from Next.js 13 creator pages (#7773) - [readcomiconline] fix extraction (#7606 #7789)
- [reddit] fix archive IDs of fallback files (#7760)
- [rule34] fix file downloads (#7697)
- [sankaku] fix extracting extended tag categories (#7744)
- [sexcom] prevent
.cssfile downloads (#7632) - [skeb] fix
KeyError - 'frame_rate'(#7798) - [tiktok] handle exceptions when extracting avatars (#7682)
- [vsco] fix JSON returned by VSCO (#7821)
- [warosu] HTML attribute fix (#7676 #7677 #7777)
Improvements
- [artstation] support downloading
.mviewfiles (#7812) - [civitai] support "My Reactions" results for videos (#7608)
- [e621] support
e621.cc/postsURLs (#6809) - [erome] restructure extractor hierarchy (#7804)
- [everia] prevent redirect when fetching post pages
- [exhentai] ensure file signature bytes aren`t all zero (#4902)
- [exhentai] implement
"source": "metadata"(#4902) - [fanbox] return
fileMapfiles in order (#2718) - [gelbooru] improve error message for
401 Unauthorizedresponses (#7674) - [imagevenue] detect
404image files (#7570) - [instagram] provide more descriptive URLs for
video_dash_manifestvideos (#7631) - [pinterest] support
pin.itredirects to board (#7805) - [pinterest] match board URLs with query strings (#7805)
- [rule34us] prioritize
video.rule34.usfor video downloads (#6582) - [rule34xyz] implement login with username & password (#7736)
- [sankaku] allow passing cookies (#7333)
- [sexcom] support
/pics/URLs (#7611) - [tiktok] detect
loginpage redirects (#7716) - [vk] detect
challengepage redirects (#7650) - [vk] prevent
404 Not Founderrors for file downloads - [vk] add continuation message (#7650)
- [warosu] detect missing images by checking hostname (#7698 #7699)
- [ytdl] set domain as subcategory when using
Genericextractor (#6582)
Metadata
- [civitai] always provide
file[…]metadata (#7548) - [everia] improve
filenameby unquoting URLs (#7620) - [fanbox] extract
archivesmetadata (#7454) - [gelbooru_v02] extract
total/search_countmetadata (#7689) - [instagram] provide
post_urlfor stories and highlights (#7810) - [kemono:discord] update server & channel metadata (#7569)
- [mangaread] fix
manga_altmetadata - [newgrounds] filter
<script>content intags(#7604) - [patreon] return metadata for paywalled posts (#6582)
- [pinterest] remove excess whitespace from
descriptionfields (#4335) - [pixiv] remove
/jump.phpfromcaptionlinks (#4327) - [tenor] extract more metadata
- [twitter] extract
source_idandsource_usermetadata (#7470 #7640) - [twitter] extract
sensitive_flagsmetadata (#2523) - [vk] fix
usermetadata extraction
Options
- [civitai] add option to retrieve
postmetadata (#7548) - [exhentai] add
limits-actionoption (#6504) - [fanbox] add
fee-maxoption (#7726) - [kemono] extend
duplicatesoption (#7696) - [mangadex] allow
ratingsto be a (comma-separated) string (#7799) - [misskey] add
includeoption (#5347) - [sankaku] remove
id-formatoption (#5073 #6808) - [webtoons] add
bannersandthumbnailsoptions (#6468 #7441)
Common
- update
browserUser-Agents and headers - allow using predefined Firefox/Chrome
headers&ciphers - allow overriding
user-agentwhenbrowseris used (#7647) - support using system certificates via
truststore(#6582) - fix URLs not getting written to
-e/--error-file(#7758) - raise ChallengeError for Cloudflare & DDoS-Guard challenge pages (#1945)
- prevent exceptions for for non-fatal requests (#7598)
- simplify
userextractors by usingDispatchmixin - allow
GalleryExtractorinstances to return additional asset files
Removals
- [mangasee] remove module
Downloaders
- support dynamic download
ratelimits (#7638) - [http] fail downloads with HTML content (#4798 #7697)
- [http] add MIME type and signature check for
.htmlfiles - [http] fix potential
FileExistsErrorwhen.partfile moved (#5385) - [http] implement
_http_signaturechecks (#4902) - [ytdl] fix
KeyError - 'filepath'when using legacyyoutube_dl(#6949 #7752 #7824) - [ytdl] fix postprocessing/merge errors (#7581)
- [ytdl] detect
yt-dlpindependent of module name (#7599) - [ytdl] support custom headers when fetching HLS/DASH manifests
Post Processors
- implement shortcuts for
modeandeventoptions (e.g.metadata/jsonl@post) - [exec] implement
commandsoption
Options
- add
category-mapandconfig-map(#7612) - add
signals-actions(#1861 #6582) - add
--compatcommand-line option - add
--Printcommand-line option - swap
--printand--Printsemantics
Cookies
- add native support for LibreWolf profiles (#4101 #7625)
- improve cookie-related logging messages
- update expired cookie messages (#7644)
Formatter
- add
Dconversion - ISO 8601 string todatetime - add
Lconversion - ISO 639-1 code to language name - change old
L/length conversion ton - implement
Mformat specifier
Optimizations
- replace
%-formatted and.format(…)strings withf-strings(#7671) - improve regular expression usage
- replace
match.group(N)withmatch[N](#7671) - update
match.lastindexusage - remove pre-3.8 workarounds (#7671)
- remove
@staticmethoddecorators - add
request_json()andrequest_xml()functions - slightly improve performance of
extractfunctions - slightly improve
filterperformance
Miscellaneous
- [actions] add
flagandraiseactions - [job] refactor parent-child config path building (#7527)
- [job:data] wrap exceptions in a dict (#7723)
- [path] support character sequences in
path-restrictreplacements (#1707) - [pyinstaller] exclude
pkg_resourcesmodule (#7592) - [scripts/init] add scripts to generate initial extractor code and test results
- [scripts/options] make output width independent of terminal size
- fix Last-Modified mtime overwriting post processor mtime (#7529)
- use
pipformake install(#7628)