{ config, ... }: { programs.gallery-dl = { settings.extractor = { base-directory = "${config.xdg.userDirs.pictures}/gallery-dl"; postprocessors = [ { name = "metadata"; mode = "json"; whitelist = [ "danbooru" "moebooru" "gelbooru" "sankaku" "nhentai" "rule34" ]; } { name = "zip"; compression = "store"; extension = "cbz"; filter = "extension not in ('zip', 'rar')"; whitelist = [ "nhentai" "mangadex" ]; } ]; Danbooru.metadata = true; reddit = { archive-format = "s_{subreddit}{filename}"; directory = { "locals().get('is_gallery')" = [ "Reddit" "S" "{subreddit!C}" "{title[:120]!t:?/_/R /_/}{id}" ]; "" = [ "Reddit" "S" "{subreddit!C}" ]; }; filename = { "locals().get('is_gallery')" = "{title[:120]!t:?/_/R /_/}{id}{num:?_//>02}.{extension}"; "" = "{title[:120]!t:?/_/R /_/}{id}.{extension}"; }; }; artstation.external = true; # Try to follow external URLs of embedded players. ao3.formats = [ "pdf" "epub" "html" ]; bluesky = { include = [ "all" ]; # List of subcategories to include when processing a **user profile**. metadata = [ "facets" "user" ]; quoted = true; # Fetch media from quoted posts. }; }; # End of settings.extractor }; # End of programs.gallery-dl }