NixOS/dotfiles/gallery-dl.nix
2025-10-04 11:14:31 -06:00

312 lines
7.1 KiB
Nix

{
extractor = {
skip = "abort:5";
cookies = [
"firefox"
"/home/jawz/.librewolf/jawz"
"gnomekeyring"
];
retries = 10;
sleep-request = 0;
directlink = {
filename = "{filename}.{extension}";
directory = [ ];
};
bluesky = {
limit-rate = "400k-1M";
username = "blablablamagic.bsky.social";
password = "{env[GALLERY_DL_BLUESKY_PASSWORD]}";
reposts = false;
videos = true;
directory = [ "{author['handle']}" ];
include = [ "media" ];
};
twitter = {
skip = "abort:1";
retweets = false;
videos = "ytdl";
logout = true;
include = [ "media" ];
directory = [ "{user[name]}" ];
};
flickr = {
size-max = "Original";
access-token = "{env[GALLERY_DL_FLICKR_ACCESS_TOKEN]}";
access-token-secret = "{env[GALLERY_DL_FLICKR_ACCESS_TOKEN_SECRET]}";
directory = [
"{category}"
"{owner[username]}"
];
};
pinterest.directory = [
"{board[owner][username]}"
"{board[name]}"
];
wikifeet = {
page-reverse = true;
directory = [
"{category}"
"{celebrity}"
];
};
instagram = {
limit-rate = "200k-300k";
browser = "firefox:linux";
user-agent = "Mozilla/5.0 (X11; Linux x86_64; rv:143.0) Gecko/20100101 Firefox/143.0";
sleep = "66-123";
sleep-request = "66-123";
parent-directory = true;
directory = [ "{username}" ];
previews = true;
highlights = {
reverse = true;
directory = [ "{username}" ];
};
stories = {
reverse = true;
directory = [ "{username}" ];
};
tagged.directory = [
"{username}"
"tagged"
"{tagged_username}"
];
};
kemonoparty = {
limit-rate = "200k-300k";
retries = 10;
timeout = 5;
filename = "{id}_{filename}.{extension}";
directory = [
"{category}"
"{user}"
];
};
exhentai.directory = [
"{category}"
"{title}"
];
tumblr = {
access-token = "{env[GALLERY_DL_TUMBLR_ACCESS_TOKEN]}";
access-token-secret = "{env[GALLERY_DL_TUMBLR_ACCESS_TOKEN_SECRET]}";
external = true;
inline = true;
posts = "all";
reblogs = false;
parent-directory = true;
api-key = "{env[GALLERY_DL_TUMBLR_API_KEY]}";
api-secret = "{env[GALLERY_DL_TUMBLR_API_SECRET]}";
directory = [ "{blog_name}" ];
};
deviantart = {
limit-rate = "200k-300k";
refresh-token = "{env[GALLERY_DL_DEVIANTART_REFRESH_TOKEN]}";
include = "gallery,scraps";
flat = true;
original = true;
mature = true;
auto-watch = true;
auto-unwatch = true;
directory = [ "{username}" ];
};
furaffinity = {
directory = [
"{user}"
"{subcategory}"
];
include = [
"scraps"
"gallery"
];
};
patreon = {
limit-rate = "400k-1M";
filename = "{filename}.{num}.{extension}";
browser = "firefox";
directory = [
"(Patreon) {creator[vanity]}"
"({date:%Y%m%d}) {title} ({id})"
];
};
blogger = {
filename = "{filename} - {num}.{extension}";
directory = [
"{blog[name]}"
"{post[author]}"
"{post[title]} - [{post[id]}]"
];
};
artstation = {
external = true;
directory = [ "{userinfo[username]}" ];
};
gfycat.format = "webm";
reddit = {
user-agent = "Python:gallery-dl:v1.0 (by /u/captainjawz)";
client-id = "T7nZ6WZ3_onJWBhLP8r08g";
refresh-token = "{env[GALLERY_DL_REDDIT_REFRESH_TOKEN]}";
parent-directory = true;
directory = [ "{author}" ];
};
redgifs = {
reverse = true;
directory = [ "{userName}" ];
};
imgur.mp4 = true;
paheal.directory = [
"Husbands"
"{search_tags}"
];
rule34.directory = [
"Husbands"
"{search_tags}"
];
e621.directory = [
"Husbands"
"{search_tags}"
];
baraag.directory = [ "{account[username]}" ];
pixiv = {
refresh-token = "{env[GALLERY_DL_PIXIV_REFRESH_TOKEN]}";
directory = [ "{user[account]} - {user[id]}" ];
ugoira = true;
favorite.directory = [
"{user_bookmark[account]} - {user_bookmark[id]}"
"Bookmarks"
];
postprocessors = [
{
name = "ugoira";
extension = "webm";
keep-files = false;
whitelist = [ "pixiv" ];
ffmpeg-twopass = true;
ffmpeg-args = [
"-c:v"
"libvpx"
"-crf"
"4"
"-b:v"
"5000k"
"-an"
];
}
];
};
fanbox = {
embeds = true;
directory = [
"{category}"
"{creatorId}"
];
};
readcomiconline = {
limit-rate = "400k-1M";
chapter-reverse = true;
quality = "hq";
captcha = "wait";
postprocessors = [ "cbz" ];
directory = [
"comics"
"{comic}"
"{comic} #{issue}"
];
};
kissmanga = {
chapter-reverse = true;
captcha = "wait";
postprocessors = [ "cbz" ];
directory = [
"manga"
"{subcategory}"
"{manga}"
"{manga} Ch.{chapter}{chapter_minor}"
];
};
mangahere = {
chapter-reverse = true;
postprocessors = [ "cbz" ];
directory = [
"manga"
"{subcategory}"
"{manga}"
"{manga} Ch.{chapter}{chapter_minor}"
];
};
mangadex = {
chapter-reverse = true;
chapter-filter = "lang == 'en'";
postprocessors = [ "cbz" ];
directory = [
"manga"
"manga"
"{manga}"
"{manga} Ch.{chapter}{chapter_minor}"
];
};
manganelo = {
chapter-reverse = true;
chapter-filter = "lang == 'en'";
postprocessors = [ "cbz" ];
directory = [
"manga"
"{subcategory}"
"{manga}"
"{manga} Ch.{chapter}{chapter_minor}"
];
};
mangareader = {
chapter-reverse = true;
postprocessors = [ "cbz" ];
directory = [
"manga"
"{subcategory}"
"{manga}"
"{manga} Ch.{chapter}{chapter_minor}"
];
};
mangapanda = {
chapter-reverse = true;
postprocessors = [ "cbz" ];
directory = [
"manga"
"{subcategory}"
"{manga}"
"{manga} Ch.{chapter}{chapter_minor}"
];
};
webtoons = {
chapter-reverse = true;
postprocessors = [ "cbz" ];
directory = [
"webtoons"
"{comic}"
"{comic} #{episode}"
];
};
};
output.mode = "auto";
downloader = {
part = true;
part-directory = "/home/jawz/.cache/gallery-dl";
ytdl = {
logging = true;
format = "bestvideo+bestaudio/best";
module = "yt_dlp";
forward-cookies = true;
};
http = {
rate = null;
retries = 5;
timeout = 10.0;
verify = true;
};
};
postprocessor.cbz = {
name = "zip";
compression = "store";
mode = "safe";
extension = "cbz";
};
}