diff options
Diffstat (limited to 'data/man/gallery-dl.conf.5')
| -rw-r--r-- | data/man/gallery-dl.conf.5 | 2089 |
1 files changed, 1228 insertions, 861 deletions
diff --git a/data/man/gallery-dl.conf.5 b/data/man/gallery-dl.conf.5 index fbf32bc..b827aeb 100644 --- a/data/man/gallery-dl.conf.5 +++ b/data/man/gallery-dl.conf.5 @@ -1,4 +1,4 @@ -.TH "GALLERY-DL.CONF" "5" "2025-09-23" "1.30.8" "gallery-dl Manual" +.TH "GALLERY-DL.CONF" "5" "2025-10-03" "1.30.9" "gallery-dl Manual" .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) @@ -76,9 +76,9 @@ those as makeshift comments by settings their values to arbitrary strings. .SS extractor.*.filename .IP "Type:" 6 .br -* \f[I]string\f[] +* \f[I]Format String\f[] .br -* \f[I]object\f[] (condition -> \f[I]format string\f[]) +* \f[I]object\f[] (\f[I]Condition\f[] → \f[I]Format String\f[]) .IP "Example:" 4 .. code:: json @@ -95,12 +95,15 @@ those as makeshift comments by settings their values to arbitrary strings. .IP "Description:" 4 -A \f[I]format string\f[] to build filenames for downloaded files with. +A \f[I]Format String\f[] to generate filenames for downloaded files. -If this is an \f[I]object\f[], it must contain Python expressions mapping to the -filename format strings to use. -These expressions are evaluated in the specified order until one evaluates -to \f[I]True\f[]. +If this is an \f[I]object\f[], +it must contain \f[I]Conditions\f[] mapping to the +\f[I]Format String\f[] to use. +These \f[I]Conditions\f[] are evaluated in the specified order +until one evaluates to \f[I]True\f[]. +When none match, the \f[I]""\f[] entry or +the extractor's default filename \f[I]Format String\f[] is used. The available replacement keys depend on the extractor used. A list of keys for a specific one can be acquired by calling *gallery-dl* @@ -128,7 +131,8 @@ image-id subcategory image -Note: Even if the value of the \f[I]extension\f[] key is missing or +.IP "Note:" 4 +Even if the value of the \f[I]extension\f[] key is missing or \f[I]None\f[], it will be filled in later when the file download is starting. This key is therefore always available to provide a valid filename extension. @@ -137,9 +141,9 @@ a valid filename extension. .SS extractor.*.directory .IP "Type:" 6 .br -* \f[I]list\f[] of \f[I]strings\f[] +* \f[I]list\f[] of \f[I]Format Strings\f[] .br -* \f[I]object\f[] (condition -> \f[I]format strings\f[]) +* \f[I]object\f[] (\f[I]Condition\f[] → \f[I]Format Strings\f[]) .IP "Example:" 4 .. code:: json @@ -156,10 +160,11 @@ a valid filename extension. .IP "Description:" 4 -A list of \f[I]format strings\f[] to build target directory paths with. +A list of \f[I]Format String(s)\f[] to generate the target directory path. -If this is an \f[I]object\f[], it must contain Python expressions mapping to the -list of format strings to use. +If this is an \f[I]object\f[], +it must contain \f[I]Conditions\f[] mapping to the +list of \f[I]Format Strings\f[] to use. Each individual string in such a list represents a single path segment, which will be joined together and appended to the @@ -233,7 +238,7 @@ Share number of skipped downloads between parent and child extractors. .br * \f[I]string\f[] .br -* \f[I]object\f[] (character -> replacement character(s)) +* \f[I]object\f[] (character → replacement character(s)) .IP "Default:" 9 \f[I]"auto"\f[] @@ -254,28 +259,39 @@ or character ranges to their replacements for generated path segment names. .br -Special values: - -.br -* \f[I]"auto"\f[]: Use characters from \f[I]"unix"\f[] or \f[I]"windows"\f[] +.IP "Special Values:" 4 +\f[I]"auto"\f[] +Use characters from \f[I]"unix"\f[] or \f[I]"windows"\f[] depending on the local operating system +\f[I]"unix"\f[] +\f[I]"/"\f[] +\f[I]"windows"\f[] +\f[I]"\\\\\\\\|/<>:\\"?*"\f[] +.br +(https://learn.microsoft.com/en-us/windows/win32/fileio/naming-a-file) +.br +\f[I]"ascii"\f[] +\f[I]"^0-9A-Za-z_."\f[] .br -* \f[I]"unix"\f[]: \f[I]"/"\f[] +(only ASCII digits, letters, underscores, and dots) .br -* \f[I]"windows"\f[]: \f[I]"\\\\\\\\|/<>:\\"?*"\f[] +\f[I]"ascii+"\f[] +\f[I]"^0-9@-[\\\\]-{ #-)+-.;=!}~"\f[] .br -* \f[I]"ascii"\f[]: \f[I]"^0-9A-Za-z_."\f[] (only ASCII digits, letters, underscores, and dots) +(all ASCII characters except the ones not allowed by Windows) .br -* \f[I]"ascii+"\f[]: \f[I]"^0-9@-[\\\\]-{ #-)+-.;=!}~"\f[] (all ASCII characters except the ones not allowed by Windows) -Implementation Detail: For \f[I]strings\f[] with length >= 2, this option uses a +.IP "Implementation Detail:" 4 +For \f[I]strings\f[] with length >= 2, this option uses a \f[I]Regular Expression Character Set\f[], meaning that: .br -* using a caret \f[I]^\f[] as first character inverts the set +* Using a caret \f[I]^\f[] as first character inverts the set +(\f[I]"^..."\f[]) .br -* character ranges are supported (\f[I]0-9a-z\f[]) +* Character ranges are supported +(\f[I]"0-9a-z"\f[]) .br * \f[I]]\f[], \f[I]-\f[], and \f[I]\\\f[] need to be escaped as \f[I]\\\\]\f[], \f[I]\\\\-\f[], and \f[I]\\\\\\\\\f[] respectively @@ -304,7 +320,8 @@ The replacement character(s) for .IP "Description:" 4 Set of characters to remove from generated path names. -Note: In a string with 2 or more characters, \f[I][]^-\\\f[] need to be +.IP "Note:" 4 +In a string with 2 or more characters, \f[I][]^-\\\f[] need to be escaped with backslashes, e.g. \f[I]"\\\\[\\\\]"\f[] @@ -319,15 +336,14 @@ escaped with backslashes, e.g. \f[I]"\\\\[\\\\]"\f[] Set of characters to remove from the end of generated path segment names using \f[I]str.rstrip()\f[] -Special values: - -.br -* \f[I]"auto"\f[]: Use characters from \f[I]"unix"\f[] or \f[I]"windows"\f[] +.IP "Special Values:" 4 +\f[I]"auto"\f[] +Use characters from \f[I]"unix"\f[] or \f[I]"windows"\f[] depending on the local operating system -.br -* \f[I]"unix"\f[]: \f[I]""\f[] -.br -* \f[I]"windows"\f[]: \f[I]". "\f[] +\f[I]"unix"\f[] +\f[I]""\f[] +\f[I]"windows"\f[] +\f[I]". "\f[] .SS extractor.*.path-convert @@ -360,7 +376,7 @@ prefixed with \f[I]\\\\?\\\f[] to work around the 260 characters path length lim .SS extractor.*.extension-map .IP "Type:" 6 -\f[I]object\f[] (extension -> replacement) +\f[I]object\f[] (extension → replacement) .IP "Default:" 9 .. code:: json @@ -445,10 +461,10 @@ filename extension (\f[I]file.1.ext\f[], \f[I]file.2.ext\f[], etc.) .SS extractor.*.skip-filter .IP "Type:" 6 -\f[I]string\f[] +\f[I]Condition\f[] .IP "Description:" 4 -Python expression controlling which skipped files to count towards +Python \f[I]Expression\f[] controlling which skipped files to count towards \f[I]"abort"\f[] / \f[I]"terminate"\f[] / \f[I]"exit"\f[]. @@ -492,66 +508,57 @@ response before \f[I]retrying\f[] the request. \f[I]Duration\f[] .IP "Default:" 9 -.br -* \f[I]"0.5-1.5"\f[] -\f[I]ao3\f[], -\f[I]arcalive\f[], -\f[I]booth\f[], -\f[I]civitai\f[], -\f[I][Danbooru]\f[], -\f[I][E621]\f[], -\f[I][foolfuuka]:search\f[], -\f[I]hdoujin\f[], -\f[I]itaku\f[], -\f[I]newgrounds\f[], -\f[I][philomena]\f[], -\f[I]pixiv-novel\f[], -\f[I]plurk\f[], -\f[I]poipiku\f[] , -\f[I]pornpics\f[], -\f[I]schalenetwork\f[], -\f[I]scrolller\f[], -\f[I]sizebooru\f[], -\f[I]soundgasm\f[], -\f[I]thehentaiworld\f[], -\f[I]urlgalleries\f[], -\f[I]vk\f[], -\f[I]webtoons\f[], -\f[I]weebcentral\f[], -\f[I]xfolio\f[], +\f[I]"0.5-1.5"\f[] +\f[I]ao3\f[] \f[I] +\f[I]arcalive\f[] \f[] +\f[I]booth\f[] \f[I] +\f[I]civitai\f[] \f[] +\f[I][Danbooru]\f[] \f[I] +\f[I][E621]\f[] \f[] +\f[I][foolfuuka]:search\f[] \f[I] +\f[I]hdoujin\f[] \f[] +\f[I]itaku\f[] \f[I] +\f[I]newgrounds\f[] \f[] +\f[I][philomena]\f[] \f[I] +\f[I]pixiv-novel\f[] \f[] +\f[I]plurk\f[] \f[I] +\f[I]poipiku\f[] \f[] +\f[I]pornpics\f[] \f[I] +\f[I]schalenetwork\f[] \f[] +\f[I]scrolller\f[] \f[I] +\f[I]sizebooru\f[] \f[] +\f[I]soundgasm\f[] \f[I] +\f[I]thehentaiworld\f[] \f[] +\f[I]urlgalleries\f[] \f[I] +\f[I]vk\f[] \f[] +\f[I]webtoons\f[] \f[I] +\f[I]weebcentral\f[] \f[] +\f[I]xfolio\f[] \f[I] \f[I]zerochan\f[] -.br -* \f[I]"1.0"\f[] -\f[I]furaffinity\f[] +\f[I]"1.0"\f[] +\f[I]furaffinity\f[] \f[] \f[I]rule34\f[] -.br -* \f[I]"1.0-2.0"\f[] -\f[I]flickr\f[], -\f[I]pexels\f[], -\f[I]weibo\f[], +\f[I]"1.0-2.0"\f[] +\f[I]flickr\f[] \f[I] +\f[I]pexels\f[] \f[] +\f[I]weibo\f[] \f[I] \f[I][wikimedia]\f[] -.br -* \f[I]"1.4"\f[] +\f[I]"1.4"\f[] \f[I]wallhaven\f[] -.br -* \f[I]"2.0-4.0"\f[] -\f[I]behance\f[], -\f[I]imagefap\f[], +\f[I]"2.0-4.0"\f[] +\f[I]behance\f[] \f[] +\f[I]imagefap\f[] \f[I] \f[I][Nijie]\f[] -.br -* \f[I]"3.0-6.0"\f[] -\f[I]bilibili\f[], -\f[I]exhentai\f[], -\f[I][reactor]\f[], +\f[I]"3.0-6.0"\f[] +\f[I]bilibili\f[] \f[] +\f[I]exhentai\f[] \f[I] +\f[I][reactor]\f[] \f[] \f[I]readcomiconline\f[] -.br -* \f[I]"6.0-6.1"\f[] +\f[I]"6.0-6.1"\f[] \f[I]twibooru\f[] -.br -* \f[I]"6.0-12.0"\f[] +\f[I]"6.0-12.0"\f[] \f[I]instagram\f[] -.br -* \f[I]0\f[] +\f[I]0\f[] otherwise .IP "Description:" 4 @@ -573,35 +580,35 @@ another site. This is supported for .br -* \f[I]aibooru\f[] (*) +* \f[I]aibooru\f[] (\f[I]*\f[]) .br * \f[I]ao3\f[] .br * \f[I]aryion\f[] .br -* \f[I]atfbooru\f[] (*) +* \f[I]atfbooru\f[] (\f[I]*\f[]) .br * \f[I]bluesky\f[] .br -* \f[I]booruvar\f[] (*) +* \f[I]booruvar\f[] (\f[I]*\f[]) .br * \f[I]coomer\f[] .br -* \f[I]danbooru\f[] (*) +* \f[I]danbooru\f[] (\f[I]*\f[]) .br * \f[I]deviantart\f[] .br -* \f[I]e621\f[] (*) +* \f[I]e621\f[] (\f[I]*\f[]) .br -* \f[I]e6ai\f[] (*) +* \f[I]e6ai\f[] (\f[I]*\f[]) .br -* \f[I]e926\f[] (*) +* \f[I]e926\f[] (\f[I]*\f[]) .br * \f[I]exhentai\f[] .br * \f[I]girlswithmuscle\f[] .br -* \f[I]horne\f[] (R) +* \f[I]horne\f[] (\f[I]R\f[]) .br * \f[I]idolcomplex\f[] .br @@ -613,7 +620,7 @@ This is supported for .br * \f[I]kemono\f[] .br -* \f[I]madokami\f[] (R) +* \f[I]madokami\f[] (\f[I]R\f[]) .br * \f[I]mangadex\f[] .br @@ -621,7 +628,7 @@ This is supported for .br * \f[I]newgrounds\f[] .br -* \f[I]nijie\f[] (R) +* \f[I]nijie\f[] (\f[I]R\f[]) .br * \f[I]pillowfort\f[] .br @@ -629,8 +636,6 @@ This is supported for .br * \f[I]sankaku\f[] .br -* \f[I]schalenetwork\f[] -.br * \f[I]scrolller\f[] .br * \f[I]seiga\f[] @@ -651,16 +656,24 @@ These values can also be specified via the \f[I]-u/--username\f[] and \f[I]-p/--password\f[] command-line options or by using a \f[I].netrc\f[] file. (see Authentication_) -(*) The password value for these sites should be -the API key found in your user profile, not the actual account password. - -(R) Login with username & password or supplying logged-in -\f[I]cookies\f[] is required -Note: Leave the \f[I]password\f[] value empty or undefined +.IP "Note:" 4 +Leave the \f[I]password\f[] value empty or undefined to be prompted for a password when performing a login (see \f[I]getpass()\f[]). +.. _pw-apikey: + +(*) The \f[I]password\f[] value for these sites should be +the API key found in your user profile, not the actual account password. + +.. _pw-required: + +(R) Login with username & password or +supplying authenticated +\f[I]cookies\f[] +is *required* + .SS extractor.*.input .IP "Type:" 6 @@ -690,7 +703,7 @@ Enable the use of \f[I].netrc\f[] authentication data. .br * \f[I]Path\f[] .br -* \f[I]object\f[] (name -> value) +* \f[I]object\f[] (name → value) .br * \f[I]list\f[] @@ -741,17 +754,12 @@ Source to read additional cookies from. This can be \f[I]string\f[] .IP "Default:" 9 -\f[I]"random"\f[] +\f[I]null\f[] .IP "Description:" 4 Interpret \f[I]extractor.cookies\f[] as a list of cookie sources and select one of them for each extractor run. -.br -* \f[I]"random"\f[]: Select cookies \f[I]randomly\f[] -.br -* \f[I]"rotate"\f[]: Select cookies in sequence. Start over from the beginning after reaching the end of the list. - .. code:: json [ @@ -762,6 +770,13 @@ as a list of cookie sources and select one of them for each extractor run. ] +.IP "Supported Values:" 4 +\f[I]"random"\f[] +Select cookies \f[I]randomly\f[]. +\f[I]"rotate"\f[] +Select cookies in sequence. Start over from the beginning after reaching the end of the list. + + .SS extractor.*.cookies-update .IP "Type:" 6 .br @@ -788,7 +803,7 @@ of a valid cookies.txt file, update its contents. .br * \f[I]string\f[] .br -* \f[I]object\f[] (scheme -> proxy) +* \f[I]object\f[] (scheme → proxy) .IP "Example:" 4 .. code:: json @@ -817,8 +832,8 @@ It is also possible to set a proxy for a specific host by using \f[I]scheme://host\f[] as key. See \f[I]Requests' proxy documentation\f[] for more details. -Note: If a proxy URL does not include a scheme, -\f[I]http://\f[] is assumed. +.IP "Note:" 4 +If a proxy URL does not include a scheme, \f[I]http://\f[] is assumed. .SS extractor.*.proxy-env @@ -861,18 +876,30 @@ or a \f[I]list\f[] with IP and explicit port number as elements. \f[I]string\f[] .IP "Default:" 9 +\f[I]"gallery-dl/VERSION"\f[] .br -* \f[I]"gallery-dl/VERSION"\f[]: \f[I][Danbooru]\f[], \f[I]mangadex\f[], \f[I]weasyl\f[] +* \f[I][Danbooru]\f[] .br -* \f[I]"gallery-dl/VERSION (by mikf)"\f[]: \f[I][E621]\f[] +* \f[I]mangadex\f[] +.br +* \f[I]weasyl\f[] +.br +* \f[I]zerochan\f[] +\f[I]"gallery-dl/VERSION (by mikf)"\f[] +.br +* \f[I][E621]\f[] +\f[I]"net.umanle.arca.android.playstore/0.9.75"\f[] .br -* \f[I]"net.umanle.arca.android.playstore/0.9.75"\f[]: \f[I]arcalive\f[] +* \f[I]arcalive\f[] +\f[I]"Patreon/72.2.28 (Android; Android 14; Scale/2.10)"\f[] .br -* \f[I]"Patreon/72.2.28 (Android; Android 14; Scale/2.10)"\f[]: \f[I]patreon\f[] +* \f[I]patreon\f[] +\f[I]"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/LATEST.0.0.0 Safari/537.36"\f[] .br -* \f[I]"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/LATEST.0.0.0 Safari/537.36"\f[]: \f[I]instagram\f[] +* \f[I]instagram\f[] +\f[I]"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:LATEST) Gecko/20100101 Firefox/LATEST"\f[] .br -* \f[I]"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:LATEST) Gecko/20100101 Firefox/LATEST"\f[]: otherwise +* otherwise .IP "Example:" 4 .br @@ -897,23 +924,37 @@ and use the \f[I]User-Agent\f[] header of this installed browser. \f[I]string\f[] .IP "Default:" 9 -.br -* \f[I]"firefox"\f[]: \f[I]artstation\f[], \f[I]behance\f[], \f[I]fanbox\f[], \f[I]twitter\f[] -.br -* \f[I]null\f[]: otherwise +\f[I]"firefox"\f[] +\f[I]artstation\f[] \f[I] +\f[I]behance\f[] \f[] +\f[I]fanbox\f[] | +\f[I]twitter\f[] +\f[I]null\f[] +otherwise .IP "Example:" 4 .br -* "firefox/128:linux" +* "firefox" +.br +* "firefox/128" .br * "chrome:macos" +.br +* "chrome/138:macos" .IP "Description:" 4 Try to emulate a real browser (\f[I]firefox\f[] or \f[I]chrome\f[]) -by using their default HTTP headers and TLS ciphers for HTTP requests. +.br +by using its HTTP headers and TLS ciphers for HTTP requests +.br +by setting specialized defaults for -Optionally, the operating system used in the \f[I]User-Agent\f[] header can be -specified after a \f[I]:\f[] (\f[I]windows\f[], \f[I]linux\f[], or \f[I]macos\f[]). +.br +* \f[I]user-agent\f[] +.br +* \f[I]headers\f[] +.br +* \f[I]ciphers\f[] Supported browsers: @@ -930,15 +971,16 @@ Supported browsers: .br * \f[I]chrome/111\f[] -Note: -This option sets custom -\f[I]headers\f[] -and -\f[I]ciphers\f[] -defaults. +The operating system used in the \f[I]User-Agent\f[] header can be +specified after a colon \f[I]:\f[] (\f[I]windows\f[], \f[I]linux\f[], \f[I]macos\f[]), +for example \f[I]chrome:windows\f[]. -Note: \f[I]requests\f[] and \f[I]urllib3\f[] only support HTTP/1.1, while a real -browser would use HTTP/2. +.IP "Note:" 4 +Any value *not* matching a supported browser +will fall back to \f[I]"firefox"\f[]. + +\f[I]requests\f[] and \f[I]urllib3\f[] only support HTTP/1.1, while a real +browser would use HTTP/2 and HTTP/3. .SS extractor.*.referer @@ -949,7 +991,14 @@ browser would use HTTP/2. * \f[I]string\f[] .IP "Default:" 9 +\f[I]false\f[] +\f[I]4archive\f[] \f[I] +\f[I]4chanarchives\f[] \f[] +\f[I]archivedmoe\f[] \f[I] +\f[I]nsfwalbum\f[] \f[] +\f[I]tumblrgallery\f[] \f[I]true\f[] +otherwise .IP "Description:" 4 Send \f[I]Referer\f[] @@ -964,7 +1013,7 @@ instead of the extractor's \f[I]root\f[] domain. .br * \f[I]"string"\f[] .br -* \f[I]object\f[] (name -> value) +* \f[I]object\f[] (name → value) .IP "Default:" 9 .. code:: json @@ -1022,10 +1071,12 @@ to use these browser's default ciphers. \f[I]bool\f[] .IP "Default:" 9 -.br -* \f[I]false\f[]: \f[I]artstation\f[], \f[I]behance\f[], \f[I]vsco\f[] -.br -* \f[I]true\f[]: otherwise +\f[I]false\f[] +\f[I]artstation\f[] \f[I] +\f[I]behance\f[] \f[] +\f[I]vsco\f[] +\f[I]true\f[] +otherwise .IP "Description:" 4 Allow selecting TLS 1.2 cipher suites. @@ -1036,7 +1087,7 @@ and potentially bypass Cloudflare blocks. .SS extractor.*.keywords .IP "Type:" 6 -\f[I]object\f[] (name -> value) +\f[I]object\f[] (name → value) .IP "Example:" 4 {"type": "Pixel Art", "type_id": 123} @@ -1054,7 +1105,7 @@ Additional name-value pairs to be added to each metadata dictionary. .IP "Description:" 4 Evaluate each \f[I]keywords\f[] \f[I]string\f[] value -as a \f[I]format string\f[]. +as a \f[I]Format String\f[]. .SS extractor.*.keywords-default @@ -1065,8 +1116,8 @@ any \f[I]"None"\f[] .IP "Description:" 4 -Default value used for missing or undefined keyword names in -\f[I]format strings\f[]. +Default value used for missing or undefined keyword names in a +\f[I]Format String\f[]. .SS extractor.*.url-metadata @@ -1176,7 +1227,8 @@ Each identifier can be Both names can be a * or left empty, matching all possible names (\f[I]"*:image"\f[], \f[I]":user"\f[]). .br -Note: Any \f[I]blacklist\f[] setting will automatically include +.IP "Note:" 4 +Any \f[I]blacklist\f[] setting will automatically include \f[I]"oauth"\f[], \f[I]"recursive"\f[], and \f[I]"test"\f[]. @@ -1211,9 +1263,10 @@ If this value is a the archive will use this PostgreSQL database as backend (requires \f[I]Psycopg\f[]). -Note: Archive files that do not already exist get generated automatically. +.IP "Note:" 4 +Archive files that do not already exist get generated automatically. -Note: Archive paths support regular \f[I]format string\f[] replacements, +Archive paths support basic \f[I]Format String\f[] replacements, but be aware that using external inputs for building local paths may pose a security risk. @@ -1243,13 +1296,13 @@ Available events are: .SS extractor.*.archive-format .IP "Type:" 6 -\f[I]string\f[] +\f[I]Format String\f[] .IP "Example:" 4 "{id}_{offset}" .IP "Description:" 4 -An alternative \f[I]format string\f[] to build archive IDs with. +An alternative \f[I]Format String\f[] to build archive IDs with. .SS extractor.*.archive-mode @@ -1263,17 +1316,17 @@ An alternative \f[I]format string\f[] to build archive IDs with. Controls when to write \f[I]archive IDs\f[] to the archive database. -.br -* \f[I]"file"\f[]: Write IDs immediately +\f[I]"file"\f[] +Write IDs immediately after completing or skipping a file download. -.br -* \f[I]"memory"\f[]: Keep IDs in memory +\f[I]"memory"\f[] +Keep IDs in memory and only write them after successful job completion. .SS extractor.*.archive-prefix .IP "Type:" 6 -\f[I]string\f[] +\f[I]Format String\f[] .IP "Default:" 9 .br @@ -1301,7 +1354,7 @@ for available \f[I]PRAGMA\f[] statements and further details. .SS extractor.*.archive-table .IP "Type:" 6 -\f[I]string\f[] +\f[I]Format String\f[] .IP "Default:" 9 \f[I]"archive"\f[] @@ -1310,13 +1363,13 @@ for available \f[I]PRAGMA\f[] statements and further details. "{category}" .IP "Description:" 4 -\f[I]Format string\f[] selecting the archive database table name. +\f[I]Format String\f[] selecting the archive database table name. .SS extractor.*.actions .IP "Type:" 6 .br -* \f[I]object\f[] (pattern -> \f[I]Action(s)\f[]) +* \f[I]object\f[] (pattern → \f[I]Action(s)\f[]) .br * \f[I]list\f[] of [pattern, \f[I]Action(s)\f[]] pairs @@ -1408,7 +1461,7 @@ for each downloaded \f[I]pixiv\f[] file. .SS extractor.*.postprocessor-options .IP "Type:" 6 -\f[I]object\f[] (name -> value) +\f[I]object\f[] (name → value) .IP "Example:" 4 .. code:: json @@ -1544,15 +1597,15 @@ Use fallback download URLs when a download fails. .br * \f[I]list\f[] of \f[I]strings\f[] -.IP "Examples:" 4 +.IP "Example:" 4 .br -* \f[I]"10-20"\f[] +* "10-20" .br -* \f[I]"-5, 10, 30-50, 100-"\f[] +* "-5, 10, 30-50, 100-" .br -* \f[I]"10:21, 30:51:2, :5, 100:"\f[] +* "10:21, 30:51:2, :5, 100:" .br -* \f[I]["-5", "10", "30-50", "100-"]\f[] +* ["-5", "10", "30-50", "100-"] .IP "Description:" 4 Index range(s) selecting which files to download. @@ -1572,7 +1625,8 @@ and will default to begin (\f[I]1\f[]) or end (\f[I]sys.maxsize\f[]) if omitted. For example \f[I]5-\f[], \f[I]5:\f[], and \f[I]5::\f[] all mean "Start at file number 5". .br -Note: The index of the first file is \f[I]1\f[]. +.IP "Note:" 4 +The index of the first file is \f[I]1\f[]. .SS extractor.*.chapter-range @@ -1587,20 +1641,20 @@ but applies to delegated URLs like manga chapters, etc. .SS extractor.*.image-filter .IP "Type:" 6 .br -* \f[I]string\f[] +* \f[I]Condition\f[] .br -* \f[I]list\f[] of \f[I]strings\f[] +* \f[I]list\f[] of \f[I]Conditions\f[] -.IP "Examples:" 4 +.IP "Example:" 4 .br -* \f[I]"re.search(r'foo(bar)+', description)"\f[] +* "re.search(r'foo(bar)+', description)" .br -* \f[I]["width >= 1200", "width/height > 1.2"]\f[] +* ["width >= 1200", "width/height > 1.2"] .IP "Description:" 4 -Python expression controlling which files to download. +Python \f[I]Expression\f[] controlling which files to download. -A file only gets downloaded when *all* of the given expressions evaluate to \f[I]True\f[]. +A file only gets downloaded when *all* of the given \f[I]Expressions\f[] evaluate to \f[I]True\f[]. Available values are the filename-specific ones listed by \f[I]-K\f[] or \f[I]-j\f[]. @@ -1608,15 +1662,15 @@ Available values are the filename-specific ones listed by \f[I]-K\f[] or \f[I]-j .SS extractor.*.chapter-filter .IP "Type:" 6 .br -* \f[I]string\f[] +* \f[I]Condition\f[] .br -* \f[I]list\f[] of \f[I]strings\f[] +* \f[I]list\f[] of \f[I]Conditions\f[] -.IP "Examples:" 4 +.IP "Example:" 4 .br -* \f[I]"lang == 'en'"\f[] +* "lang == 'en'" .br -* \f[I]["language == 'French'", "10 <= chapter < 20"]\f[] +* ["language == 'French'", "10 <= chapter < 20"] .IP "Description:" 4 Like \f[I]image-filter\f[], @@ -1660,7 +1714,8 @@ date-min and date-max. See \f[I]strptime\f[] for a list of formatting directives. -Note: Despite its name, this option does **not** control how +.IP "Note:" 4 +Despite its name, this option does **not** control how \f[I]{date}\f[] metadata fields are formatted. To use a different formatting for those values other than the default \f[I]%Y-%m-%d %H:%M:%S\f[], put \f[I]strptime\f[] formatting directives @@ -1682,12 +1737,14 @@ During data extraction, write received HTTP request data to enumerated files in the current working directory. -Special values: - +.IP "Special Values:" 4 +\f[I]"all"\f[] +Include HTTP request and response headers. .br -* \f[I]"all"\f[]: Include HTTP request and response headers. Hide \f[I]Authorization\f[], \f[I]Cookie\f[], and \f[I]Set-Cookie\f[] values. +Hide \f[I]Authorization\f[], \f[I]Cookie\f[], and \f[I]Set-Cookie\f[] values. .br -* \f[I]"ALL"\f[]: Include all HTTP request and response headers. +\f[I]"ALL"\f[] +Include all HTTP request and response headers. .SH EXTRACTOR-SPECIFIC OPTIONS @@ -1823,11 +1880,11 @@ when retrieving search results. .IP "Description:" 4 Controls the post extraction strategy. -.br -* \f[I]true\f[]: Start on users' main gallery pages and recursively -descend into subfolders -.br -* \f[I]false\f[]: Get posts from "Latest Updates" pages +\f[I]true\f[] +Start on users' main gallery pages and +recursively descend into subfolders +\f[I]false\f[] +Get posts from "Latest Updates" pages .SS extractor.batoto.domain @@ -1881,8 +1938,17 @@ The maximum possible value appears to be \f[I]1920\f[]. .IP "Description:" 4 Selects which gallery modules to download from. -Supported module types are -\f[I]image\f[], \f[I]video\f[], \f[I]mediacollection\f[], \f[I]embed\f[], \f[I]text\f[]. +.IP "Supported Types:" 4 +.br +* \f[I]"image"\f[] +.br +* \f[I]"video"\f[] +.br +* \f[I]"mediacollection"\f[] +.br +* \f[I]"embed"\f[] +.br +* \f[I]"text"\f[] .SS extractor.bellazon.order-posts @@ -1959,16 +2025,25 @@ Download embedded videos hosted on https://www.blogger.com/ A (comma-separated) list of subcategories to include when processing a user profile. -Possible values are -\f[I]"info"\f[], -\f[I]"avatar"\f[], -\f[I]"background"\f[], -\f[I]"posts"\f[], -\f[I]"replies"\f[], -\f[I]"media"\f[], -\f[I]"video"\f[], -\f[I]"likes"\f[], +.IP "Supported Values:" 4 +.br +* \f[I]info\f[] +.br +* \f[I]avatar\f[] +.br +* \f[I]background\f[] +.br +* \f[I]posts\f[] +.br +* \f[I]replies\f[] +.br +* \f[I]media\f[] +.br +* \f[I]video\f[] +.br +* \f[I]likes\f[] +.IP "Note:" 4 It is possible to use \f[I]"all"\f[] instead of listing all values separately. @@ -2020,11 +2095,13 @@ Requires login and only allows accessing your own likes. .IP "Description:" 4 Extract additional metadata. +\f[I]facets\f[] +\f[I]hashtags\f[], \f[I]mentions\f[], \f[I]uris\f[] +\f[I]user\f[] +Detailed \f[I]user\f[] metadata for the user referenced in the input URL. .br -* \f[I]facets\f[]: \f[I]hashtags\f[], \f[I]mentions\f[], and \f[I]uris\f[] +(\f[I]app.bsky.actor.getProfile\f[]) .br -* \f[I]user\f[]: detailed \f[I]user\f[] metadata for the user referenced in the input URL -(See \f[I]app.bsky.actor.getProfile\f[]). .SS extractor.bluesky.likes.depth @@ -2037,7 +2114,7 @@ Extract additional metadata. .IP "Description:" 4 Sets the maximum depth of returned reply posts. -(See depth parameter of \f[I]app.bsky.feed.getPostThread\f[]) +(See the \f[I]depth\f[] parameter of \f[I]app.bsky.feed.getPostThread\f[]) .SS extractor.bluesky.quoted @@ -2123,26 +2200,24 @@ Provide detailed \f[I]user\f[] metadata. Download videos. If this is a \f[I]list\f[], it selects which format to try to download. -.br -Possibly available formats are -.br +.IP "Possible Formats:" 4 .br * \f[I]ultra_hd\f[] (2160p) .br -* \f[I]quad_hd\f[] (1440p) +* \f[I]quad_hd\f[] (1440p) .br -* \f[I]full_hd\f[] (1080p) +* \f[I]full_hd\f[] (1080p) .br -* \f[I]high\f[] (720p) +* \f[I]high\f[] (720p) .br -* \f[I]medium\f[] (480p) +* \f[I]medium\f[] (480p) .br -* \f[I]low\f[] (360p) +* \f[I]low\f[] (360p) .br -* \f[I]lowest\f[] (240p) +* \f[I]lowest\f[] (240p) .br -* \f[I]tiny\f[] (144p) +* \f[I]tiny\f[] (144p) .SS extractor.booth.strategy @@ -2184,10 +2259,10 @@ API endpoint for retrieving file URLs. .IP "Description:" 4 Controls which \f[I]bunkr\f[] TLDs to accept. -.br -* \f[I]true\f[]: Match URLs with *all* possible TLDs (e.g. \f[I]bunkr.xyz\f[] or \f[I]bunkrrr.duck\f[]) -.br -* \f[I]false\f[]: Match only URLs with known TLDs +\f[I]true\f[] +Match URLs with *all* possible TLDs (e.g. \f[I]bunkr.xyz\f[] or \f[I]bunkrrr.duck\f[]) +\f[I]false\f[] +Match only URLs with known TLDs .SS extractor.cien.files @@ -2200,11 +2275,15 @@ Controls which \f[I]bunkr\f[] TLDs to accept. .IP "Description:" 4 Determines the type and order of files to download. -Available types are -\f[I]image\f[], -\f[I]video\f[], -\f[I]download\f[], -\f[I]gallery\f[]. +.IP "Available Types:" 4 +.br +* \f[I]image\f[] +.br +* \f[I]video\f[] +.br +* \f[I]download\f[] +.br +* \f[I]gallery\f[] .SS extractor.civitai.api @@ -2217,10 +2296,10 @@ Available types are .IP "Description:" 4 Selects which API endpoints to use. -.br -* \f[I]"rest"\f[]: \f[I]Public REST API\f[] -.br -* \f[I]"trpc"\f[]: Internal tRPC API +\f[I]"rest"\f[] +\f[I]Public REST API\f[] +\f[I]"trpc"\f[] +Internal tRPC API .SS extractor.civitai.api-key @@ -2246,10 +2325,13 @@ for details. .IP "Description:" 4 Determines the type and order of files to download when processing models. -Available types are -\f[I]model\f[], -\f[I]image\f[], -\f[I]gallery\f[]. +.IP "Available Types:" 4 +.br +* \f[I]model\f[] +.br +* \f[I]image\f[] +.br +* \f[I]gallery\f[] .SS extractor.civitai.include @@ -2266,22 +2348,21 @@ Available types are A (comma-separated) list of subcategories to include when processing a user profile. -Possible values are - +.IP "Supported Values:" 4 .br -* \f[I]"user-models"\f[] +* \f[I]user-models\f[] .br -* \f[I]"user-posts"\f[] +* \f[I]user-posts\f[] .br -* \f[I]"user-images"\f[] +* \f[I]user-images\f[] .br -* \f[I]"user-videos"\f[] +* \f[I]user-videos\f[] .br -* \f[I]"user-collections"\f[] +* \f[I]user-collections\f[] +.IP "Note:" 4 It is possible to use \f[I]"all"\f[] instead of listing all values separately. -.IP "Note:" 4 To get a more complete set of metadata like \f[I]model['name']\f[] and \f[I]post['title']\f[], include \f[I]user-models\f[] and \f[I]user-posts\f[] @@ -2311,7 +2392,8 @@ as well as the default \f[I]user-images\f[] and \f[I]user-videos\f[]: .IP "Description:" 4 Extract additional \f[I]generation\f[], \f[I]version\f[], and \f[I]post\f[] metadata. -Note: This requires 1 or more additional API requests per image or video. +.IP "Note:" 4 +This requires 1 or more additional API requests per image or video. .SS extractor.civitai.nsfw @@ -2366,7 +2448,8 @@ to pass with every image URL. Known available options include \f[I]original\f[], \f[I]quality\f[], \f[I]width\f[] -Note: Set this option to an arbitrary letter, e.g., \f[I]"w"\f[], +.IP "Note:" 4 +Set this option to an arbitrary letter, e.g., \f[I]"w"\f[], to download images in JPEG format at their original resolution. @@ -2423,8 +2506,7 @@ Use \f[I]+\f[] as first character to add the given options to the * ["fr", "it", "pl"] .IP "Description:" 4 -\f[I]ISO 639-1\f[] language codes -to filter chapters by. +\f[I]ISO 639-1\f[] code(s) to filter chapters by. .SS extractor.cyberdrop.domain @@ -2454,7 +2536,7 @@ uses the same domain as a given input URL. .IP "Description:" 4 Password value used to access protected files and folders. -Note: Leave this value empty or undefined +Leave this value empty or undefined to be interactively prompted for a password when needed (see \f[I]getpass()\f[]). @@ -2501,10 +2583,10 @@ Ascending Post ID order .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 +\f[I]true\f[] +ZIP archives +\f[I]false\f[] +Converted video files .SS extractor.[Danbooru].metadata @@ -2533,7 +2615,8 @@ It is possible to specify a custom list of metadata includes. See \f[I]available_includes\f[] for possible field names. \f[I]aibooru\f[] also supports \f[I]ai_metadata\f[]. -Note: This requires 1 additional HTTP request per 200-post batch. +.IP "Note:" 4 +This requires 1 additional HTTP request per 200-post batch. .SS extractor.[Danbooru].threshold @@ -2551,7 +2634,8 @@ 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 200. -Note: Changing this setting is normally not necessary. When the value is +.IP "Note:" 4 +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. @@ -2612,7 +2696,8 @@ Extract \f[I]comments\f[] metadata. .IP "Description:" 4 Download the avatar of each commenting user. -Note: Enabling this option also enables deviantart.comments_. +.IP "Note:" 4 +Enabling this option also enables deviantart.comments_. .SS extractor.deviantart.extra @@ -2626,7 +2711,8 @@ Note: Enabling this option also enables deviantart.comments_. Download extra Sta.sh resources from description texts and journals. -Note: Enabling this option also enables deviantart.metadata_. +.IP "Note:" 4 +Enabling this option also enables deviantart.metadata_. .SS extractor.deviantart.flat @@ -2640,16 +2726,17 @@ Note: Enabling this option also enables deviantart.metadata_. Select the directory structure created by the Gallery- and Favorite-Extractors. -.br -* \f[I]true\f[]: Use a flat directory structure. -.br -* \f[I]false\f[]: Collect a list of all gallery-folders or -favorites-collections and transfer any further work to other +\f[I]true\f[] +Use a flat directory structure. +\f[I]false\f[] +Collect a list of all gallery \f[I]folders\f[] or +favorites \f[I]collections\f[] and transfer any further work to other extractors (\f[I]folder\f[] or \f[I]collection\f[]), which will then create individual subdirectories for each of them. -Note: Going through all gallery folders will not be able to -fetch deviations which aren't in any folder. +.IP "Note:" 4 +Going through all gallery folders won't +fetch deviations not contained in any folder. .SS extractor.deviantart.folders @@ -2663,7 +2750,8 @@ fetch deviations which aren't in any folder. Provide a \f[I]folders\f[] metadata field that contains the names of all folders a deviation is present in. -Note: Gathering this information requires a lot of API calls. +.IP "Note:" 4 +Gathering this information requires a lot of API calls. Use with caution. @@ -2684,10 +2772,9 @@ belongs to a group or a regular user. When disabled, assume every given profile name belongs to a regular user. -Special values: - -.br -* \f[I]"skip"\f[]: Skip groups +.IP "Special Values:" 4 +\f[I]"skip"\f[] +Skip groups .SS extractor.deviantart.include @@ -2710,15 +2797,23 @@ Special values: A (comma-separated) list of subcategories to include when processing a user profile. -Possible values are -\f[I]"avatar"\f[], -\f[I]"background"\f[], -\f[I]"gallery"\f[], -\f[I]"scraps"\f[], -\f[I]"journal"\f[], -\f[I]"favorite"\f[], -\f[I]"status"\f[]. +.IP "Supported Values:" 4 +.br +* \f[I]avatar\f[] +.br +* \f[I]background\f[] +.br +* \f[I]gallery\f[] +.br +* \f[I]scraps\f[] +.br +* \f[I]journal\f[] +.br +* \f[I]favorite\f[] +.br +* \f[I]status\f[] +.IP "Note:" 4 It is possible to use \f[I]"all"\f[] instead of listing all values separately. @@ -2745,27 +2840,12 @@ download a higher-quality \f[I]/intermediary/\f[] version. Selects the output format for textual content. This includes journals, literature and status updates. -.br -* \f[I]"html"\f[]: HTML with (roughly) the same layout as on DeviantArt. -.br -* \f[I]"text"\f[]: Plain text with image references and HTML tags removed. -.br -* \f[I]"none"\f[]: Don't download textual content. - - -.SS extractor.deviantart.jwt -.IP "Type:" 6 -\f[I]bool\f[] - -.IP "Default:" 9 -\f[I]false\f[] - -.IP "Description:" 4 -Update \f[I]JSON Web Tokens\f[] (the \f[I]token\f[] URL parameter) -of otherwise non-downloadable, low-resolution images -to be able to download them in full resolution. - -Note: No longer functional as of 2023-10-11 +\f[I]"html"\f[] +HTML with (roughly) the same layout as on DeviantArt. +\f[I]"text"\f[] +Plain text with image references and HTML tags removed. +\f[I]"none"\f[] +Don't download textual content. .SS extractor.deviantart.mature @@ -2810,17 +2890,18 @@ fields when enabled. It is possible to request extended metadata by specifying a list of -.br -* \f[I]camera\f[] : EXIF information (if available) -.br -* \f[I]stats\f[] : deviation statistics -.br -* \f[I]submission\f[] : submission information -.br -* \f[I]collection\f[] : favourited folder information (requires a \f[I]refresh token\f[]) -.br -* \f[I]gallery\f[] : gallery folder information (requires a \f[I]refresh token\f[]) +\f[I]camera\f[] +EXIF information if available +\f[I]stats\f[] +Deviation statistics +\f[I]submission\f[] +Submission information +\f[I]collection\f[] +Favourited folder information (requires a \f[I]refresh token\f[]) +\f[I]gallery\f[] +Gallery folder information (requires a \f[I]refresh token\f[]) +.IP "Note:" 4 Set this option to \f[I]"all"\f[] to request all extended metadata categories. See \f[I]/deviation/metadata\f[] @@ -2855,10 +2936,10 @@ everything else (archives, videos, etc.). .IP "Description:" 4 Controls when to stop paginating over API results. -.br -* \f[I]"api"\f[]: Trust the API and stop when \f[I]has_more\f[] is \f[I]false\f[]. -.br -* \f[I]"manual"\f[]: Disregard \f[I]has_more\f[] and only stop when a batch of results is empty. +\f[I]"api"\f[] +Trust the API and stop when \f[I]has_more\f[] is \f[I]false\f[]. +\f[I]"manual"\f[] +Disregard \f[I]has_more\f[] and only stop when a batch of results is empty. .SS extractor.deviantart.previews @@ -2920,7 +3001,8 @@ The \f[I]refresh-token\f[] value you get from Using a \f[I]refresh-token\f[] allows you to access private or otherwise not publicly available deviations. -Note: The \f[I]refresh-token\f[] becomes invalid +.IP "Note:" 4 +The \f[I]refresh-token\f[] becomes invalid \f[I]after 3 months\f[] or whenever your \f[I]cache file\f[] is deleted or cleared. @@ -3043,7 +3125,8 @@ from an anthology's HTML page. .IP "Description:" 4 Extract additional metadata (notes, pool metadata) if available. -Note: This requires 0-2 additional HTTP requests per post. +.IP "Note:" 4 +This requires 0-2 additional HTTP requests per post. .SS extractor.[E621].threshold @@ -3061,7 +3144,8 @@ 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 +.IP "Note:" 4 +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. @@ -3085,13 +3169,13 @@ Include reposts when extracting albums from a user profile. \f[I]"auto"\f[] .IP "Description:" 4 -.br -* \f[I]"auto"\f[]: Use \f[I]e-hentai.org\f[] or \f[I]exhentai.org\f[] +\f[I]"auto"\f[] +Use \f[I]e-hentai.org\f[] or \f[I]exhentai.org\f[] depending on the input URL -.br -* \f[I]"e-hentai.org"\f[]: Use \f[I]e-hentai.org\f[] for all URLs -.br -* \f[I]"exhentai.org"\f[]: Use \f[I]exhentai.org\f[] for all URLs +\f[I]"e-hentai.org"\f[] +Use \f[I]e-hentai.org\f[] for all URLs +\f[I]"exhentai.org"\f[] +Use \f[I]exhentai.org\f[] for all URLs .SS extractor.exhentai.fallback-retries @@ -3117,9 +3201,10 @@ or \f[I]-1\f[] for infinite retries. After downloading a gallery, add it to your account's favorites as the given category number. -Note: Set this to "favdel" to remove galleries from your favorites. +.IP "Note:" 4 +Set this to "favdel" to remove galleries from your favorites. -Note: This will remove any Favorite Notes when applied +This will remove any Favorite Notes when applied to already favorited galleries. @@ -3210,10 +3295,10 @@ Download full-sized original images if available. .IP "Description:" 4 Selects an alternative source to download files from. -.br -* \f[I]"hitomi"\f[]: Download the corresponding gallery from \f[I]hitomi.la\f[] -.br -* \f[I]"metadata"\f[]: Load only a gallery's metadata from the +\f[I]"hitomi"\f[] +Download the corresponding gallery from \f[I]hitomi.la\f[] +\f[I]"metadata"\f[] +Load only a gallery's metadata from the \f[I]API\f[] @@ -3261,8 +3346,7 @@ Extract comments that include photo attachments made by the author of the post. A (comma-separated) list of subcategories to include when processing a user profile. -Supported values are - +.IP "Supported Values:" 4 .br * \f[I]info\f[] .br @@ -3272,6 +3356,7 @@ Supported values are .br * \f[I]albums\f[] +.IP "Note:" 4 It is possible to use \f[I]"all"\f[] instead of listing all values separately. @@ -3288,12 +3373,12 @@ It is possible to use \f[I]"all"\f[] instead of listing all values separately. .IP "Description:" 4 Control video download behavior. -.br -* \f[I]true\f[]: Extract and download video & audio separately. -.br -* \f[I]"ytdl"\f[]: Let \f[I]ytdl\f[] handle video extraction and download, and merge video & audio streams. -.br -* \f[I]false\f[]: Ignore videos. +\f[I]true\f[] +Extract and download video & audio separately. +\f[I]"ytdl"\f[] +Let \f[I]ytdl\f[] handle video extraction and download, and merge video & audio streams. +\f[I]false\f[] +Ignore videos. .SS extractor.fanbox.comments @@ -3306,7 +3391,8 @@ Control video download behavior. .IP "Description:" 4 Extract \f[I]comments\f[] metadata. -Note: This requires 1 or more additional API requests per post, +.IP "Note:" 4 +This requires 1 or more additional API requests per post, depending on the number of comments. @@ -3323,14 +3409,14 @@ depending on the number of comments. .IP "Description:" 4 Control behavior on embedded content from external sites. -.br -* \f[I]true\f[]: Extract embed URLs and download them if supported +\f[I]true\f[] +Extract embed URLs and download them if supported (videos are not downloaded). -.br -* \f[I]"ytdl"\f[]: Like \f[I]true\f[], but let \f[I]ytdl\f[] handle video +\f[I]"ytdl"\f[] +Like \f[I]true\f[], but let \f[I]ytdl\f[] handle video extraction and download for YouTube, Vimeo, and SoundCloud embeds. -.br -* \f[I]false\f[]: Ignore embeds. +\f[I]false\f[] +Ignore embeds. .SS extractor.fanbox.fee-max @@ -3341,7 +3427,8 @@ extraction and download for YouTube, Vimeo, and SoundCloud embeds. Do not request API data or extract files from posts that require a fee (\f[I]feeRequired\f[]) greater than the specified amount. -Note: This option has no effect on individual post URLs. +.IP "Note:" 4 +This option has no effect on individual post URLs. .SS extractor.fanbox.metadata @@ -3365,8 +3452,7 @@ Note: This option has no effect on individual post URLs. .IP "Description:" 4 Extract \f[I]plan\f[] and extended \f[I]user\f[] metadata. -Supported fields when selecting which data to extract are - +.IP "Supported Fields:" 4 .br * \f[I]comments\f[] .br @@ -3374,7 +3460,8 @@ Supported fields when selecting which data to extract are .br * \f[I]user\f[] -Note: \f[I]comments\f[] can also be enabled via +.IP "Note:" 4 +\f[I]comments\f[] can also be enabled via \f[I]fanbox.comments\f[] @@ -3425,7 +3512,8 @@ from \f[I]linking your Flickr account to gallery-dl\f[]. For each photo, return the albums and pools it belongs to as \f[I]set\f[] and \f[I]pool\f[] metadata. -Note: This requires 1 additional API call per photo. +.IP "Note:" 4 +This requires 1 additional API call per photo. See \f[I]flickr.photos.getAllContexts\f[] for details. @@ -3440,7 +3528,8 @@ See \f[I]flickr.photos.getAllContexts\f[] for details. For each photo, return its EXIF/TIFF/GPS tags as \f[I]exif\f[] and \f[I]camera\f[] metadata. -Note: This requires 1 additional API call per photo. +.IP "Note:" 4 +This requires 1 additional API call per photo. See \f[I]flickr.photos.getExif\f[] for details. @@ -3455,7 +3544,8 @@ See \f[I]flickr.photos.getExif\f[] for details. For each photo, retrieve its "full" metadata as provided by \f[I]flickr.photos.getInfo\f[] -Note: This requires 1 additional API call per photo. +.IP "Note:" 4 +This requires 1 additional API call per photo. .SS extractor.flickr.metadata @@ -3496,7 +3586,8 @@ for possible field names. .IP "Description:" 4 Extract additional \f[I]user\f[] profile metadata. -Note: This requires 1 additional API call per user profile. +.IP "Note:" 4 +This requires 1 additional API call per user profile. See \f[I]flickr.people.getInfo\f[] for details. @@ -3543,10 +3634,10 @@ Sets the maximum allowed size for downloaded images. .IP "Description:" 4 Controls the format of \f[I]description\f[] metadata fields. -.br -* \f[I]"text"\f[]: Plain text with HTML tags removed -.br -* \f[I]"html"\f[]: Raw HTML content +\f[I]"text"\f[] +Plain text with HTML tags removed +\f[I]"html"\f[] +Raw HTML content .SS extractor.furaffinity.external @@ -3580,9 +3671,15 @@ Follow external URLs linked in descriptions. A (comma-separated) list of subcategories to include when processing a user profile. -Possible values are -\f[I]"gallery"\f[], \f[I]"scraps"\f[], \f[I]"favorite"\f[]. +.IP "Supported Values:" 4 +.br +* \f[I]gallery\f[] +.br +* \f[I]scraps\f[] +.br +* \f[I]favorite\f[] +.IP "Note:" 4 It is possible to use \f[I]"all"\f[] instead of listing all values separately. @@ -3596,12 +3693,12 @@ It is possible to use \f[I]"all"\f[] instead of listing all values separately. .IP "Description:" 4 Selects which site layout to expect when parsing posts. -.br -* \f[I]"auto"\f[]: Automatically differentiate between \f[I]"old"\f[] and \f[I]"new"\f[] -.br -* \f[I]"old"\f[]: Expect the *old* site layout -.br -* \f[I]"new"\f[]: Expect the *new* site layout +\f[I]"auto"\f[] +Automatically differentiate between \f[I]"old"\f[] and \f[I]"new"\f[] +\f[I]"old"\f[] +Expect the *old* site layout +\f[I]"new"\f[] +Expect the *new* site layout .SS extractor.gelbooru.api-key & .user-id @@ -3628,12 +3725,10 @@ page. .IP "Description:" 4 Controls the order in which favorited posts are returned. -.br -* \f[I]"asc"\f[]: Ascending favorite date order (oldest first) -.br -* \f[I]"desc"\f[]: Descending favorite date order (newest first) -.br -* \f[I]"reverse"\f[]: Same as \f[I]"asc"\f[] +\f[I]"asc"\f[] +Ascending favorite date order (oldest first) +\f[I]"desc"\f[] | \f[I]"reverse"\f[] +Descending favorite date order (newest first) .SS extractor.generic.enabled @@ -3705,13 +3800,14 @@ To get this value: .br * Open your browser's Developer Tools (F12) .br -* Select Network -> XHR +* Select Network → XHR .br * Open a gallery page .br * Select the last Network entry and copy its \f[I]crt\f[] value -Note: You will also need your browser's +.IP "Note:" 4 +You will also need your browser's \f[I]user-agent\f[] @@ -3777,10 +3873,10 @@ to access \f[I]favorite\f[] galleries. .IP "Description:" 4 Controls the format of \f[I]description\f[] metadata fields. -.br -* \f[I]"text"\f[]: Plain text with HTML tags removed -.br -* \f[I]"html"\f[]: Raw HTML content +\f[I]"text"\f[] +Plain text with HTML tags removed +\f[I]"html"\f[] +Raw HTML content .SS extractor.hentaifoundry.include @@ -3803,9 +3899,17 @@ Controls the format of \f[I]description\f[] metadata fields. A (comma-separated) list of subcategories to include when processing a user profile. -Possible values are -\f[I]"pictures"\f[], \f[I]"scraps"\f[], \f[I]"stories"\f[], \f[I]"favorite"\f[]. +.IP "Supported Values:" 4 +.br +* \f[I]pictures\f[] +.br +* \f[I]scraps\f[] +.br +* \f[I]stories\f[] +.br +* \f[I]favorite\f[] +.IP "Note:" 4 It is possible to use \f[I]"all"\f[] instead of listing all values separately. @@ -3819,7 +3923,11 @@ It is possible to use \f[I]"all"\f[] instead of listing all values separately. .IP "Description:" 4 Selects which image format to download. -Available formats are \f[I]"webp"\f[] and \f[I]"avif"\f[]. +.IP "Available Formats:" 4 +.br +* \f[I]"webp"\f[] +.br +* \f[I]"avif"\f[] .SS extractor.imagechest.access-token @@ -3858,13 +3966,13 @@ Custom Client ID value for API requests. .IP "Description:" 4 Controls whether to choose the GIF or MP4 version of an animation. -.br -* \f[I]true\f[]: Follow Imgur's advice and choose MP4 if the +\f[I]true\f[] +Follow Imgur's advice and choose MP4 if the \f[I]prefer_video\f[] flag in an image's metadata is set. -.br -* \f[I]false\f[]: Always choose GIF. -.br -* \f[I]"always"\f[]: Always choose MP4. +\f[I]false\f[] +Always choose GIF. +\f[I]"always"\f[] +Always choose MP4. .SS extractor.inkbunny.orderby @@ -3891,10 +3999,10 @@ for details) .IP "Description:" 4 Selects which API endpoints to use. -.br -* \f[I]"rest"\f[]: REST API - higher-resolution media -.br -* \f[I]"graphql"\f[]: GraphQL API - lower-resolution media +\f[I]"rest"\f[] +REST API - higher-resolution media +\f[I]"graphql"\f[] +GraphQL API - lower-resolution media .SS extractor.instagram.cursor @@ -3944,15 +4052,23 @@ Start from the position defined by this value. A (comma-separated) list of subcategories to include when processing a user profile. -Possible values are -\f[I]"posts"\f[], -\f[I]"reels"\f[], -\f[I]"tagged"\f[], -\f[I]"stories"\f[], -\f[I]"highlights"\f[], -\f[I]"info"\f[], -\f[I]"avatar"\f[]. +.IP "Supported Values:" 4 +.br +* \f[I]posts\f[] +.br +* \f[I]reels\f[] +.br +* \f[I]tagged\f[] +.br +* \f[I]stories\f[] +.br +* \f[I]highlights\f[] +.br +* \f[I]info\f[] +.br +* \f[I]avatar\f[] +.IP "Note:" 4 It is possible to use \f[I]"all"\f[] instead of listing all values separately. @@ -3978,7 +4094,8 @@ Limit the number of posts to download. Provide extended \f[I]user\f[] metadata even when referring to a user by ID, e.g. \f[I]instagram.com/id:12345678\f[]. -Note: This metadata is always available when referring to a user by name, +.IP "Note:" 4 +This metadata is always available when referring to a user by name, e.g. \f[I]instagram.com/USERNAME\f[]. @@ -3992,14 +4109,13 @@ e.g. \f[I]instagram.com/USERNAME\f[]. .IP "Description:" 4 Controls the order in which files of each post are returned. -.br -* \f[I]"asc"\f[]: Same order as displayed in a post -.br -* \f[I]"desc"\f[]: Reverse order as displayed in a post -.br -* \f[I]"reverse"\f[]: Same as \f[I]"desc"\f[] +\f[I]"asc"\f[] +Same order as displayed in a post +\f[I]"desc"\f[] | \f[I]"reverse"\f[] +Reverse order as displayed in a post -Note: This option does *not* affect \f[I]{num}\f[]. +.IP "Note:" 4 +This option does *not* affect \f[I]{num}\f[]. To enumerate files in reverse order, use \f[I]count - num + 1\f[]. @@ -4013,18 +4129,17 @@ To enumerate files in reverse order, use \f[I]count - num + 1\f[]. .IP "Description:" 4 Controls the order in which posts are returned. -.br -* \f[I]"asc"\f[]: Same order as displayed -.br -* \f[I]"desc"\f[]: Reverse order as displayed -.br -* \f[I]"id"\f[] or \f[I]"id_asc"\f[]: Ascending order by ID -.br -* \f[I]"id_desc"\f[]: Descending order by ID -.br -* \f[I]"reverse"\f[]: Same as \f[I]"desc"\f[] +\f[I]"asc"\f[] +Same order as displayed +\f[I]"desc"\f[] | \f[I]"reverse"\f[] +Reverse order as displayed +\f[I]"id"\f[] or \f[I]"id_asc"\f[] +Ascending order by ID +\f[I]"id_desc"\f[] +Descending order by ID -Note: This option only affects \f[I]highlights\f[]. +.IP "Note:" 4 +This option only affects \f[I]highlights\f[]. .SS extractor.instagram.previews @@ -4059,6 +4174,43 @@ Download pre-merged video formats Do not download videos +.SS extractor.instagram.warn-images +.IP "Type:" 6 +.br +* \f[I]bool\f[] +.br +* \f[I]string\f[] + +.IP "Default:" 9 +\f[I]true\f[] + +.IP "Description:" 4 +Show a warning when downloading images +with a resolution smaller than the original. + +\f[I]true\f[] +Show a warning when at least one dimension +is smaller than the reported original resolution +\f[I]"all"\f[] | \f[I]"both"\f[] +Show a warning only when both \f[I]width\f[] and \f[I]height\f[] +are smaller than the reported original resolution +\f[I]false\f[] +Do not show a warning + + +.SS extractor.instagram.warn-videos +.IP "Type:" 6 +\f[I]bool\f[] + +.IP "Default:" 9 +\f[I]true\f[] + +.IP "Description:" 4 +Show a warning when downloading videos with a +\f[I]User-Agent\f[] +header causing potentially lowered video quality. + + .SS extractor.instagram.stories.split .IP "Type:" 6 .br @@ -4091,8 +4243,7 @@ Split \f[I]stories\f[] elements into separate posts. A (comma-separated) list of subcategories to include when processing a user profile. -Supported values are - +.IP "Supported Values:" 4 .br * \f[I]gallery\f[] .br @@ -4104,6 +4255,7 @@ Supported values are .br * \f[I]stars\f[] +.IP "Note:" 4 It is possible to use \f[I]"all"\f[] instead of listing all values separately. @@ -4132,15 +4284,15 @@ Download video files. A (comma-separated) list of subcategories to include when processing a user profile. -Possible values are - +.IP "Supported Values:" 4 .br -* \f[I]"user-images"\f[] +* \f[I]user-images\f[] .br -* \f[I]"user-videos"\f[] +* \f[I]user-videos\f[] .br -* \f[I]"user-playlists"\f[] +* \f[I]user-playlists\f[] +.IP "Note:" 4 It is possible to use \f[I]"all"\f[] instead of listing all values separately. @@ -4155,7 +4307,8 @@ It is possible to use \f[I]"all"\f[] instead of listing all values separately. Extract additional metadata for \f[I]archives\f[] files, including \f[I]file\f[], \f[I]file_list\f[], and \f[I]password\f[]. -Note: This requires 1 additional HTTP request per \f[I]archives\f[] file. +.IP "Note:" 4 +This requires 1 additional HTTP request per \f[I]archives\f[] file. .SS extractor.kemono.comments @@ -4168,7 +4321,8 @@ Note: This requires 1 additional HTTP request per \f[I]archives\f[] file. .IP "Description:" 4 Extract \f[I]comments\f[] metadata. -Note: This requires 1 additional HTTP request per post. +.IP "Note:" 4 +This requires 1 additional HTTP request per post. .SS extractor.kemono.duplicates @@ -4265,7 +4419,13 @@ Available types are \f[I]artist\f[], and \f[I]post\f[]. .IP "Description:" 4 Determines the type and order of files to be downloaded. -Available types are \f[I]file\f[], \f[I]attachments\f[], and \f[I]inline\f[]. +.IP "Available Types:" 4 +.br +* \f[I]file\f[] +.br +* \f[I]attachments\f[] +.br +* \f[I]inline\f[] .SS extractor.kemono.max-posts @@ -4305,7 +4465,8 @@ Extract post revisions. Set this to \f[I]"unique"\f[] to filter out duplicate revisions. -Note: This requires 1 additional HTTP request per post. +.IP "Note:" 4 +This requires 1 additional HTTP request per post. .SS extractor.kemono.order-revisions @@ -4414,7 +4575,7 @@ The server to use for API requests. .SS extractor.mangadex.api-parameters .IP "Type:" 6 -\f[I]object\f[] (name -> value) +\f[I]object\f[] (name → value) .IP "Example:" 4 {"order[updatedAt]": "desc"} @@ -4442,8 +4603,7 @@ and \f[I]/user/follows/manga/feed\f[]) * ["fr", "it"] .IP "Description:" 4 -\f[I]ISO 639-1\f[] language codes -to filter chapters by. +\f[I]ISO 639-1\f[] code(s) to filter chapters by. .SS extractor.mangadex.ratings @@ -4468,6 +4628,31 @@ to filter chapters by. List of acceptable content ratings for returned chapters. +.SS extractor.mangafire.manga.lang +.IP "Type:" 6 +\f[I]string\f[] + +.IP "Default:" 9 +\f[I]"en"\f[] + +.IP "Description:" 4 +\f[I]ISO 639-1\f[] code selecting which chapters to download. + + +.SS extractor.mangareader.manga.lang +.IP "Type:" 6 +\f[I]string\f[] + +.IP "Default:" 9 +\f[I]"en"\f[] + +.IP "Example:" 4 +"pt-br" + +.IP "Description:" 4 +\f[I]ISO 639-1\f[] code selecting which chapters to download. + + .SS extractor.mangapark.source .IP "Type:" 6 .br @@ -4504,10 +4689,9 @@ Specifying the numeric \f[I]ID\f[] of a source is also supported. The \f[I]access-token\f[] value you get from \f[I]linking your account to gallery-dl\f[]. -Note: gallery-dl comes with built-in tokens for \f[I]mastodon.social\f[], -\f[I]pawoo\f[] and \f[I]baraag\f[]. For other instances, you need to obtain an -\f[I]access-token\f[] in order to use usernames in place of numerical -user IDs. +.IP "Note:" 4 +gallery-dl comes with built-in tokens for +\f[I]mastodon.social\f[], \f[I]pawoo\f[], and \f[I]baraag\f[]. .SS extractor.[mastodon].cards @@ -4582,12 +4766,17 @@ Your access token, necessary to fetch favorited notes. A (comma-separated) list of subcategories to include when processing a user profile. -Possible values are -\f[I]"info"\f[], -\f[I]"avatar"\f[], -\f[I]"background"\f[], -\f[I]"notes"\f[], +.IP "Supported Values:" 4 +.br +* \f[I]info\f[] +.br +* \f[I]avatar\f[] +.br +* \f[I]background\f[] +.br +* \f[I]notes\f[] +.IP "Note:" 4 It is possible to use \f[I]"all"\f[] instead of listing all values separately. @@ -4623,7 +4812,8 @@ Fetch media from replies to other notes. .IP "Description:" 4 Extract extended \f[I]pool\f[] metadata. -Note: Not supported by all \f[I]moebooru\f[] instances. +.IP "Note:" 4 +Not supported by all \f[I]moebooru\f[] instances. .SS extractor.naver-blog.videos @@ -4706,9 +4896,17 @@ until an available format is found. A (comma-separated) list of subcategories to include when processing a user profile. -Possible values are -\f[I]"art"\f[], \f[I]"audio"\f[], \f[I]"games"\f[], \f[I]"movies"\f[]. +.IP "Supported Values:" 4 +.br +* \f[I]art\f[] +.br +* \f[I]audio\f[] +.br +* \f[I]games\f[] +.br +* \f[I]movies\f[] +.IP "Note:" 4 It is possible to use \f[I]"all"\f[] instead of listing all values separately. @@ -4726,9 +4924,17 @@ It is possible to use \f[I]"all"\f[] instead of listing all values separately. A (comma-separated) list of subcategories to include when processing a user profile. -Possible values are -\f[I]"illustration"\f[], \f[I]"doujin"\f[], \f[I]"favorite"\f[], \f[I]"nuita"\f[]. +.IP "Supported Values:" 4 +.br +* \f[I]illustration\f[] +.br +* \f[I]doujin\f[] +.br +* \f[I]favorite\f[] +.br +* \f[I]nuita\f[] +.IP "Note:" 4 It is possible to use \f[I]"all"\f[] instead of listing all values separately. @@ -4767,12 +4973,12 @@ Fetch media from Retweets. .IP "Description:" 4 Control video download behavior. -.br -* \f[I]true\f[]: Download videos -.br -* \f[I]"ytdl"\f[]: Download videos using \f[I]ytdl\f[] -.br -* \f[I]false\f[]: Skip video Tweets +\f[I]true\f[] +Download videos +\f[I]"ytdl"\f[] +Download videos using \f[I]ytdl\f[] +\f[I]false\f[] +Skip video Tweets .SS extractor.oauth.browser @@ -4785,11 +4991,11 @@ Control video download behavior. .IP "Description:" 4 Controls how a user is directed to an OAuth authorization page. -.br -* \f[I]true\f[]: Use Python's \f[I]webbrowser.open()\f[] method to automatically +\f[I]true\f[] +Use Python's \f[I]webbrowser.open()\f[] method to automatically open the URL in the user's default browser. -.br -* \f[I]false\f[]: Ask the user to copy & paste an URL from the terminal. +\f[I]false\f[] +Ask the user to copy & paste an URL from the terminal. .SS extractor.oauth.cache @@ -4825,7 +5031,8 @@ Host name / IP address to bind to during OAuth authorization. .IP "Description:" 4 Port number to listen on during OAuth authorization. -Note: All redirects will go to port \f[I]6414\f[], regardless +.IP "Note:" 4 +All redirects will go to port \f[I]6414\f[], regardless of the port specified here. You'll have to manually adjust the port number in your browser's address bar when using a different port than the default. @@ -4841,7 +5048,8 @@ port than the default. .IP "Description:" 4 Extract additional metadata (\f[I]source\f[], \f[I]uploader\f[]) -Note: This requires 1 additional HTTP request per post. +.IP "Note:" 4 +This requires 1 additional HTTP request per post. .SS extractor.patreon.cursor @@ -4881,8 +5089,7 @@ Start from the position defined by this value. .IP "Description:" 4 Determines types and order of files to download. -Available types: - +.IP "Available Types:" 4 .br * \f[I]postfile\f[] .br @@ -4905,8 +5112,7 @@ Available types: .IP "Description:" 4 Selects the format of \f[I]images\f[] \f[I]files\f[]. -Possible formats: - +.IP "Available Formats:" 4 .br * \f[I]download_url\f[] (\f[I]"a":1,"p":1\f[]) .br @@ -5107,14 +5313,21 @@ Recursively download files from subfolders. A (comma-separated) list of subcategories to include when processing a user profile. -Possible values are -\f[I]"artworks"\f[], -\f[I]"avatar"\f[], -\f[I]"background"\f[], -\f[I]"favorite"\f[], -\f[I]"novel-user"\f[], -\f[I]"novel-bookmark"\f[]. +.IP "Supported Values:" 4 +.br +* \f[I]artworks\f[] +.br +* \f[I]avatar\f[] +.br +* \f[I]background\f[] +.br +* \f[I]favorite\f[] +.br +* \f[I]novel-user\f[] +.br +* \f[I]novel-bookmark\f[] +.IP "Note:" 4 It is possible to use \f[I]"all"\f[] instead of listing all values separately. @@ -5152,7 +5365,8 @@ For works bookmarked by \f[I]your own account\f[], fetch bookmark tags as \f[I]tags_bookmark\f[] metadata. -Note: This requires 1 additional API request per bookmarked post. +.IP "Note:" 4 +This requires 1 additional API request per bookmarked post. .SS extractor.pixiv.captions @@ -5177,7 +5391,8 @@ try to grab the actual \f[I]caption\f[] value using the AJAX API. .IP "Description:" 4 Fetch \f[I]comments\f[] metadata. -Note: This requires 1 or more additional API requests per post, +.IP "Note:" 4 +This requires 1 or more additional API requests per post, depending on the number of comments. @@ -5266,7 +5481,8 @@ Try to fetch \f[I]limit_sanity_level\f[] works via web API. .IP "Description:" 4 Fetch \f[I]comments\f[] metadata. -Note: This requires 1 or more additional API requests per novel, +.IP "Note:" 4 +This requires 1 or more additional API requests per novel, depending on the number of comments. @@ -5341,7 +5557,8 @@ For novels bookmarked by \f[I]your own account\f[], fetch bookmark tags as \f[I]tags_bookmark\f[] metadata. -Note: This requires 1 additional API request per bookmarked post. +.IP "Note:" 4 +This requires 1 additional API request per bookmarked post. .SS extractor.pixiv-novel.refresh-token @@ -5421,10 +5638,10 @@ to download as mp4 videos. .IP "Description:" 4 Controls how to handle redirects to CAPTCHA pages. -.br -* \f[I]"stop\f[]: Stop the current extractor run. -.br -* \f[I]"wait\f[]: Ask the user to solve the CAPTCHA and wait. +\f[I]"stop\f[] +Stop the current extractor run. +\f[I]"wait\f[] +Ask the user to solve the CAPTCHA and wait. .SS extractor.readcomiconline.quality @@ -5499,7 +5716,8 @@ time required when scanning a subreddit. Retrieve additional comments by resolving the \f[I]more\f[] comment stubs in the base comment tree. -Note: This requires 1 additional API call for every 100 extra comments. +.IP "Note:" 4 +This requires 1 additional API call for every 100 extra comments. .SS extractor.reddit.embeds @@ -5576,12 +5794,11 @@ Reddit extractors can recursively visit other submissions linked to in the initial set of submissions. This value sets the maximum recursion depth. -Special values: - -.br -* \f[I]0\f[]: Recursion is disabled -.br -* \f[I]-1\f[]: Infinite recursion (don't do this) +.IP "Special Values:" 4 +\f[I]0\f[] +Recursion is disabled +\f[I]-1\f[] +Infinite recursion (don't do this) .SS extractor.reddit.refresh-token @@ -5629,18 +5846,19 @@ Follow links in the original post's \f[I]selftext\f[]. .IP "Description:" 4 Control video download behavior. -.br -* \f[I]true\f[]: Download videos and use \f[I]ytdl\f[] to handle +\f[I]true\f[] +Download videos and use \f[I]ytdl\f[] to handle HLS and DASH manifests -.br -* \f[I]"ytdl"\f[]: Download videos and let \f[I]ytdl\f[] handle all of +\f[I]"ytdl"\f[] +Download videos and let \f[I]ytdl\f[] handle all of video extraction and download -.br -* \f[I]"dash"\f[]: Extract DASH manifest URLs and use \f[I]ytdl\f[] +\f[I]"dash"\f[] +Extract DASH manifest URLs and use \f[I]ytdl\f[] to download and merge them. (*) -.br -* \f[I]false\f[]: Ignore videos +\f[I]false\f[] +Ignore videos +.IP "Note:" 4 (*) This saves 1 HTTP request per video and might potentially be able to download otherwise deleted videos, @@ -5658,13 +5876,7 @@ but it will not always get the best video quality available. \f[I]["hd", "sd", "gif"]\f[] .IP "Description:" 4 -List of names of the preferred animation format, which can be -\f[I]"hd"\f[], -\f[I]"sd"\f[], -\f[I]"gif"\f[], -\f[I]"thumbnail"\f[], -\f[I]"vthumbnail"\f[], or -\f[I]"poster"\f[]. +List of names of the preferred animation format.` If a selected format is not available, the next one in the list will be tried until an available format is found. @@ -5673,6 +5885,20 @@ If the format is given as \f[I]string\f[], it will be extended with \f[I]["hd", "sd", "gif"]\f[]. Use a list with one element to restrict it to only one possible format. +.IP "Available Formats:" 4 +.br +* \f[I]"hd"\f[] +.br +* \f[I]"sd"\f[] +.br +* \f[I]"gif"\f[] +.br +* \f[I]"thumbnail"\f[] +.br +* \f[I]"vthumbnail"\f[] +.br +* \f[I]"poster"\f[] + .SS extractor.rule34.api-key & .user-id .IP "Type:" 6 @@ -5735,7 +5961,7 @@ Refresh download URLs before they expire. .IP "Description:" 4 Group \f[I]tags\f[] by type and .br -provide them as \f[I]tags_TYPE\f[] and \f[I]tag_string_TYPE\f[] metadata fields, +provide them as \f[I]tags_<type>\f[] and \f[I]tag_string_TYPE\f[] metadata fields, for example \f[I]tags_artist\f[] and \f[I]tags_character\f[]. .br @@ -5756,7 +5982,7 @@ Requires: .br * 1 additional HTTP request per post .br -* logged-in \f[I]cookies\f[] +* authenticated \f[I]cookies\f[] to fetch full \f[I]tags\f[] category data \f[I]false\f[] @@ -5804,13 +6030,14 @@ To get this value: .br * Open your browser's Developer Tools (F12) .br -* Select Network -> XHR +* Select Network → XHR .br * Open a gallery page .br * Select the last Network entry and copy its \f[I]crt\f[] value -Note: You will also need your browser's +.IP "Note:" 4 +You will also need your browser's \f[I]user-agent\f[] @@ -5829,10 +6056,17 @@ Name(s) of the image format to download. When more than one format is given, the first available one is selected. -Possible formats are +.IP "Formats:" 4 .br -\f[I]"780"\f[], \f[I]"980"\f[], \f[I]"1280"\f[], \f[I]"1600"\f[], \f[I]"0"\f[] (original) +* \f[I]"780"\f[] +.br +* \f[I]"980"\f[] .br +* \f[I]"1280"\f[] +.br +* \f[I]"1600"\f[] +.br +* \f[I]"0"\f[] (original) .SS extractor.schalenetwork.tags @@ -5962,13 +6196,13 @@ if \f[I]sent-requests\f[] are enabled A (comma-separated) list of subcategories to include when processing a user profile. -Possible values are - +.IP "Supported Values:" 4 .br -* \f[I]"works"\f[] +* \f[I]works\f[] .br -* \f[I]"sentrequests"\f[] +* \f[I]sentrequests\f[] +.IP "Note:" 4 It is possible to use \f[I]"all"\f[] instead of listing all values separately. @@ -6030,7 +6264,8 @@ Download video files. \f[I]true\f[] .IP "Description:" 4 -Include animated assets when downloading from a list of assets. +Include \f[I]animated\f[] assets +when downloading from a list of assets. .SS extractor.steamgriddb.epilepsy @@ -6041,7 +6276,8 @@ Include animated assets when downloading from a list of assets. \f[I]true\f[] .IP "Description:" 4 -Include assets tagged with epilepsy when downloading from a list of assets. +Include assets tagged with \f[I]epilepsy\f[] +when downloading from a list of assets. .SS extractor.steamgriddb.dimensions @@ -6054,31 +6290,39 @@ Include assets tagged with epilepsy when downloading from a list of assets. .IP "Default:" 9 \f[I]"all"\f[] -.IP "Examples:" 4 +.IP "Example:" 4 .br -* \f[I]"1024x512,512x512"\f[] +* "1024x512,512x512" .br -* \f[I]["460x215", "920x430"]\f[] +* ["460x215", "920x430"] .IP "Description:" 4 Only include assets that are in the specified dimensions. \f[I]all\f[] can be -used to specify all dimensions. Valid values are: - -.br -* Grids: \f[I]460x215\f[], \f[I]920x430\f[], \f[I]600x900\f[], \f[I]342x482\f[], \f[I]660x930\f[], -\f[I]512x512\f[], \f[I]1024x1024\f[] -.br -* Heroes: \f[I]1920x620\f[], \f[I]3840x1240\f[], \f[I]1600x650\f[] -.br -* Logos: N/A (will be ignored) -.br -* Icons: \f[I]8x8\f[], \f[I]10x10\f[], \f[I]14x14\f[], \f[I]16x16\f[], \f[I]20x20\f[], \f[I]24x24\f[], -\f[I]28x28\f[], \f[I]32x32\f[], \f[I]35x35\f[], \f[I]40x40\f[], \f[I]48x48\f[], \f[I]54x54\f[], -\f[I]56x56\f[], \f[I]57x57\f[], \f[I]60x60\f[], \f[I]64x64\f[], \f[I]72x72\f[], \f[I]76x76\f[], -\f[I]80x80\f[], \f[I]90x90\f[], \f[I]96x96\f[], \f[I]100x100\f[], \f[I]114x114\f[], \f[I]120x120\f[], -\f[I]128x128\f[], \f[I]144x144\f[], \f[I]150x150\f[], \f[I]152x152\f[], \f[I]160x160\f[], -\f[I]180x180\f[], \f[I]192x192\f[], \f[I]194x194\f[], \f[I]256x256\f[], \f[I]310x310\f[], -\f[I]512x512\f[], \f[I]768x768\f[], \f[I]1024x1024\f[] +used to specify all dimensions. + +.IP "Valid Values:" 4 +Grids +\f[I]460x215\f[] \f[I] +\f[I]920x430\f[] \f[] +\f[I]342x482\f[] \f[I] +\f[I]600x900\f[] \f[] +\f[I]660x930\f[] \f[I] +\f[I]512x512\f[] \f[] +\f[I]1024x1024\f[] +Heroes +\f[I]1600x650\f[] \f[I] +\f[I]1920x620\f[] \f[] +\f[I]3840x1240\f[] +Logos +N/A (will be ignored) +Icons +\f[I]8x8\f[] \f[I] \f[I]10x10\f[] \f[] \f[I]14x14\f[] \f[I] \f[I]16x16\f[] \f[] \f[I]20x20\f[] \f[I] \f[I]24x24\f[] \f[] +\f[I]28x28\f[] \f[I] \f[I]32x32\f[] \f[] \f[I]35x35\f[] \f[I] \f[I]40x40\f[] \f[] \f[I]48x48\f[] \f[I] \f[I]54x54\f[] \f[] +\f[I]56x56\f[] \f[I] \f[I]57x57\f[] \f[] \f[I]60x60\f[] \f[I] \f[I]64x64\f[] \f[] \f[I]72x72\f[] \f[I] \f[I]76x76\f[] \f[] +\f[I]80x80\f[] \f[I] \f[I]90x90\f[] \f[] \f[I]96x96\f[] \f[I] \f[I]100x100\f[] \f[] \f[I]114x114\f[] \f[I] \f[I]120x120\f[] \f[] +\f[I]128x128\f[] \f[I] \f[I]144x144\f[] \f[] \f[I]150x150\f[] \f[I] \f[I]152x152\f[] \f[] \f[I]160x160\f[] \f[I] +\f[I]180x180\f[] \f[] \f[I]192x192\f[] \f[I] \f[I]194x194\f[] \f[] \f[I]256x256\f[] \f[I] \f[I]310x310\f[] \f[] +\f[I]512x512\f[] \f[I] \f[I]768x768\f[] \f[] \f[I]1024x1024\f[] .SS extractor.steamgriddb.file-types @@ -6091,24 +6335,25 @@ used to specify all dimensions. Valid values are: .IP "Default:" 9 \f[I]"all"\f[] -.IP "Examples:" 4 +.IP "Example:" 4 .br -* \f[I]"png,jpeg"\f[] +* "png,jpeg" .br -* \f[I]["jpeg", "webp"]\f[] +* ["jpeg", "webp"] .IP "Description:" 4 Only include assets that are in the specified file types. \f[I]all\f[] can be -used to specify all file types. Valid values are: +used to specify all file types. -.br -* Grids: \f[I]png\f[], \f[I]jpeg\f[], \f[I]jpg\f[], \f[I]webp\f[] -.br -* Heroes: \f[I]png\f[], \f[I]jpeg\f[], \f[I]jpg\f[], \f[I]webp\f[] -.br -* Logos: \f[I]png\f[], \f[I]webp\f[] -.br -* Icons: \f[I]png\f[], \f[I]ico\f[] +.IP "Valid Values:" 4 +Grids +\f[I]png\f[] \f[I] \f[I]jpeg\f[] \f[] \f[I]jpg\f[] \f[I] \f[I]webp\f[] +Heroes +\f[I]png\f[] \f[] \f[I]jpeg\f[] \f[I] \f[I]jpg\f[] \f[] \f[I]webp\f[] +Logos +\f[I]png\f[] \f[I] \f[I]webp\f[] +Icons +\f[I]png\f[] \f[] \f[I]ico\f[] .SS extractor.steamgriddb.download-fake-png @@ -6130,7 +6375,8 @@ Download fake PNGs alongside the real file. \f[I]true\f[] .IP "Description:" 4 -Include assets tagged with humor when downloading from a list of assets. +Include assets tagged with \f[I]humor\f[] +when downloading from a list of assets. .SS extractor.steamgriddb.languages @@ -6143,16 +6389,20 @@ Include assets tagged with humor when downloading from a list of assets. .IP "Default:" 9 \f[I]"all"\f[] -.IP "Examples:" 4 +.IP "Example:" 4 .br -* \f[I]"en,km"\f[] +* "en,km" .br -* \f[I]["fr", "it"]\f[] +* ["fr", "it"] .IP "Description:" 4 -Only include assets that are in the specified languages. \f[I]all\f[] can be -used to specify all languages. Valid values are \f[I]ISO 639-1\f[] -language codes. +Only include assets that are in the specified languages. + +.IP "Valid Values:" 4 +\f[I]ISO 639-1\f[] codes + +.IP "Note:" 4 +\f[I]all\f[] can be used to specify all languages. .SS extractor.steamgriddb.nsfw @@ -6171,23 +6421,24 @@ Include assets tagged with adult content when downloading from a list of assets. \f[I]string\f[] .IP "Default:" 9 -\f[I]score_desc\f[] +\f[I]"score_desc"\f[] .IP "Description:" 4 -Set the chosen sorting method when downloading from a list of assets. Can be one of: +Set the chosen sorting method when downloading from a list of assets. +.IP "Supported Values:" 4 .br -* \f[I]score_desc\f[] (Highest Score (Beta)) +* \f[I]score_desc\f[] (Highest Score (Beta)) .br -* \f[I]score_asc\f[] (Lowest Score (Beta)) +* \f[I]score_asc\f[] (Lowest Score (Beta)) .br * \f[I]score_old_desc\f[] (Highest Score (Old)) .br -* \f[I]score_old_asc\f[] (Lowest Score (Old)) +* \f[I]score_old_asc\f[] (Lowest Score (Old)) .br -* \f[I]age_desc\f[] (Newest First) +* \f[I]age_desc\f[] (Newest First) .br -* \f[I]age_asc\f[] (Oldest First) +* \f[I]age_asc\f[] (Oldest First) .SS extractor.steamgriddb.static @@ -6201,36 +6452,6 @@ Set the chosen sorting method when downloading from a list of assets. Can be one Include static assets when downloading from a list of assets. -.SS extractor.steamgriddb.styles -.IP "Type:" 6 -.br -* \f[I]string\f[] -.br -* \f[I]list\f[] of \f[I]strings\f[] - -.IP "Default:" 9 -\f[I]all\f[] - -.IP "Examples:" 4 -.br -* \f[I]white,black\f[] -.br -* \f[I]["no_logo", "white_logo"]\f[] - -.IP "Description:" 4 -Only include assets that are in the specified styles. \f[I]all\f[] can be used -to specify all styles. Valid values are: - -.br -* Grids: \f[I]alternate\f[], \f[I]blurred\f[], \f[I]no_logo\f[], \f[I]material\f[], \f[I]white_logo\f[] -.br -* Heroes: \f[I]alternate\f[], \f[I]blurred\f[], \f[I]material\f[] -.br -* Logos: \f[I]official\f[], \f[I]white\f[], \f[I]black\f[], \f[I]custom\f[] -.br -* Icons: \f[I]official\f[], \f[I]custom\f[] - - .SS extractor.steamgriddb.untagged .IP "Type:" 6 \f[I]bool\f[] @@ -6269,8 +6490,7 @@ List of names of the preferred animation format. If a selected format is not available, the next one in the list will be tried until a format is found. -Possible formats include - +.IP "Available Formats:" 4 .br * \f[I]gif\f[] .br @@ -6312,12 +6532,12 @@ Possible formats include .IP "Description:" 4 Controls audio download behavior. -.br -* \f[I]true\f[]: Download audio tracks -.br -* \f[I]"ytdl"\f[]: Download audio tracks using \f[I]ytdl\f[] -.br -* \f[I]false\f[]: Ignore audio tracks +\f[I]true\f[] +Download audio tracks +\f[I]"ytdl"\f[] +Download audio tracks using \f[I]ytdl\f[] +\f[I]false\f[] +Ignore audio tracks .SS extractor.tiktok.videos @@ -6461,15 +6681,15 @@ use an extra HTTP request to find the URL to its full-resolution version. .IP "Description:" 4 Controls how to paginate over blog posts. -.br -* \f[I]"api"\f[]: \f[I]next\f[] parameter provided by the API +\f[I]"api"\f[] +\f[I]next\f[] parameter provided by the API (potentially misses posts due to a \f[I]bug\f[] in Tumblr's API) -.br -* \f[I]"before"\f[]: timestamp of last post -.br -* \f[I]"offset"\f[]: post offset number +\f[I]"before"\f[] +Timestamp of last post +\f[I]"offset"\f[] +Post offset number .SS extractor.tumblr.ratelimit @@ -6482,10 +6702,10 @@ in Tumblr's API) .IP "Description:" 4 Selects how to handle exceeding the daily API rate limit. -.br -* \f[I]"abort"\f[]: Raise an error and stop extraction -.br -* \f[I]"wait"\f[]: Wait until rate limit reset +\f[I]"abort"\f[] +Raise an error and stop extraction +\f[I]"wait"\f[] +Wait until rate limit reset .SS extractor.tumblr.reblogs @@ -6499,12 +6719,12 @@ Selects how to handle exceeding the daily API rate limit. \f[I]true\f[] .IP "Description:" 4 -.br -* \f[I]true\f[]: Extract media from reblogged posts -.br -* \f[I]false\f[]: Skip reblogged posts -.br -* \f[I]"same-blog"\f[]: Skip reblogged posts unless the original post +\f[I]true\f[] +Extract media from reblogged posts +\f[I]false\f[] +Skip reblogged posts +\f[I]"same-blog"\f[] +Skip reblogged posts unless the original post is from the same blog @@ -6623,13 +6843,12 @@ Fetch media from promoted Tweets. .IP "Description:" 4 Controls how to handle \f[I]Twitter Cards\f[]. -.br -* \f[I]false\f[]: Ignore cards -.br -* \f[I]true\f[]: Download image content from supported cards -.br -* \f[I]"ytdl"\f[]: Additionally download video content from unsupported cards -using \f[I]ytdl\f[] +\f[I]false\f[] +Ignore cards +\f[I]true\f[] +Download image content from supported cards +\f[I]"ytdl"\f[] +Additionally download video content from unsupported cards using \f[I]ytdl\f[] .SS extractor.twitter.cards-blacklist @@ -6683,10 +6902,10 @@ if the given initial Tweet is accessible. .IP "Description:" 4 Controls how to handle Cross Site Request Forgery (CSRF) tokens. -.br -* \f[I]"auto"\f[]: Always auto-generate a token. -.br -* \f[I]"cookies"\f[]: Use token given by the \f[I]ct0\f[] cookie if present. +\f[I]"auto"\f[] +Always auto-generate a token. +\f[I]"cookies"\f[] +Use token given by the \f[I]ct0\f[] cookie if present. .SS extractor.twitter.cursor @@ -6735,7 +6954,8 @@ as running \f[I]gallery-dl https://twitter.com/i/web/status/<TweetID>\f[] with enabled \f[I]conversations\f[] option for each Tweet in said timeline. -Note: This requires at least 1 additional API call per initial Tweet. +.IP "Note:" 4 +This requires at least 1 additional API call per initial Tweet. .SS extractor.twitter.unavailable @@ -6770,27 +6990,27 @@ e.g. \f[I]Geoblocked\f[] videos. A (comma-separated) list of subcategories to include when processing a user profile. -Possible values are - +.IP "Supported Values:" 4 .br -* \f[I]"info"\f[] +* \f[I]info\f[] .br -* \f[I]"avatar"\f[] +* \f[I]avatar\f[] .br -* \f[I]"background"\f[] +* \f[I]background\f[] .br -* \f[I]"timeline"\f[] +* \f[I]timeline\f[] .br -* \f[I]"tweets"\f[] +* \f[I]tweets\f[] .br -* \f[I]"media"\f[] +* \f[I]media\f[] .br -* \f[I]"replies"\f[] +* \f[I]replies\f[] .br -* \f[I]"highlights"\f[] +* \f[I]highlights\f[] .br -* \f[I]"likes"\f[] +* \f[I]likes\f[] +.IP "Note:" 4 It is possible to use \f[I]"all"\f[] instead of listing all values separately. @@ -6815,12 +7035,12 @@ Transform Tweet and User metadata into a simpler, uniform format. .IP "Description:" 4 Selects the API endpoint used to retrieve single Tweets. -.br -* \f[I]"restid"\f[]: \f[I]/TweetResultByRestId\f[] - accessible to guest users -.br -* \f[I]"detail"\f[]: \f[I]/TweetDetail\f[] - more stable -.br -* \f[I]"auto"\f[]: \f[I]"detail"\f[] when logged in, \f[I]"restid"\f[] otherwise +\f[I]"restid"\f[] +\f[I]/TweetResultByRestId\f[] - accessible to guest users +\f[I]"detail"\f[] +\f[I]/TweetDetail\f[] - more stable +\f[I]"auto"\f[] +\f[I]"detail"\f[] when logged in, \f[I]"restid"\f[] otherwise .SS extractor.twitter.size @@ -6899,12 +7119,12 @@ a quoted (original) Tweet when it sees the Tweet which quotes it. .IP "Description:" 4 Selects how to handle exceeding the API rate limit. -.br -* \f[I]"abort"\f[]: Raise an error and stop extraction -.br -* \f[I]"wait"\f[]: Wait until rate limit reset -.br -* \f[I]"wait:N"\f[]: Wait for \f[I]N\f[] seconds +\f[I]"abort"\f[] +Raise an error and stop extraction +\f[I]"wait"\f[] +Wait until rate limit reset +\f[I]"wait:N"\f[] +Wait for \f[I]N\f[] seconds .SS extractor.twitter.relogin @@ -6931,10 +7151,10 @@ try to continue from where it left off. .IP "Description:" 4 Selects how to handle "account is temporarily locked" errors. -.br -* \f[I]"abort"\f[]: Raise an error and stop extraction -.br -* \f[I]"wait"\f[]: Wait until the account is unlocked and retry +\f[I]"abort"\f[] +Raise an error and stop extraction +\f[I]"wait"\f[] +Wait until the account is unlocked and retry .SS extractor.twitter.replies @@ -6950,7 +7170,8 @@ Fetch media from replies to other Tweets. If this value is \f[I]"self"\f[], only consider replies where reply and original Tweet are from the same user. -Note: Twitter will automatically expand conversations if you +.IP "Note:" 4 +Twitter will automatically expand conversations if you use the \f[I]/with_replies\f[] timeline while logged in. For example, media from Tweets which the user replied to will also be downloaded. @@ -7026,14 +7247,14 @@ to accept before stopping. Controls the strategy / tweet source used for timeline URLs (\f[I]https://twitter.com/USER/timeline\f[]). -.br -* \f[I]"tweets"\f[]: \f[I]/tweets\f[] timeline + search -.br -* \f[I]"media"\f[]: \f[I]/media\f[] timeline + search -.br -* \f[I]"with_replies"\f[]: \f[I]/with_replies\f[] timeline + search -.br -* \f[I]"auto"\f[]: \f[I]"tweets"\f[] or \f[I]"media"\f[], depending on \f[I]retweets\f[] and \f[I]text-tweets\f[] settings +\f[I]"tweets"\f[] +\f[I]/tweets\f[] timeline + search +\f[I]"media"\f[] +\f[I]/media\f[] timeline + search +\f[I]"with_replies"\f[] +\f[I]/with_replies\f[] timeline + search +\f[I]"auto"\f[] +\f[I]"tweets"\f[] or \f[I]"media"\f[], depending on \f[I]retweets\f[] and \f[I]text-tweets\f[] settings .SS extractor.twitter.text-tweets @@ -7082,7 +7303,7 @@ Alternate Identifier (username, email, phone number) when \f[I]logging in\f[]. When not specified and asked for by Twitter, -this identifier will need to entered in an interactive prompt. +this identifier will need to be entered in an interactive prompt. .SS extractor.twitter.users @@ -7096,25 +7317,25 @@ this identifier will need to entered in an interactive prompt. "https://twitter.com/search?q=from:{legacy[screen_name]}" .IP "Description:" 4 -Format string for user URLs generated from +Basic format string for user URLs generated from .br \f[I]following\f[] and \f[I]list-members\f[] queries, whose replacement field values come from Twitter \f[I]user\f[] objects .br (\f[I]Example\f[]) -Special values: - -.br -* \f[I]"user"\f[]: \f[I]https://twitter.com/i/user/{rest_id}\f[] -.br -* \f[I]"timeline"\f[]: \f[I]https://twitter.com/id:{rest_id}/timeline\f[] -.br -* \f[I]"tweets"\f[]: \f[I]https://twitter.com/id:{rest_id}/tweets\f[] -.br -* \f[I]"media"\f[]: \f[I]https://twitter.com/id:{rest_id}/media\f[] +.IP "Special Values:" 4 +\f[I]"user"\f[] +\f[I]https://twitter.com/i/user/{rest_id}\f[] +\f[I]"timeline"\f[] +\f[I]https://twitter.com/id:{rest_id}/timeline\f[] +\f[I]"tweets"\f[] +\f[I]https://twitter.com/id:{rest_id}/tweets\f[] +\f[I]"media"\f[] +\f[I]https://twitter.com/id:{rest_id}/media\f[] -Note: To allow gallery-dl to follow custom URL formats, set the \f[I]blacklist\f[] +.IP "Note:" 4 +To allow gallery-dl to follow custom URL formats, set the \f[I]blacklist\f[] for \f[I]twitter\f[] to a non-default value, e.g. an empty string \f[I]""\f[]. @@ -7131,12 +7352,12 @@ for \f[I]twitter\f[] to a non-default value, e.g. an empty string \f[I]""\f[]. .IP "Description:" 4 Control video download behavior. -.br -* \f[I]true\f[]: Download videos -.br -* \f[I]"ytdl"\f[]: Download videos using \f[I]ytdl\f[] -.br -* \f[I]false\f[]: Skip video Tweets +\f[I]true\f[] +Download videos +\f[I]"ytdl"\f[] +Download videos using \f[I]ytdl\f[] +\f[I]false\f[] +Skip video Tweets .SS extractor.unsplash.format @@ -7149,8 +7370,17 @@ Control video download behavior. .IP "Description:" 4 Name of the image format to download. -Available formats are -\f[I]"raw"\f[], \f[I]"full"\f[], \f[I]"regular"\f[], \f[I]"small"\f[], and \f[I]"thumb"\f[]. +.IP "Available Formats:" 4 +.br +* \f[I]"raw"\f[] +.br +* \f[I]"full"\f[] +.br +* \f[I]"regular"\f[] +.br +* \f[I]"small"\f[] +.br +* \f[I]"thumb"\f[] .SS extractor.vipergirls.domain @@ -7176,7 +7406,8 @@ For example \f[I]"viper.click"\f[] if the main domain is blocked or to bypass Cl .IP "Description:" 4 Automatically like posts after downloading their images. -Note: Requires \f[I]login\f[] +.IP "Note:" 4 +Requires \f[I]login\f[] or \f[I]cookies\f[] @@ -7228,12 +7459,17 @@ Custom \f[I]offset\f[] starting value when paginating over image results. A (comma-separated) list of subcategories to include when processing a user profile. -Possible values are -\f[I]"avatar"\f[], -\f[I]"gallery"\f[], -\f[I]"spaces"\f[], -\f[I]"collection"\f[], +.IP "Supported Values:" 4 +.br +* \f[I]avatar\f[] +.br +* \f[I]gallery\f[] +.br +* \f[I]spaces\f[] +.br +* \f[I]collection\f[] +.IP "Note:" 4 It is possible to use \f[I]"all"\f[] instead of listing all values separately. @@ -7282,9 +7518,13 @@ See https://wallhaven.cc/help/api for more information. A (comma-separated) list of subcategories to include when processing a user profile. -Possible values are -\f[I]"uploads"\f[], \f[I]"collections"\f[]. +.IP "Supported Values:" 4 +.br +* \f[I]uploads\f[] +.br +* \f[I]collections\f[] +.IP "Note:" 4 It is possible to use \f[I]"all"\f[] instead of listing all values separately. @@ -7298,7 +7538,8 @@ It is possible to use \f[I]"all"\f[] instead of listing all values separately. .IP "Description:" 4 Extract additional metadata (tags, uploader) -Note: This requires 1 additional HTTP request per post. +.IP "Note:" 4 +This requires 1 additional HTTP request per post. .SS extractor.weasyl.api-key @@ -7327,7 +7568,8 @@ Fetch extra submission metadata during gallery downloads. .br \f[I]tags\f[], \f[I]views\f[]) -Note: This requires 1 additional HTTP request per submission. +.IP "Note:" 4 +This requires 1 additional HTTP request per submission. .SS extractor.webtoons.quality @@ -7337,7 +7579,7 @@ Note: This requires 1 additional HTTP request per submission. .br * \f[I]string\f[] .br -* \f[I]object\f[] (ext -> type) +* \f[I]object\f[] (ext → type) .IP "Default:" 9 @@ -7423,14 +7665,21 @@ Set this to \f[I]"video"\f[] to download GIFs as video files. A (comma-separated) list of subcategories to include when processing a user profile. -Possible values are -\f[I]"home"\f[], -\f[I]"feed"\f[], -\f[I]"videos"\f[], -\f[I]"newvideo"\f[], -\f[I]"article"\f[], -\f[I]"album"\f[]. +.IP "Supported Values:" 4 +.br +* \f[I]home\f[] +.br +* \f[I]feed\f[] +.br +* \f[I]videos\f[] +.br +* \f[I]newvideo\f[] +.br +* \f[I]article\f[] +.br +* \f[I]album\f[] +.IP "Note:" 4 It is possible to use \f[I]"all"\f[] instead of listing all values separately. @@ -7481,6 +7730,25 @@ will be taken from the original posts, not the retweeted posts. Download video files. +.SS extractor.wikimedia.image-revisions +.IP "Type:" 6 +\f[I]integer\f[] + +.IP "Default:" 9 +\f[I]1\f[] + +.IP "Description:" 4 +Number of revisions to return for a single image. + +The dafault value of 1 only returns the latest revision. + +The value must be between 1 and 500. + +.IP "Note:" 4 +The API sometimes returns image revisions on article pages even when this option is +set to 1. However, setting it to a higher value may reduce the number of API requests. + + .SS extractor.wikimedia.limit .IP "Type:" 6 \f[I]integer\f[] @@ -7621,7 +7889,8 @@ set subcategory to the input URL's domain. Route \f[I]ytdl's\f[] output through gallery-dl's logging system. Otherwise it will be written directly to stdout/stderr. -Note: Set \f[I]quiet\f[] and \f[I]no_warnings\f[] in +.IP "Note:" 4 +Set \f[I]quiet\f[] and \f[I]no_warnings\f[] in \f[I]extractor.ytdl.raw-options\f[] to \f[I]true\f[] to suppress all output. @@ -7647,7 +7916,7 @@ followed by \f[I]"youtube_dl"\f[] as fallback. .SS extractor.ytdl.raw-options .IP "Type:" 6 -\f[I]object\f[] (name -> value) +\f[I]object\f[] (name → value) .IP "Example:" 4 .. code:: json @@ -7699,7 +7968,8 @@ List of filename extensions to try when dynamically building download URLs .IP "Description:" 4 Extract additional metadata (date, md5, tags, ...) -Note: This requires 1-2 additional HTTP requests per post. +.IP "Note:" 4 +This requires 1-2 additional HTTP requests per post. .SS extractor.zerochan.pagination @@ -7712,11 +7982,11 @@ Note: This requires 1-2 additional HTTP requests per post. .IP "Description:" 4 Controls how to paginate over tag search results. -.br -* \f[I]"api"\f[]: Use the \f[I]JSON API\f[] +\f[I]"api"\f[] +Use the \f[I]JSON API\f[] (no \f[I]extension\f[] metadata) -.br -* \f[I]"html"\f[]: Parse HTML pages +\f[I]"html"\f[] +Parse HTML pages (limited to 100 pages * 24 posts) @@ -7743,7 +8013,8 @@ Group \f[I]tags\f[] by type and provide them as \f[I]tags_<type>\f[] metadata fields, for example \f[I]tags_artist\f[] or \f[I]tags_character\f[]. -Note: This requires 1 additional HTTP request per post. +.IP "Note:" 4 +This requires 1 additional HTTP request per post. .SS extractor.[booru].notes @@ -7756,7 +8027,8 @@ Note: This requires 1 additional HTTP request per post. .IP "Description:" 4 Extract overlay notes (position and text). -Note: This requires 1 additional HTTP request per post. +.IP "Note:" 4 +This requires 1 additional HTTP request per post. .SS extractor.[booru].url @@ -7791,10 +8063,10 @@ When multiple names are given, download the first available one. .IP "Description:" 4 Reverse the order of chapter URLs extracted from manga pages. -.br -* \f[I]true\f[]: Start with the latest chapter -.br -* \f[I]false\f[]: Start with the first chapter +\f[I]true\f[] +Start with the latest chapter +\f[I]false\f[] +Start with the first chapter .SS extractor.[manga-extractor].page-reverse @@ -7861,12 +8133,12 @@ to set file modification times. .IP "Description:" 4 Controls the use of \f[I].part\f[] files during file downloads. -.br -* \f[I]true\f[]: Write downloaded data into \f[I].part\f[] files and rename +\f[I]true\f[] +Write downloaded data into \f[I].part\f[] files and rename them upon download completion. This mode additionally supports resuming incomplete downloads. -.br -* \f[I]false\f[]: Do not use \f[I].part\f[] files and write data directly +\f[I]false\f[] +Do not use \f[I].part\f[] files and write data directly into the actual output files. @@ -7973,7 +8245,7 @@ Certificate validation during file downloads. .br * \f[I]string\f[] .br -* \f[I]object\f[] (scheme -> proxy) +* \f[I]object\f[] (scheme → proxy) .IP "Default:" 9 \f[I]extractor.*.proxy\f[] @@ -8044,7 +8316,7 @@ These suffixes are case-insensitive. .SS downloader.http.headers .IP "Type:" 6 -\f[I]object\f[] (name -> value) +\f[I]object\f[] (name → value) .IP "Example:" 4 {"Accept": "image/webp,*/*", "Referer": "https://example.org/"} @@ -8083,7 +8355,8 @@ regardless of this option. Number of seconds to sleep when receiving a 429 Too Many Requests response before \f[I]retrying\f[] the request. -Note: Requires +.IP "Note:" 4 +Requires \f[I]retry-codes\f[] to include \f[I]429\f[]. @@ -8203,7 +8476,8 @@ Forward gallery-dl's cookies to \f[I]ytdl\f[]. Route \f[I]ytdl's\f[] output through gallery-dl's logging system. Otherwise it will be written directly to stdout/stderr. -Note: Set \f[I]quiet\f[] and \f[I]no_warnings\f[] in +.IP "Note:" 4 +Set \f[I]quiet\f[] and \f[I]no_warnings\f[] in \f[I]downloader.ytdl.raw-options\f[] to \f[I]true\f[] to suppress all output. @@ -8243,23 +8517,23 @@ See / \f[I]youtube-dl output template\f[]. -Special values: - -.br -* \f[I]null\f[]: generate filenames with \f[I]extractor.*.filename\f[] -.br -* \f[I]"default"\f[]: use \f[I]ytdl's\f[] default, currently +.IP "Special Values:" 4 +\f[I]null\f[] +generate filenames with \f[I]extractor.*.filename\f[] +\f[I]"default"\f[] +use \f[I]ytdl's\f[] default, currently \f[I]"%(title)s [%(id)s].%(ext)s"\f[] for \f[I]yt-dlp\f[] / \f[I]"%(title)s-%(id)s.%(ext)s"\f[] for \f[I]youtube-dl\f[] -Note: An output template other than \f[I]null\f[] might +.IP "Note:" 4 +An output template other than \f[I]null\f[] might cause unexpected results in combination with certain options (e.g. \f[I]"skip": "enumerate"\f[]) .SS downloader.ytdl.raw-options .IP "Type:" 6 -\f[I]object\f[] (name -> value) +\f[I]object\f[] (name → value) .IP "Example:" 4 .. code:: json @@ -8286,7 +8560,7 @@ Available options can be found in .br * \f[I]string\f[] .br -* \f[I]object\f[] (key -> format string) +* \f[I]object\f[] (key → format string) .IP "Default:" 9 \f[I]"auto"\f[] @@ -8294,17 +8568,18 @@ Available options can be found in .IP "Description:" 4 Controls the output string format and status indicators. -.br -* \f[I]"null"\f[]: No output -.br -* \f[I]"pipe"\f[]: Suitable for piping to other processes or files -.br -* \f[I]"terminal"\f[]: Suitable for the standard Windows console -.br -* \f[I]"color"\f[]: Suitable for terminals that understand ANSI escape codes and colors -.br -* \f[I]"auto"\f[]: \f[I]"pipe"\f[] if not on a TTY, \f[I]"terminal"\f[] on Windows with -\f[I]output.ansi\f[] disabled, \f[I]"color"\f[] otherwise. +\f[I]"null"\f[] +No output +\f[I]"pipe"\f[] +Suitable for piping to other processes or files +\f[I]"terminal"\f[] +Suitable for the standard Windows console +\f[I]"color"\f[] +Suitable for terminals that understand ANSI escape codes and colors +\f[I]"auto"\f[] +\f[I]"pipe"\f[] if not on a TTY, +\f[I]"terminal"\f[] on Windows with \f[I]output.ansi\f[] disabled, +\f[I]"color"\f[] otherwise. It is possible to use custom output format strings .br @@ -8394,7 +8669,8 @@ Possible options are 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[] +.IP "Note:" 4 +\f[I]errors\f[] always defaults to \f[I]"replace"\f[] .SS output.shorten @@ -8414,7 +8690,7 @@ with a display width greater than 1. .SS output.colors .IP "Type:" 6 -\f[I]object\f[] (key -> ANSI color) +\f[I]object\f[] (key → ANSI color) .IP "Default:" 9 .. code:: json @@ -8516,13 +8792,13 @@ in the output of \f[I]-K/--list-keywords\f[] and \f[I]-j/--dump-json\f[]. Controls the progress indicator when *gallery-dl* is run with multiple URLs as arguments. -.br -* \f[I]true\f[]: Show the default progress indicator +\f[I]true\f[] +Show the default progress indicator (\f[I]"[{current}/{total}] {url}"\f[]) -.br -* \f[I]false\f[]: Do not show any progress indicator -.br -* Any \f[I]string\f[]: Show the progress indicator using this +\f[I]false\f[] +Do not show any progress indicator +Any \f[I]string\f[] +Show the progress indicator using this as a custom \f[I]format string\f[]. Possible replacement keys are \f[I]current\f[], \f[I]total\f[] and \f[I]url\f[]. @@ -8603,7 +8879,7 @@ before outputting them as JSON. .SH POSTPROCESSOR OPTIONS .SS classify.mapping .IP "Type:" 6 -\f[I]object\f[] (directory -> extensions) +\f[I]object\f[] (directory → extensions) .IP "Default:" 9 .. code:: json @@ -8637,11 +8913,10 @@ in their default location. .IP "Description:" 4 The action to take when files do **not** compare as equal. -.br -* \f[I]"replace"\f[]: Replace/Overwrite the old version with the new one - -.br -* \f[I]"enumerate"\f[]: Add an enumeration index to the filename of the new +\f[I]"replace"\f[] +Replace/Overwrite the old version with the new one +\f[I]"enumerate"\f[] +Add an enumeration index to the filename of the new version like \f[I]skip = "enumerate"\f[] @@ -8655,17 +8930,15 @@ version like \f[I]skip = "enumerate"\f[] .IP "Description:" 4 The action to take when files do compare as equal. -.br -* \f[I]"abort:N"\f[]: Stop the current extractor run +\f[I]"abort:N"\f[] +Stop the current extractor run after \f[I]N\f[] consecutive files compared as equal. - -.br -* \f[I]"terminate:N"\f[]: Stop the current extractor run, +\f[I]"terminate:N"\f[] +Stop the current extractor run, including parent extractors, after \f[I]N\f[] consecutive files compared as equal. - -.br -* \f[I]"exit:N"\f[]: Exit the program +\f[I]"exit:N"\f[] +Exit the program after \f[I]N\f[] consecutive files compared as equal. @@ -8691,7 +8964,7 @@ Only compare file sizes. Do not read and compare their content. \f[I]"prepare"\f[] .IP "Description:" 4 -The event(s) for which \f[I]directory\f[] format strings are (re)evaluated. +The event(s) for which \f[I]directory\f[] \f[I]Format Strings\f[] are (re)evaluated. See \f[I]metadata.event\f[] for a list of available events. @@ -8756,7 +9029,8 @@ with the full path of a file or target directory, depending on .br * If this is a \f[I]list\f[], the first element specifies the program name and any further elements its arguments. -Each element of this list is treated as a \f[I]format string\f[] using + +Each element of this list is evaluated as a \f[I]Format String\f[] using the files' metadata as well as \f[I]{_path}\f[], \f[I]{_directory}\f[], and \f[I]{_filename}\f[]. @@ -8863,7 +9137,7 @@ Rebuild \f[I]filenames\f[] after computing .br * \f[I]string\f[] .br -* \f[I]object\f[] (field name -> hash algorithm) +* \f[I]object\f[] (field name → hash algorithm) .IP "Default:" 9 \f[I]"md5,sha1"\f[] @@ -8919,25 +9193,24 @@ for hash digests to compute. .IP "Description:" 4 Selects how to process metadata. -.br -* \f[I]"json"\f[]: write metadata using \f[I]json.dump()\f[] -.br -* \f[I]"jsonl"\f[]: write metadata in \f[I]JSON Lines -<https://jsonlines.org/>\f[] format -.br -* \f[I]"tags"\f[]: write \f[I]tags\f[] separated by newlines -.br -* \f[I]"custom"\f[]: write the result of applying \f[I]metadata.content-format\f[] +\f[I]"json"\f[] +Write metadata using \f[I]json.dump()\f[] +\f[I]"jsonl"\f[] +Write metadata in \f[I]JSON Lines\f[] format +\f[I]"tags"\f[] +Write \f[I]tags\f[] separated by newlines +\f[I]"custom"\f[] +Write the result of applying \f[I]metadata.content-format\f[] to a file's metadata dictionary -.br -* \f[I]"modify"\f[]: add or modify metadata entries -.br -* \f[I]"delete"\f[]: remove metadata entries +\f[I]"modify"\f[] +Add or modify metadata entries +\f[I]"delete"\f[] +Remove metadata entries .SS metadata.filename .IP "Type:" 6 -\f[I]string\f[] +\f[I]Format String\f[] .IP "Default:" 9 \f[I]null\f[] @@ -8946,7 +9219,7 @@ to a file's metadata dictionary "{id}.data.json" .IP "Description:" 4 -A \f[I]format string\f[] to build the filenames for metadata files with. +A \f[I]Format String\f[] to generate filenames for metadata files. (see \f[I]extractor.filename\f[]) Using \f[I]"-"\f[] as filename will write all output to \f[I]stdout\f[]. @@ -8989,12 +9262,12 @@ relative to \f[I]metadata.base-directory\f[]. .IP "Description:" 4 Selects the relative location for metadata files. -.br -* \f[I]false\f[]: current target location for file downloads (\f[I]base-directory\f[] + directory_) -.br -* \f[I]true\f[]: current \f[I]base-directory\f[] location -.br -* any \f[I]Path\f[]: custom location +\f[I]false\f[] +Current target location for file downloads (\f[I]base-directory\f[] + directory_) +\f[I]true\f[] +Current \f[I]base-directory\f[] location +any \f[I]Path\f[] +Custom location .SS metadata.extension @@ -9011,7 +9284,7 @@ original file names. .SS metadata.extension-format .IP "Type:" 6 -\f[I]string\f[] +\f[I]Format String\f[] .IP "Example:" 4 .br @@ -9020,10 +9293,11 @@ original file names. * "json" .IP "Description:" 4 -Custom format string to build filename extensions for metadata -files with, which will replace the original filename extensions. +Custom \f[I]Format String\f[] to generate filename extensions +for metadata files, which will replace the original filename extension. -Note: \f[I]metadata.extension\f[] is ignored if this option is set. +.IP "Note:" 4 +When this option is set, \f[I]metadata.extension\f[] is ignored. .SS metadata.metadata-path @@ -9099,7 +9373,8 @@ After downloading all files of a post .IP "Description:" 4 Include only the given top-level keys when writing JSON data. -Note: Missing or undefined fields will be silently ignored. +.IP "Note:" 4 +Missing or undefined fields will be silently ignored. .SS metadata.exclude @@ -9112,7 +9387,8 @@ Note: Missing or undefined fields will be silently ignored. .IP "Description:" 4 Exclude all given keys from written JSON data. -Note: Cannot be used with \f[I]metadata.include\f[]. +.IP "Note:" 4 +Cannot be used with \f[I]metadata.include\f[]. .SS metadata.fields @@ -9120,7 +9396,7 @@ Note: Cannot be used with \f[I]metadata.include\f[]. .br * \f[I]list\f[] of \f[I]strings\f[] .br -* \f[I]object\f[] (field name -> \f[I]format string\f[]) +* \f[I]object\f[] (field name → \f[I]Format String\f[]) .IP "Example:" 4 .. code:: json @@ -9137,21 +9413,19 @@ Note: Cannot be used with \f[I]metadata.include\f[]. .IP "Description:" 4 -.br -* \f[I]"mode": "delete"\f[]: +\f[I]"mode": "delete"\f[] A list of metadata field names to remove. -.br -* \f[I]"mode": "modify"\f[]: -An object with metadata field names mapping to a \f[I]format string\f[] -whose result is assigned to said field name. +\f[I]"mode": "modify"\f[] +An object with metadata field names mapping to a \f[I]Format String\f[] +whose result is assigned to that field name. .SS metadata.content-format .IP "Type:" 6 .br -* \f[I]string\f[] +* \f[I]Format String\f[] .br -* \f[I]list\f[] of \f[I]strings\f[] +* \f[I]list\f[] of \f[I]Format Strings\f[] .IP "Example:" 4 .br @@ -9160,9 +9434,10 @@ whose result is assigned to said field name. * ["tags:", "", "{tags:J\\n}"] .IP "Description:" 4 -Custom format string to build the content of metadata files with. +Custom \f[I]Format String(s)\f[] to build the content of metadata files with. -Note: Only applies for \f[I]"mode": "custom"\f[]. +.IP "Note:" 4 +Only applies to \f[I]"mode": "custom"\f[]. .SS metadata.ascii @@ -9177,7 +9452,8 @@ 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[]. +.IP "Note:" 4 +Only applies to \f[I]"mode": "json"\f[] and \f[I]"jsonl"\f[]. .SS metadata.indent @@ -9195,7 +9471,8 @@ Indentation level of JSON output. 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[]. +.IP "Note:" 4 +Only applies to \f[I]"mode": "json"\f[]. .SS metadata.separators @@ -9211,7 +9488,8 @@ 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[]. +.IP "Note:" 4 +Only applies to \f[I]"mode": "json"\f[] and \f[I]"jsonl"\f[]. .SS metadata.sort @@ -9226,7 +9504,8 @@ 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[]. +.IP "Note:" 4 +Only applies to \f[I]"mode": "json"\f[] and \f[I]"jsonl"\f[]. .SS metadata.open @@ -9358,12 +9637,13 @@ Name of the metadata field whose value should be used. This value must be either a UNIX timestamp or a \f[I]datetime\f[] object. -Note: This option gets ignored if \f[I]mtime.value\f[] is set. +.IP "Note:" 4 +This option is ignored if \f[I]mtime.value\f[] is set. .SS mtime.value .IP "Type:" 6 -\f[I]string\f[] +\f[I]Format String\f[] .IP "Default:" 9 \f[I]null\f[] @@ -9375,7 +9655,7 @@ Note: This option gets ignored if \f[I]mtime.value\f[] is set. * "{content[0:6]:R22/2022/D%Y%m%d/}" .IP "Description:" 4 -A \f[I]format string\f[] whose value should be used. +The \f[I]Format String\f[] whose value should be used. The resulting value must be either a UNIX timestamp or a \f[I]datetime\f[] object. @@ -9422,7 +9702,7 @@ See \f[I]metadata.event\f[] for a list of available events. .SS python.expression .IP "Type:" 6 -\f[I]string\f[] +\f[I]Expression\f[] .IP "Example:" 4 .br @@ -9431,13 +9711,11 @@ See \f[I]metadata.event\f[] for a list of available events. * "terminate()" .IP "Description:" 4 -A -\f[I]Python expression\f[] -to +A Python \f[I]Expression\f[] to \f[I]evaluate\f[]. -Note: Only used with -\f[I]"mode": "eval"\f[] +.IP "Note:" 4 +Only used with \f[I]"mode": "eval"\f[] .SS python.function @@ -9482,20 +9760,20 @@ Call a .SS rename.from .IP "Type:" 6 -\f[I]string\f[] +\f[I]Format String\f[] .IP "Description:" 4 -The \f[I]format string\f[] for filenames to rename. +The \f[I]Format String\f[] for filenames to rename. When no value is given, \f[I]extractor.*.filename\f[] is used. .SS rename.to .IP "Type:" 6 -\f[I]string\f[] +\f[I]Format String\f[] .IP "Description:" 4 -The \f[I]format string\f[] for target filenames. +The \f[I]Format String\f[] for target filenames. When no value is given, \f[I]extractor.*.filename\f[] is used. @@ -9541,23 +9819,28 @@ Additional \f[I]ffmpeg\f[] command-line arguments. \f[I]string\f[] .IP "Default:" 9 -\f[I]auto\f[] +\f[I]"auto"\f[] .IP "Description:" 4 \f[I]ffmpeg\f[] demuxer to read and process input files with. -Possible values are - +.IP "Supported Values:" 4 +\f[I]"auto"\f[] +use \f[I]mkvmerge\f[] if available, fall back to \f[I]concat\f[] otherwise +\f[I]"concat"\f[] +https://ffmpeg.org/ffmpeg-formats.html#concat-1 .br -* "\f[I]concat\f[]" (inaccurate frame timecodes for non-uniform frame delays) +Inaccurate frame timecodes for non-uniform frame delays .br -* "\f[I]image2\f[]" (accurate timecodes, requires nanosecond file timestamps, i.e. no Windows or macOS) +\f[I]"image2"\f[] +https://ffmpeg.org/ffmpeg-formats.html#image2-1 .br -* "mkvmerge" (accurate timecodes, only WebM or MKV, requires \f[I]mkvmerge\f[]) +Accurate timecodes, requires nanosecond file timestamps, i.e. no Windows or macOS) .br -* "archive" (store "original" frames in a \f[I].zip\f[] archive) - -"auto" will select mkvmerge if available and fall back to concat otherwise. +\f[I]"mkvmerge"\f[] +Accurate timecodes, only WebM or MKV, requires \f[I]mkvmerge\f[]) +\f[I]"archive"\f[] +Store "original" frames in a \f[I].zip\f[] archive .SS ugoira.ffmpeg-location @@ -9596,12 +9879,12 @@ Location of the \f[I]mkvmerge\f[] executable for use with the .IP "Description:" 4 Controls \f[I]ffmpeg\f[] output. -.br -* \f[I]true\f[]: Enable \f[I]ffmpeg\f[] output -.br -* \f[I]false\f[]: Disable all \f[I]ffmpeg\f[] output -.br -* any \f[I]string\f[]: Pass \f[I]-hide_banner\f[] and \f[I]-loglevel\f[] +\f[I]true\f[] +Enable \f[I]ffmpeg\f[] output +\f[I]false\f[] +Disable all \f[I]ffmpeg\f[] output +any \f[I]string\f[] +Pass \f[I]-hide_banner\f[] and \f[I]-loglevel\f[] with this value as argument to \f[I]ffmpeg\f[] @@ -9626,16 +9909,16 @@ Enable Two-Pass encoding. .IP "Description:" 4 Controls the frame rate argument (\f[I]-r\f[]) for \f[I]ffmpeg\f[] -.br -* \f[I]"auto"\f[]: Automatically assign a fitting frame rate +\f[I]"auto"\f[] +Automatically assign a fitting frame rate based on delays between frames. -.br -* \f[I]"uniform"\f[]: Like \f[I]auto\f[], but assign an explicit frame rate +\f[I]"uniform"\f[] +Like \f[I]auto\f[], but assign an explicit frame rate only to Ugoira with uniform frame delays. -.br -* any other \f[I]string\f[]: Use this value as argument for \f[I]-r\f[]. -.br -* \f[I]null\f[] or an empty \f[I]string\f[]: Don't set an explicit frame rate. +any other \f[I]string\f[] +Use this value as argument for \f[I]-r\f[]. +\f[I]null\f[] or an empty \f[I]string\f[] +Don't set an explicit frame rate. .SS ugoira.keep-files @@ -9731,7 +10014,15 @@ Do not convert frames if target file already exists. .IP "Description:" 4 Compression method to use when writing the archive. -Possible values are \f[I]"store"\f[], \f[I]"zip"\f[], \f[I]"bzip2"\f[], \f[I]"lzma"\f[]. +.IP "Supported Values:" 4 +.br +* \f[I]"store"\f[] +.br +* \f[I]"zip"\f[] +.br +* \f[I]"bzip2"\f[] +.br +* \f[I]"lzma"\f[] .SS zip.extension @@ -9755,7 +10046,8 @@ Filename extension for the created ZIP archive. .IP "Description:" 4 List of extra files to be added to a ZIP archive. -Note: Relative paths are relative to the current +.IP "Note:" 4 +Relative paths are relative to the current \f[I]download directory\f[]. @@ -9778,12 +10070,12 @@ Keep the actual files after writing them to a ZIP archive. \f[I]"default"\f[] .IP "Description:" 4 -.br -* \f[I]"default"\f[]: Write the central directory file header +\f[I]"default"\f[] +Write the central directory file header once after everything is done or an exception is raised. -.br -* \f[I]"safe"\f[]: Update the central directory file header +\f[I]"safe"\f[] +Update the central directory file header each time a file is stored in a ZIP archive. This greatly reduces the chance a ZIP archive gets corrupted in @@ -9823,7 +10115,8 @@ 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 +.IP "Note:" 4 +\f[I]null\f[] references internal extractors defined in \f[I]extractor/__init__.py\f[] or by \f[I]extractor.modules\f[]. @@ -9831,7 +10124,7 @@ or by \f[I]extractor.modules\f[]. .SS extractor.category-map .IP "Type:" 6 .br -* \f[I]object\f[] (category -> category) +* \f[I]object\f[] (category → category) .br * \f[I]string\f[] @@ -9846,8 +10139,7 @@ or by \f[I]extractor.modules\f[]. .IP "Description:" 4 A JSON object mapping category names to their replacements. -Special values: - +.IP "Special Values:" 4 .br * \f[I]"compat"\f[] .. code:: json @@ -9869,7 +10161,7 @@ Special values: .SS extractor.config-map .IP "Type:" 6 -\f[I]object\f[] (category -> category) +\f[I]object\f[] (category → category) .IP "Default:" 9 .. code:: json @@ -9895,7 +10187,7 @@ For example, a \f[I]"naver": "naver-blog"\f[] key-value pair will make all .SS jinja.environment .IP "Type:" 6 -\f[I]object\f[] (name -> value) +\f[I]object\f[] (name → value) .IP "Example:" 4 .. code:: json @@ -9914,7 +10206,7 @@ object. .SS jinja.policies .IP "Type:" 6 -\f[I]object\f[] (name -> value) +\f[I]object\f[] (name → value) .IP "Example:" 4 .. code:: json @@ -9955,7 +10247,7 @@ A Python \f[I]Module\f[] containing custom \f[I]jinja\f[] A Python \f[I]Module\f[] whose namespace, in addition to the \f[I]GLOBALS\f[] dict in \f[I]util.py\f[], -is used as \f[I]globals parameter\f[] for compiled Python expressions. +is used as \f[I]globals parameter\f[] for compiled Expressions_. .SS cache.file @@ -9987,15 +10279,15 @@ this cache. \f[I]true\f[] .IP "Description:" 4 -Evaluate filter expressions in a special environment +Evaluate \f[I]Expressions\f[] in a special environment preventing them from raising fatal exceptions. -\f[I]true\f[] or \f[I]"tryexcept"\f[]: +\f[I]true\f[] \f[I] \f[I]"tryexcept"\f[] Wrap expressions in a try/except block; Evaluate expressions raising an exception as \f[I]false\f[] -\f[I]false\f[] or \f[I]"raw"\f[]: +\f[I]false\f[] \f[] \f[I]"raw"\f[] Do not wrap expressions in a special environment -\f[I]"defaultdict"\f[]: +\f[I]"defaultdict"\f[] Prevent exceptions when accessing undefined variables by using a \f[I]defaultdict\f[] @@ -10008,7 +10300,7 @@ by using a \f[I]defaultdict\f[] \f[I]"/"\f[] .IP "Description:" 4 -Character(s) used as argument separator in format string +Character(s) used as argument separator in \f[I]Format String\f[] \f[I]format specifiers\f[]. For example, setting this option to \f[I]"#"\f[] would allow a replacement @@ -10041,7 +10333,7 @@ as signal handler for. .SS signals-actions .IP "Type:" 6 -\f[I]object\f[] (signal -> \f[I]Action(s)\f[]) +\f[I]object\f[] (signal → \f[I]Action(s)\f[]) .IP "Example:" 4 .. code:: json @@ -10378,7 +10670,7 @@ Simple \f[I]tilde expansion\f[] and \f[I]environment variable expansion\f[] is supported. -.IP "Note::" 4 +.IP "Note:" 4 In Windows environments, both backslashes \f[I]\\\f[] as well as forward slashes \f[I]/\f[] can be used as path separators. @@ -10475,7 +10767,8 @@ use \f[I]"w"\f[] to truncate or \f[I]"a"\f[] to append .br * Default: \f[I]"utf-8"\f[] -Note: path, mode, and encoding are only applied when configuring +.IP "Note:" 4 +path, mode, and encoding are only applied when configuring logging output to a file. @@ -10502,9 +10795,9 @@ logging output to a file. An \f[I]object\f[] containing a \f[I]"name"\f[] attribute specifying the post-processor type, as well as any of its \f[I]options\f[]. -It is possible to set a \f[I]"filter"\f[] expression similar to -\f[I]image-filter\f[] to only run a post-processor -conditionally. +It is possible to set a \f[I]"filter"\f[] \f[I]Condition\f[] similar to +\f[I]image-filter\f[] +to only run a post-processor conditionally. It is also possible set a \f[I]"whitelist"\f[] or \f[I]"blacklist"\f[] to only enable or disable a post-processor for the specified @@ -10520,7 +10813,7 @@ Compare versions of the same file and replace/enumerate them on mismatch (requires \f[I]downloader.*.part\f[] = \f[I]true\f[] and \f[I]extractor.*.skip\f[] = \f[I]false\f[]) .br \f[I]directory\f[] -Reevaluate \f[I]directory\f[] format strings +Reevaluate \f[I]directory\f[] \f[I]Format Strings\f[] \f[I]exec\f[] Execute external commands \f[I]hash\f[] @@ -10619,6 +10912,80 @@ wait until Enter is pressed when no argument was given. Exit the program with the given argument as exit status. +.SS Expression +.IP "Type:" 6 +\f[I]string\f[] + +.IP "Example:" 4 +.br +* "1 + 2 + 3" +.br +* "str(id) + '_' + title" +.br +* "' - '.join(tags[:3]) if tags else 'no tags'" + +.IP "Description:" 4 +A Python \f[I]Expression\f[] is a combination of +values, variables, operators, and function calls +that evaluate to a single value. + +.IP "Reference:" 4 +.br +* https://docs.python.org/3/reference/expressions.html + + +.SS Condition +.IP "Type:" 6 +.br +* \f[I]Expression\f[] +.br +* \f[I]list\f[] of \f[I]Expressions\f[] + +.IP "Example:" 4 +.br +* "not is_watching" +.br +* "locals().get('optional')" +.br +* "date >= datetime(2025, 7, 1) or abort()" +.br +* ["width > 800", "0.9 < width/height < 1.1"] + +.IP "Description:" 4 +A \f[I]Condition\f[] is an \f[I]Expression\f[] +whose result is evaluated as a +\f[I]boolean\f[] +value. + + +.SS Format String +.IP "Type:" 6 +\f[I]string\f[] + +.IP "Example:" 4 +.br +* "foo" +.br +* "{username}" +.br +* "{title} ({id}).{extension}" +.br +* "\\fF {title.title()} ({num:>0:>0{len(str(a))}} / {count}).{extension}" + +.IP "Description:" 4 +A \f[I]Format String\f[] allows creating dynamic text +by embedding metadata values directly into replacement fields +marked by curly braces \f[I]{...}\f[]. + +.IP "Reference:" 4 +.br +* \f[I]docs/formatting\f[] +.br +* https://docs.python.org/3/library/string.html#formatstrings +.br +* https://docs.python.org/3/library/string.html#formatspec + + .SH BUGS https://github.com/mikf/gallery-dl/issues |
