summaryrefslogtreecommitdiffstats
path: root/data
diff options
context:
space:
mode:
Diffstat (limited to 'data')
-rw-r--r--data/completion/_gallery-dl12
-rw-r--r--data/completion/gallery-dl4
-rw-r--r--data/completion/gallery-dl.fish12
-rw-r--r--data/man/gallery-dl.124
-rw-r--r--data/man/gallery-dl.conf.5313
5 files changed, 324 insertions, 41 deletions
diff --git a/data/completion/_gallery-dl b/data/completion/_gallery-dl
index 06e8556..a82db8a 100644
--- a/data/completion/_gallery-dl
+++ b/data/completion/_gallery-dl
@@ -8,9 +8,10 @@ _arguments -C -S \
{-h,--help}'[Print this help message and exit]' \
--version'[Print program version and exit]' \
{-i,--input-file}'[Download URLs found in FILE ("-" for stdin). More than one --input-file can be specified]':'<file>':_files \
+{-f,--filename}'[Filename format string for downloaded files ("/O" for "original" filenames)]':'<format>' \
{-d,--destination}'[Target location for file downloads]':'<path>' \
{-D,--directory}'[Exact location for file downloads]':'<path>' \
-{-f,--filename}'[Filename format string for downloaded files ("/O" for "original" filenames)]':'<format>' \
+{-X,--extractors}'[Load external extractors from PATH]':'<path>' \
--proxy'[Use the specified proxy]':'<url>' \
--source-address'[Client-side IP address to bind to]':'<ip>' \
--user-agent'[User-Agent request header]':'<ua>' \
@@ -45,10 +46,13 @@ _arguments -C -S \
--no-download'[Do not download any files]' \
--no-postprocessors'[Do not run any post processors]' \
--no-check-certificate'[Disable HTTPS certificate validation]' \
+{-o,--option}'[Additional options. Example: -o browser=firefox]':'<key=value>' \
{-c,--config}'[Additional configuration files]':'<file>':_files \
---config-yaml'[==SUPPRESS==]':'<file>':_files \
-{-o,--option}'[Additional "<key>=<value>" option values]':'<opt>' \
---ignore-config'[Do not read default configuration files]' \
+--config-yaml'[Additional configuration files in YAML format]':'<file>':_files \
+--config-toml'[Additional configuration files in TOML format]':'<file>':_files \
+--config-create'[Create a basic configuration file]' \
+--config-ignore'[Do not read default configuration files]' \
+--ignore-config'[==SUPPRESS==]' \
{-u,--username}'[Username to login with]':'<user>' \
{-p,--password}'[Password belonging to the given username]':'<pass>' \
--netrc'[Enable .netrc authentication data]' \
diff --git a/data/completion/gallery-dl b/data/completion/gallery-dl
index 203c87d..1750af8 100644
--- a/data/completion/gallery-dl
+++ b/data/completion/gallery-dl
@@ -5,12 +5,12 @@ _gallery_dl()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
- if [[ "${prev}" =~ ^(-i|--input-file|--cookies|--write-log|--write-unsupported|-c|--config|--config-yaml|--download-archive)$ ]]; then
+ if [[ "${prev}" =~ ^(-i|--input-file|--cookies|--write-log|--write-unsupported|-c|--config|--config-yaml|--config-toml|--download-archive)$ ]]; then
COMPREPLY=( $(compgen -f -- "${cur}") )
elif [[ "${prev}" =~ ^()$ ]]; then
COMPREPLY=( $(compgen -d -- "${cur}") )
else
- COMPREPLY=( $(compgen -W "--help --version --input-file --destination --directory --filename --proxy --source-address --user-agent --clear-cache --cookies --cookies-from-browser --quiet --verbose --get-urls --resolve-urls --dump-json --simulate --extractor-info --list-keywords --list-modules --list-extractors --write-log --write-unsupported --write-pages --limit-rate --retries --http-timeout --sleep --sleep-request --sleep-extractor --filesize-min --filesize-max --chunk-size --no-part --no-skip --no-mtime --no-download --no-postprocessors --no-check-certificate --config --config-yaml --option --ignore-config --username --password --netrc --download-archive --abort --terminate --range --chapter-range --filter --chapter-filter --zip --ugoira-conv --ugoira-conv-lossless --ugoira-conv-copy --write-metadata --write-info-json --write-infojson --write-tags --mtime-from-date --exec --exec-after --postprocessor --postprocessor-option" -- "${cur}") )
+ COMPREPLY=( $(compgen -W "--help --version --input-file --filename --destination --directory --extractors --proxy --source-address --user-agent --clear-cache --cookies --cookies-from-browser --quiet --verbose --get-urls --resolve-urls --dump-json --simulate --extractor-info --list-keywords --list-modules --list-extractors --write-log --write-unsupported --write-pages --limit-rate --retries --http-timeout --sleep --sleep-request --sleep-extractor --filesize-min --filesize-max --chunk-size --no-part --no-skip --no-mtime --no-download --no-postprocessors --no-check-certificate --option --config --config-yaml --config-toml --config-create --config-ignore --ignore-config --username --password --netrc --download-archive --abort --terminate --range --chapter-range --filter --chapter-filter --zip --ugoira-conv --ugoira-conv-lossless --ugoira-conv-copy --write-metadata --write-info-json --write-infojson --write-tags --mtime-from-date --exec --exec-after --postprocessor --postprocessor-option" -- "${cur}") )
fi
}
diff --git a/data/completion/gallery-dl.fish b/data/completion/gallery-dl.fish
index e2a7e6d..d764543 100644
--- a/data/completion/gallery-dl.fish
+++ b/data/completion/gallery-dl.fish
@@ -2,9 +2,10 @@ complete -c gallery-dl -x
complete -c gallery-dl -s 'h' -l 'help' -d 'Print this help message and exit'
complete -c gallery-dl -l 'version' -d 'Print program version and exit'
complete -c gallery-dl -r -F -s 'i' -l 'input-file' -d 'Download URLs found in FILE ("-" for stdin). More than one --input-file can be specified'
+complete -c gallery-dl -x -s 'f' -l 'filename' -d 'Filename format string for downloaded files ("/O" for "original" filenames)'
complete -c gallery-dl -x -a '(__fish_complete_directories)' -s 'd' -l 'destination' -d 'Target location for file downloads'
complete -c gallery-dl -x -a '(__fish_complete_directories)' -s 'D' -l 'directory' -d 'Exact location for file downloads'
-complete -c gallery-dl -x -s 'f' -l 'filename' -d 'Filename format string for downloaded files ("/O" for "original" filenames)'
+complete -c gallery-dl -x -a '(__fish_complete_directories)' -s 'X' -l 'extractors' -d 'Load external extractors from PATH'
complete -c gallery-dl -x -l 'proxy' -d 'Use the specified proxy'
complete -c gallery-dl -x -l 'source-address' -d 'Client-side IP address to bind to'
complete -c gallery-dl -x -l 'user-agent' -d 'User-Agent request header'
@@ -39,10 +40,13 @@ complete -c gallery-dl -l 'no-mtime' -d 'Do not set file modification times acco
complete -c gallery-dl -l 'no-download' -d 'Do not download any files'
complete -c gallery-dl -l 'no-postprocessors' -d 'Do not run any post processors'
complete -c gallery-dl -l 'no-check-certificate' -d 'Disable HTTPS certificate validation'
+complete -c gallery-dl -x -s 'o' -l 'option' -d 'Additional options. Example: -o browser=firefox'
complete -c gallery-dl -r -F -s 'c' -l 'config' -d 'Additional configuration files'
-complete -c gallery-dl -r -F -l 'config-yaml' -d '==SUPPRESS=='
-complete -c gallery-dl -x -s 'o' -l 'option' -d 'Additional "<key>=<value>" option values'
-complete -c gallery-dl -l 'ignore-config' -d 'Do not read default configuration files'
+complete -c gallery-dl -r -F -l 'config-yaml' -d 'Additional configuration files in YAML format'
+complete -c gallery-dl -r -F -l 'config-toml' -d 'Additional configuration files in TOML format'
+complete -c gallery-dl -l 'config-create' -d 'Create a basic configuration file'
+complete -c gallery-dl -l 'config-ignore' -d 'Do not read default configuration files'
+complete -c gallery-dl -l 'ignore-config' -d '==SUPPRESS=='
complete -c gallery-dl -x -s 'u' -l 'username' -d 'Username to login with'
complete -c gallery-dl -x -s 'p' -l 'password' -d 'Password belonging to the given username'
complete -c gallery-dl -l 'netrc' -d 'Enable .netrc authentication data'
diff --git a/data/man/gallery-dl.1 b/data/man/gallery-dl.1
index 024ddb3..27d3a09 100644
--- a/data/man/gallery-dl.1
+++ b/data/man/gallery-dl.1
@@ -1,4 +1,4 @@
-.TH "GALLERY-DL" "1" "2023-01-28" "1.24.5" "gallery-dl Manual"
+.TH "GALLERY-DL" "1" "2023-03-11" "1.25.0" "gallery-dl Manual"
.\" disable hyphenation
.nh
@@ -26,14 +26,17 @@ Print program version and exit
.B "\-i, \-\-input\-file" \f[I]FILE\f[]
Download URLs found in FILE ('-' for stdin). More than one --input-file can be specified
.TP
+.B "\-f, \-\-filename" \f[I]FORMAT\f[]
+Filename format string for downloaded files ('/O' for "original" filenames)
+.TP
.B "\-d, \-\-destination" \f[I]PATH\f[]
Target location for file downloads
.TP
.B "\-D, \-\-directory" \f[I]PATH\f[]
Exact location for file downloads
.TP
-.B "\-f, \-\-filename" \f[I]FORMAT\f[]
-Filename format string for downloaded files ('/O' for "original" filenames)
+.B "\-X, \-\-extractors" \f[I]PATH\f[]
+Load external extractors from PATH
.TP
.B "\-\-proxy" \f[I]URL\f[]
Use the specified proxy
@@ -137,13 +140,22 @@ Do not run any post processors
.B "\-\-no\-check\-certificate"
Disable HTTPS certificate validation
.TP
+.B "\-o, \-\-option" \f[I]KEY=VALUE\f[]
+Additional options. Example: -o browser=firefox
+.TP
.B "\-c, \-\-config" \f[I]FILE\f[]
Additional configuration files
.TP
-.B "\-o, \-\-option" \f[I]OPT\f[]
-Additional '<key>=<value>' option values
+.B "\-\-config\-yaml" \f[I]FILE\f[]
+Additional configuration files in YAML format
+.TP
+.B "\-\-config\-toml" \f[I]FILE\f[]
+Additional configuration files in TOML format
+.TP
+.B "\-\-config\-create"
+Create a basic configuration file
.TP
-.B "\-\-ignore\-config"
+.B "\-\-config\-ignore"
Do not read default configuration files
.TP
.B "\-u, \-\-username" \f[I]USER\f[]
diff --git a/data/man/gallery-dl.conf.5 b/data/man/gallery-dl.conf.5
index 6b11835..a0fd629 100644
--- a/data/man/gallery-dl.conf.5
+++ b/data/man/gallery-dl.conf.5
@@ -1,4 +1,4 @@
-.TH "GALLERY-DL.CONF" "5" "2023-01-28" "1.24.5" "gallery-dl Manual"
+.TH "GALLERY-DL.CONF" "5" "2023-03-11" "1.25.0" "gallery-dl Manual"
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
@@ -456,6 +456,8 @@ and optional for
.br
* \f[I]e621\f[] (*)
.br
+* \f[I]e926\f[] (*)
+.br
* \f[I]exhentai\f[]
.br
* \f[I]idolcomplex\f[]
@@ -897,6 +899,20 @@ An alternative \f[I]format string\f[] to build archive IDs with.
Prefix for archive IDs.
+.SS extractor.*.archive-pragma
+.IP "Type:" 6
+\f[I]list\f[] of \f[I]strings\f[]
+
+.IP "Example:" 4
+["journal_mode=WAL", "synchronous=NORMAL"]
+
+.IP "Description:" 4
+A list of SQLite \f[I]PRAGMA\f[] statements to run during archive initialization.
+
+See \f[I]<https://www.sqlite.org/pragma.html>\f[]
+for available \f[I]PRAGMA\f[] statements and further details.
+
+
.SS extractor.*.postprocessors
.IP "Type:" 6
\f[I]list\f[] of \f[I]Postprocessor Configuration\f[] objects
@@ -1288,7 +1304,23 @@ For unavailable or restricted posts,
follow the \f[I]source\f[] and download from there if possible.
-.SS extractor.danbooru.metadata
+.SS extractor.danbooru.ugoira
+.IP "Type:" 6
+\f[I]bool\f[]
+
+.IP "Default:" 9
+\f[I]false\f[]
+
+.IP "Description:" 4
+Controls the download target for Ugoira posts.
+
+.br
+* \f[I]true\f[]: Original ZIP archives
+.br
+* \f[I]false\f[]: Converted video files
+
+
+.SS extractor.[Danbooru].metadata
.IP "Type:" 6
.br
* \f[I]bool\f[]
@@ -1317,7 +1349,7 @@ for possible field names. \f[I]aibooru\f[] also supports \f[I]ai_metadata\f[].
Note: This requires 1 additional HTTP request per post.
-.SS extractor.danbooru.threshold
+.SS extractor.{Danbooru].threshold
.IP "Type:" 6
.br
* \f[I]string\f[]
@@ -1330,30 +1362,13 @@ Note: This requires 1 additional HTTP request per post.
.IP "Description:" 4
Stop paginating over API results if the length of a batch of returned
posts is less than the specified number. Defaults to the per-page limit
-of the current instance, which is 320 for \f[I]e621\f[] and 200 for
-everything else.
+of the current instance, which is 200.
Note: Changing this setting is normally not necessary. When the value is
greater than the per-page limit, gallery-dl will stop after the first
batch. The value cannot be less than 1.
-.SS extractor.danbooru.ugoira
-.IP "Type:" 6
-\f[I]bool\f[]
-
-.IP "Default:" 9
-\f[I]false\f[]
-
-.IP "Description:" 4
-Controls the download target for Ugoira posts.
-
-.br
-* \f[I]true\f[]: Original ZIP archives
-.br
-* \f[I]false\f[]: Converted video files
-
-
.SS extractor.derpibooru.api-key
.IP "Type:" 6
\f[I]string\f[]
@@ -1617,6 +1632,50 @@ or whenever your \f[I]cache file\f[] is deleted or cleared.
Minimum wait time in seconds before API requests.
+.SS extractor.[E621].metadata
+.IP "Type:" 6
+.br
+* \f[I]bool\f[]
+.br
+* \f[I]string\f[]
+.br
+* \f[I]list\f[] of \f[I]strings\f[]
+
+.IP "Default:" 9
+\f[I]false\f[]
+
+.IP "Example:" 4
+.br
+* notes,pools
+.br
+* ["notes", "pools"
+
+.IP "Description:" 4
+Extract additional metadata (notes, pool metadata) if available.
+
+Note: This requires 0-2 additional HTTP requests per post.
+
+
+.SS extractor.[E621].threshold
+.IP "Type:" 6
+.br
+* \f[I]string\f[]
+.br
+* \f[I]integer\f[]
+
+.IP "Default:" 9
+\f[I]"auto"\f[]
+
+.IP "Description:" 4
+Stop paginating over API results if the length of a batch of returned
+posts is less than the specified number. Defaults to the per-page limit
+of the current instance, which is 320.
+
+Note: Changing this setting is normally not necessary. When the value is
+greater than the per-page limit, gallery-dl will stop after the first
+batch. The value cannot be less than 1.
+
+
.SS extractor.exhentai.domain
.IP "Type:" 6
\f[I]string\f[]
@@ -2302,6 +2361,28 @@ Fetch media from replies to other posts.
Also emit metadata for text-only posts without media content.
+.SS extractor.[misskey].renotes
+.IP "Type:" 6
+\f[I]bool\f[]
+
+.IP "Default:" 9
+\f[I]false\f[]
+
+.IP "Description:" 4
+Fetch media from renoted notes.
+
+
+.SS extractor.[misskey].replies
+.IP "Type:" 6
+\f[I]bool\f[]
+
+.IP "Default:" 9
+\f[I]true\f[]
+
+.IP "Description:" 4
+Fetch media from replies to other notes.
+
+
.SS extractor.nana.favkey
.IP "Type:" 6
\f[I]string\f[]
@@ -2884,8 +2965,16 @@ HLS and DASH manifests
* \f[I]"ytdl"\f[]: Download videos and let \f[I]youtube-dl\f[] handle all of
video extraction and download
.br
+* \f[I]"dash"\f[]: Extract DASH manifest URLs and use \f[I]youtube-dl\f[]
+to download and merge them. (*)
+.br
* \f[I]false\f[]: Ignore videos
+(*)
+This saves 1 HTTP request per video
+and might potentially be able to download otherwise deleted videos,
+but it will not always get the best video quality available.
+
.SS extractor.redgifs.format
.IP "Type:" 6
@@ -3003,6 +3092,17 @@ Filters used during searches.
Download video files.
+.SS extractor.[szurubooru].username & .token
+.IP "Type:" 6
+\f[I]string\f[]
+
+.IP "Description:" 4
+Username and login token of your account to access private resources.
+
+To generate a token, visit \f[I]/user/USERNAME/list-tokens\f[]
+and click \f[I]Create Token\f[].
+
+
.SS extractor.tumblr.avatar
.IP "Type:" 6
\f[I]bool\f[]
@@ -3282,6 +3382,17 @@ Age-restricted replies cannot be expanded when using the
\f[I]syndication\f[] API.
+.SS extractor.twitter.transform
+.IP "Type:" 6
+\f[I]bool\f[]
+
+.IP "Default:" 9
+\f[I]true\f[]
+
+.IP "Description:" 4
+Transform Tweet and User metadata into a simpler, uniform format.
+
+
.SS extractor.twitter.size
.IP "Type:" 6
\f[I]list\f[] of \f[I]strings\f[]
@@ -4316,6 +4427,50 @@ For these format strings
* \f[I]{3}\f[] is percent of bytes downloaded to total bytes
+.SS output.stdout & .stdin & .stderr
+.IP "Type:" 6
+.br
+* \f[I]string\f[]
+.br
+* \f[I]object\f[]
+
+.IP "Example:" 4
+.. code:: json
+
+"utf-8"
+
+.. code:: json
+
+{
+"encoding": "utf-8",
+"errors": "replace",
+"line_buffering": true
+}
+
+
+.IP "Description:" 4
+\f[I]Reconfigure\f[]
+a \f[I]standard stream\f[].
+
+Possible options are
+
+.br
+* \f[I]encoding\f[]
+.br
+* \f[I]errors\f[]
+.br
+* \f[I]newline\f[]
+.br
+* \f[I]line_buffering\f[]
+.br
+* \f[I]write_through\f[]
+
+When this option is specified as a simple \f[I]string\f[],
+it is interpreted as \f[I]{"encoding": "<string-value>", "errors": "replace"}\f[]
+
+Note: \f[I]errors\f[] always defaults to \f[I]"replace"\f[]
+
+
.SS output.shorten
.IP "Type:" 6
\f[I]bool\f[]
@@ -4547,6 +4702,21 @@ after \f[I]N\f[] consecutive files compared as equal.
Only compare file sizes. Do not read and compare their content.
+.SS exec.archive
+.IP "Type:" 6
+\f[I]Path\f[]
+
+.IP "Description:" 4
+File to store IDs of executed commands in,
+similar to \f[I]extractor.*.archive\f[].
+
+\f[I]archive-format\f[], \f[I]archive-prefix\f[], and \f[I]archive-pragma\f[] options,
+akin to
+\f[I]extractor.*.archive-format\f[],
+\f[I]extractor.*.archive-prefix\f[], and
+\f[I]extractor.*.archive-pragma\f[], are supported as well.
+
+
.SS exec.async
.IP "Type:" 6
\f[I]bool\f[]
@@ -4775,6 +4945,21 @@ Custom format string to build the content of metadata files with.
Note: Only applies for \f[I]"mode": "custom"\f[].
+.SS metadata.ascii
+.IP "Type:" 6
+\f[I]bool\f[]
+
+.IP "Default:" 9
+\f[I]false\f[]
+
+.IP "Description:" 4
+Escape all non-ASCII characters.
+
+See the \f[I]ensure_ascii\f[] argument of \f[I]json.dump()\f[] for further details.
+
+Note: Only applies for \f[I]"mode": "json"\f[] and \f[I]"jsonl"\f[].
+
+
.SS metadata.indent
.IP "Type:" 6
.br
@@ -4793,6 +4978,37 @@ See the \f[I]indent\f[] argument of \f[I]json.dump()\f[] for further details.
Note: Only applies for \f[I]"mode": "json"\f[].
+.SS metadata.separators
+.IP "Type:" 6
+\f[I]list\f[] with two \f[I]string\f[] elements
+
+.IP "Default:" 9
+\f[I][", ", ": "]\f[]
+
+.IP "Description:" 4
+\f[I]<item separator>\f[] - \f[I]<key separator>\f[] pair
+to separate JSON keys and values with.
+
+See the \f[I]separators\f[] argument of \f[I]json.dump()\f[] for further details.
+
+Note: Only applies for \f[I]"mode": "json"\f[] and \f[I]"jsonl"\f[].
+
+
+.SS metadata.sort
+.IP "Type:" 6
+\f[I]bool\f[]
+
+.IP "Default:" 9
+\f[I]false\f[]
+
+.IP "Description:" 4
+Sort output by key.
+
+See the \f[I]sort_keys\f[] argument of \f[I]json.dump()\f[] for further details.
+
+Note: Only applies for \f[I]"mode": "json"\f[] and \f[I]"jsonl"\f[].
+
+
.SS metadata.open
.IP "Type:" 6
\f[I]string\f[]
@@ -4843,9 +5059,11 @@ i.e. fields whose name starts with an underscore.
File to store IDs of generated metadata files in,
similar to \f[I]extractor.*.archive\f[].
-\f[I]archive-format\f[] and \f[I]archive-prefix\f[] options,
-akin to \f[I]extractor.*.archive-format\f[] and \f[I]extractor.*.archive-prefix\f[],
-are supported as well.
+\f[I]archive-format\f[], \f[I]archive-prefix\f[], and \f[I]archive-pragma\f[] options,
+akin to
+\f[I]extractor.*.archive-format\f[],
+\f[I]extractor.*.archive-prefix\f[], and
+\f[I]extractor.*.archive-pragma\f[], are supported as well.
.SS metadata.mtime
@@ -5152,10 +5370,55 @@ The \f[I]modules\f[] list in
["reddit", "danbooru", "mangadex"]
.IP "Description:" 4
-The list of modules to load when searching for a suitable
+List of internal modules to load when searching for a suitable
extractor class. Useful to reduce startup time and memory usage.
+.SS extractor.module-sources
+.IP "Type:" 6
+\f[I]list\f[] of \f[I]Path\f[] instances
+
+.IP "Example:" 4
+["~/.config/gallery-dl/modules", null]
+
+.IP "Description:" 4
+List of directories to load external extractor modules from.
+
+Any file in a specified directory with a \f[I].py\f[] filename extension
+gets \f[I]imported\f[]
+and searched for potential extractors,
+i.e. classes with a \f[I]pattern\f[] attribute.
+
+Note: \f[I]null\f[] references internal extractors defined in
+\f[I]extractor/__init__.py\f[]
+or by \f[I]extractor.modules\f[].
+
+
+.SS globals
+.IP "Type:" 6
+.br
+* \f[I]Path\f[]
+.br
+* \f[I]string\f[]
+
+.IP "Example:" 4
+.br
+* "~/.local/share/gdl-globals.py"
+.br
+* "gdl-globals"
+
+.IP "Default:" 9
+The \f[I]GLOBALS\f[] dict in
+\f[I]util.py\f[]
+
+.IP "Description:" 4
+Path to or name of an
+\f[I]importable\f[]
+Python module whose namespace gets used as an alternative
+\f[I]globals parameter\f[]
+for compiled Python expressions.
+
+
.SS cache.file
.IP "Type:" 6
\f[I]Path\f[]