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