mirror of
https://github.com/mikf/gallery-dl.git
synced 2024-11-22 18:53:21 +01:00
8d543b040d
- document '"mode": "jsonl"' for metadata pp - remove 'username' and 'password' from 'instagram' - add 'ytdl' example (#3180)
446 lines
14 KiB
Plaintext
446 lines
14 KiB
Plaintext
{
|
||
"extractor":
|
||
{
|
||
"base-directory": "~/gallery-dl/",
|
||
|
||
"#": "set global archive file for all extractors",
|
||
"archive": "~/gallery-dl/archive.sqlite3",
|
||
|
||
"#": "add two custom keywords into the metadata dictionary",
|
||
"#": "these can be used to further refine your output directories or filenames",
|
||
"keywords": {"bkey": "", "ckey": ""},
|
||
"#": "make sure that custom keywords are empty, i.e. they don't appear unless specified by the user",
|
||
"keywords-default": "",
|
||
|
||
"#": "replace invalid path characters with unicode alternatives",
|
||
"path-restrict": {
|
||
"\\": "⧹",
|
||
"/" : "⧸",
|
||
"|" : "│",
|
||
":" : "꞉",
|
||
"*" : "∗",
|
||
"?" : "?",
|
||
"\"": "″",
|
||
"<" : "﹤",
|
||
">" : "﹥"
|
||
},
|
||
|
||
"#": "write tags for several *booru sites",
|
||
"postprocessors": [
|
||
{
|
||
"name": "metadata",
|
||
"mode": "tags",
|
||
"whitelist": ["danbooru", "moebooru", "sankaku"]
|
||
}
|
||
],
|
||
|
||
"pixiv":
|
||
{
|
||
"#": "override global archive setting for pixiv",
|
||
"archive": "~/gallery-dl/archive-pixiv.sqlite3",
|
||
|
||
"#": "set custom directory and filename format strings for all pixiv downloads",
|
||
"filename": "{id}{num}.{extension}",
|
||
"directory": ["Pixiv", "Works", "{user[id]}"],
|
||
"refresh-token": "aBcDeFgHiJkLmNoPqRsTuVwXyZ01234567890-FedC9",
|
||
|
||
"#": "transform ugoira into lossless MKVs",
|
||
"ugoira": true,
|
||
"postprocessors": ["ugoira-copy"],
|
||
|
||
"#": "use special settings for favorites and bookmarks",
|
||
"favorite":
|
||
{
|
||
"directory": ["Pixiv", "Favorites", "{user[id]}"]
|
||
},
|
||
"bookmark":
|
||
{
|
||
"directory": ["Pixiv", "My Bookmarks"],
|
||
"refresh-token": "01234567890aBcDeFgHiJkLmNoPqRsTuVwXyZ-ZyxW1"
|
||
}
|
||
},
|
||
|
||
"danbooru":
|
||
{
|
||
"ugoira": true,
|
||
"postprocessors": ["ugoira-webm"]
|
||
},
|
||
|
||
"exhentai":
|
||
{
|
||
"#": "use cookies instead of logging in with username and password",
|
||
"cookies":
|
||
{
|
||
"ipb_member_id": "12345",
|
||
"ipb_pass_hash": "1234567890abcdef",
|
||
"igneous" : "123456789",
|
||
"hath_perks" : "m1.m2.m3.a-123456789a",
|
||
"sk" : "n4m34tv3574m2c4e22c35zgeehiw",
|
||
"sl" : "dm_2"
|
||
},
|
||
|
||
"#": "wait 2 to 4.8 seconds between HTTP requests",
|
||
"sleep-request": [2.0, 4.8],
|
||
|
||
"filename": "{num:>04}_{name}.{extension}",
|
||
"directory": ["{category!c}", "{title}"]
|
||
},
|
||
|
||
"sankaku":
|
||
{
|
||
"#": "authentication with cookies is not possible for sankaku",
|
||
"username": "user",
|
||
"password": "#secret#"
|
||
},
|
||
|
||
"furaffinity": {
|
||
"#": "authentication with username and password is not possible due to CAPTCHA",
|
||
"cookies": {
|
||
"a": "01234567-89ab-cdef-fedc-ba9876543210",
|
||
"b": "fedcba98-7654-3210-0123-456789abcdef"
|
||
},
|
||
|
||
"descriptions": "html",
|
||
"postprocessors": ["content"]
|
||
},
|
||
|
||
"deviantart":
|
||
{
|
||
"#": "download 'gallery' and 'scraps' images for user profile URLs",
|
||
"include": "gallery,scraps",
|
||
|
||
"#": "use custom API credentials to avoid 429 errors",
|
||
"client-id": "98765",
|
||
"client-secret": "0123456789abcdef0123456789abcdef",
|
||
"refresh-token": "0123456789abcdef0123456789abcdef01234567",
|
||
|
||
"#": "put description texts into a separate directory",
|
||
"metadata": true,
|
||
"postprocessors": [
|
||
{
|
||
"name": "metadata",
|
||
"mode": "custom",
|
||
"directory" : "Descriptions",
|
||
"content-format" : "{description}\n",
|
||
"extension-format": "descr.txt"
|
||
}
|
||
]
|
||
},
|
||
|
||
"kemonoparty": {
|
||
"postprocessors": [
|
||
{
|
||
"name": "metadata",
|
||
"event": "post",
|
||
"filename": "{id} {title}.txt",
|
||
|
||
"#": "write text content and external URLs",
|
||
"mode": "custom",
|
||
"format": "{content}\n{embed[url]:?/\n/}",
|
||
|
||
"#": "onlx write file if there is an external link present",
|
||
"filter": "embed.get('url') or re.search(r'(?i)(gigafile|xgf|1drv|mediafire|mega|google|drive)', content)"
|
||
}
|
||
]
|
||
},
|
||
|
||
"flickr":
|
||
{
|
||
"access-token": "1234567890-abcdef",
|
||
"access-token-secret": "1234567890abcdef",
|
||
"size-max": 1920
|
||
},
|
||
|
||
"mangadex":
|
||
{
|
||
"#": "only download safe/suggestive chapters translated to English",
|
||
"lang": "en",
|
||
"ratings": ["safe", "suggestive"],
|
||
|
||
"#": "put chapters into '.cbz' archives",
|
||
"postprocessors": ["cbz"]
|
||
},
|
||
|
||
"reddit":
|
||
{
|
||
"#": "only spawn child extractors for links to specific sites",
|
||
"whitelist": ["imgur", "redgifs", "gfycat"],
|
||
|
||
"#": "put files from child extractors into the reddit directory",
|
||
"parent-directory": true,
|
||
|
||
"#": "transfer metadata to any child extractor as '_reddit'",
|
||
"parent-metadata": "_reddit"
|
||
},
|
||
|
||
"imgur":
|
||
{
|
||
"#": "use different directory and filename formats when coming from a reddit post",
|
||
"directory":
|
||
{
|
||
"'_reddit' in locals()": []
|
||
},
|
||
"filename":
|
||
{
|
||
"'_reddit' in locals()": "{_reddit[id]} {id}.{extension}",
|
||
"" : "{id}.{extension}"
|
||
}
|
||
},
|
||
|
||
"tumblr":
|
||
{
|
||
"posts" : "all",
|
||
"external": false,
|
||
"reblogs" : false,
|
||
"inline" : true,
|
||
|
||
"#": "use special settings when downloading liked posts",
|
||
"likes":
|
||
{
|
||
"posts" : "video,photo,link",
|
||
"external": true,
|
||
"reblogs" : true
|
||
}
|
||
},
|
||
|
||
"twitter":
|
||
{
|
||
"#": "write text content for *all* tweets",
|
||
"postprocessors": ["content"],
|
||
"text-tweets": true
|
||
},
|
||
|
||
"ytdl":
|
||
{
|
||
"#": "enable 'ytdl' extractor",
|
||
"#": "i.e. invoke ytdl on all otherwise unsupported input URLs",
|
||
"enabled": true,
|
||
|
||
"#": "use yt-dlp instead of youtube-dl",
|
||
"module": "yt_dlp",
|
||
|
||
"#": "load ytdl options from config file",
|
||
"config-file": "~/yt-dlp.conf"
|
||
},
|
||
|
||
"mastodon":
|
||
{
|
||
"#": "add 'tabletop.social' as recognized mastodon instance",
|
||
"#": "(run 'gallery-dl oauth:mastodon:tabletop.social to get an access token')",
|
||
"tabletop.social":
|
||
{
|
||
"root": "https://tabletop.social",
|
||
"access-token": "513a36c6..."
|
||
},
|
||
|
||
"#": "set filename format strings for all 'mastodon' instances",
|
||
"directory": ["mastodon", "{instance}", "{account[username]!l}"],
|
||
"filename" : "{id}_{media[id]}.{extension}"
|
||
},
|
||
|
||
"foolslide": {
|
||
"#": "add two more foolslide instances",
|
||
"otscans" : {"root": "https://otscans.com/foolslide"},
|
||
"helvetica": {"root": "https://helveticascans.com/r" }
|
||
},
|
||
|
||
"foolfuuka": {
|
||
"#": "add two other foolfuuka 4chan archives",
|
||
"fireden-onion": {"root": "http://ydt6jy2ng3s3xg2e.onion"},
|
||
"scalearchive" : {"root": "https://archive.scaled.team" }
|
||
},
|
||
|
||
"gelbooru_v01":
|
||
{
|
||
"#": "add a custom gelbooru_v01 instance",
|
||
"#": "this is just an example, this specific instance is already included!",
|
||
"allgirlbooru": {"root": "https://allgirl.booru.org"},
|
||
|
||
"#": "the following options are used for all gelbooru_v01 instances",
|
||
"tag":
|
||
{
|
||
"directory": {
|
||
"locals().get('bkey')": ["Booru", "AllGirlBooru", "Tags", "{bkey}", "{ckey}", "{search_tags}"],
|
||
"" : ["Booru", "AllGirlBooru", "Tags", "_Unsorted", "{search_tags}"]
|
||
}
|
||
},
|
||
"post":
|
||
{
|
||
"directory": ["Booru", "AllGirlBooru", "Posts"]
|
||
},
|
||
"archive": "~/gallery-dl/custom-archive-file-for-gelbooru_v01_instances.db",
|
||
"filename": "{tags}_{id}_{md5}.{extension}",
|
||
"sleep-request": [0, 1.2]
|
||
},
|
||
|
||
"gelbooru_v02":
|
||
{
|
||
"#": "add a custom gelbooru_v02 instance",
|
||
"#": "this is just an example, this specific instance is already included!",
|
||
"tbib":
|
||
{
|
||
"root": "https://tbib.org",
|
||
"#": "some sites have different domains for API access",
|
||
"#": "use the 'api_root' option in addition to the 'root' setting here"
|
||
}
|
||
},
|
||
|
||
"tbib": {
|
||
"#": "the following options are only used for TBIB",
|
||
"#": "gelbooru_v02 has four subcategories at the moment, use custom directory settings for all of these",
|
||
"tag":
|
||
{
|
||
"directory": {
|
||
"locals().get('bkey')": ["Other Boorus", "TBIB", "Tags", "{bkey}", "{ckey}", "{search_tags}"],
|
||
"" : ["Other Boorus", "TBIB", "Tags", "_Unsorted", "{search_tags}"]
|
||
}
|
||
},
|
||
"pool":
|
||
{
|
||
"directory": {
|
||
"locals().get('bkey')": ["Other Boorus", "TBIB", "Pools", "{bkey}", "{ckey}", "{pool}"],
|
||
"" : ["Other Boorus", "TBIB", "Pools", "_Unsorted", "{pool}"]
|
||
}
|
||
},
|
||
"favorite":
|
||
{
|
||
"directory": {
|
||
"locals().get('bkey')": ["Other Boorus", "TBIB", "Favorites", "{bkey}", "{ckey}", "{favorite_id}"],
|
||
"" : ["Other Boorus", "TBIB", "Favorites", "_Unsorted", "{favorite_id}"]
|
||
}
|
||
},
|
||
"post":
|
||
{
|
||
"directory": ["Other Boorus", "TBIB", "Posts"]
|
||
},
|
||
"archive": "~/gallery-dl/custom-archive-file-for-TBIB.db",
|
||
"filename": "{id}_{md5}.{extension}",
|
||
"sleep-request": [0, 1.2]
|
||
}
|
||
},
|
||
|
||
"downloader":
|
||
{
|
||
"#": "restrict download speed to 1 MB/s",
|
||
"rate": "1M",
|
||
|
||
"#": "show download progress indicator after 2 seconds",
|
||
"progress": 2.0,
|
||
|
||
"#": "retry failed downloads up to 3 times",
|
||
"retries": 3,
|
||
|
||
"#": "consider a download 'failed' after 8 seconds of inactivity",
|
||
"timeout": 8.0,
|
||
|
||
"#": "write '.part' files into a special directory",
|
||
"part-directory": "/tmp/.download/",
|
||
|
||
"#": "do not update file modification times",
|
||
"mtime": false,
|
||
|
||
"ytdl":
|
||
{
|
||
"#": "use yt-dlp instead of youtube-dl",
|
||
"module": "yt_dlp"
|
||
}
|
||
},
|
||
|
||
"output":
|
||
{
|
||
"log": {
|
||
"level": "info",
|
||
|
||
"#": "use different ANSI colors for each log level",
|
||
"format": {
|
||
"debug" : "\u001b[0;37m{name}: {message}\u001b[0m",
|
||
"info" : "\u001b[1;37m{name}: {message}\u001b[0m",
|
||
"warning": "\u001b[1;33m{name}: {message}\u001b[0m",
|
||
"error" : "\u001b[1;31m{name}: {message}\u001b[0m"
|
||
}
|
||
},
|
||
|
||
"#": "shorten filenames to fit into one terminal line",
|
||
"#": "while also considering wider East-Asian characters",
|
||
"shorten": "eaw",
|
||
|
||
"#": "enable ANSI escape sequences on Windows",
|
||
"ansi": true,
|
||
|
||
"#": "write logging messages to a separate file",
|
||
"logfile": {
|
||
"path": "~/gallery-dl/log.txt",
|
||
"mode": "w",
|
||
"level": "debug"
|
||
},
|
||
|
||
"#": "write unrecognized URLs to a separate file",
|
||
"unsupportedfile": {
|
||
"path": "~/gallery-dl/unsupported.txt",
|
||
"mode": "a",
|
||
"format": "{asctime} {message}",
|
||
"format-date": "%Y-%m-%d-%H-%M-%S"
|
||
}
|
||
},
|
||
|
||
"postprocessor":
|
||
{
|
||
"#": "write 'content' metadata into separate files",
|
||
"content":
|
||
{
|
||
"name" : "metadata",
|
||
|
||
"#": "write data for every post instead of each individual file",
|
||
"event": "post",
|
||
"filename": "{post_id|tweet_id|id}.txt",
|
||
|
||
"#": "write only the values for 'content' or 'description'",
|
||
"mode" : "custom",
|
||
"format": "{content|description}\n"
|
||
},
|
||
|
||
"#": "put files into a '.cbz' archive",
|
||
"cbz":
|
||
{
|
||
"name": "zip",
|
||
"extension": "cbz"
|
||
},
|
||
|
||
"#": "various ugoira post processor configurations to create different file formats",
|
||
"ugoira-webm":
|
||
{
|
||
"name": "ugoira",
|
||
"extension": "webm",
|
||
"ffmpeg-args": ["-c:v", "libvpx-vp9", "-an", "-b:v", "0", "-crf", "30"],
|
||
"ffmpeg-twopass": true,
|
||
"ffmpeg-demuxer": "image2"
|
||
},
|
||
"ugoira-mp4":
|
||
{
|
||
"name": "ugoira",
|
||
"extension": "mp4",
|
||
"ffmpeg-args": ["-c:v", "libx264", "-an", "-b:v", "4M", "-preset", "veryslow"],
|
||
"ffmpeg-twopass": true,
|
||
"libx264-prevent-odd": true
|
||
},
|
||
"ugoira-gif":
|
||
{
|
||
"name": "ugoira",
|
||
"extension": "gif",
|
||
"ffmpeg-args": ["-filter_complex", "[0:v] split [a][b];[a] palettegen [p];[b][p] paletteuse"]
|
||
},
|
||
"ugoira-copy": {
|
||
"name": "ugoira",
|
||
"extension": "mkv",
|
||
"ffmpeg-args": ["-c", "copy"],
|
||
"libx264-prevent-odd": false,
|
||
"repeat-last-frame": false
|
||
}
|
||
},
|
||
|
||
"#": "use a custom cache file location",
|
||
"cache": {
|
||
"file": "~/gallery-dl/cache.sqlite3"
|
||
}
|
||
}
|