Nodes/Download Tools for ComfyUI/Social Media Downloader (gallery-dl)
ComfyUI Node

Social Media Downloader (gallery-dl)

Download images and media from 100+ websites using gallery-dl. Supports Instagram, Reddit, Twitter/X, DeviantArt, Pixiv, 500px, Flickr, Pinterest, Bluesky, and more. Features: resolution filtering, duplicate detection, automatic file organization, and persistent config paths.

By EricRollei·Created 9 months ago·Updated 6 months ago· 5
Social Media Downloader (gallery-dl)
    • output_dir
    • summary
    • download_count
    • success
    url_list# Enter URLs here, one per line # Supports 100+ sites: Instagram, Reddit, Twitter/X, DeviantArt, Pixiv, 500px, Flickr, Pinterest, Bluesky, and more # Examples: # https://www.instagram.com/username/ # https://www.reddit.com/r/subreddit/ # https://twitter.com/username
    output_dir./gallery-dl-output
    url_file
    config_path
    cookie_file
    use_browser_cookiesfalse
    browser_namefirefox
    use_download_archivetrue
    archive_file./gallery-dl-archive.sqlite3
    skip_videosfalse
    filter_by_resolutiontrue
    min_image_width768
    min_image_height768
    extract_metadatatrue
    organize_filestrue
    instagram_includeposts
    download_timeout1800
    extra_options
    seed0
    CategoryDownloaders

    Inputs (19)

    NameTypeDefaultDescription
    url_listSTRING# Enter URLs here, one per line # Supports 100+ sites: Instagram, Reddit, Twitter/X, DeviantArt, Pixiv, 500px, Flickr, Pinterest, Bluesky, and more # Examples: # https://www.instagram.com/username/ # https://www.reddit.com/r/subreddit/ # https://twitter.com/usernameEnter URLs to download from, one per line. Supports Instagram, Reddit, Twitter/X, DeviantArt, Pixiv, 500px, Flickr, Pinterest, Bluesky, and 90+ other sites. Lines starting with # are ignored.
    output_dirSTRING./gallery-dl-outputDirectory where downloaded files will be saved. Relative paths are relative to ComfyUI's output folder. Files are organized into subfolders by site and user.
    url_fileoptSTRINGOptional: Path to a text file containing URLs (one per line). Useful for batch downloading from a prepared list. Leave empty to use url_list above.
    config_pathoptSTRINGPath to gallery-dl.conf config file. This single file contains credentials for ALL sites (Instagram, Reddit, 500px, etc.) - gallery-dl auto-selects the right ones based on URL. Path is auto-saved for next time. Recommended: ./configs/gallery-dl.conf
    cookie_fileoptSTRINGPath to exported cookie file (Netscape/JSON format). Only used when 'Use Browser Cookies' is OFF and you need site-specific cookies not in config. Usually leave empty - config file credentials work better. Path is auto-saved.
    use_browser_cookiesoptBOOLEANfalseOFF (recommended): Use credentials from config file - most reliable. ON: Extract cookies directly from browser (Firefox works best; Chrome/Edge require admin rights and browser closed).
    browser_nameoptCOMBOfirefoxBrowser to extract cookies from when 'Use Browser Cookies' is ON. Firefox recommended - works without admin rights. Chrome/Edge need admin + browser closed.
    use_download_archiveoptBOOLEANtrueON (recommended): Track downloaded files in SQLite database to skip duplicates on future runs. OFF: Re-download everything, may create duplicates.
    archive_fileoptSTRING./gallery-dl-archive.sqlite3Path to download archive database (SQLite). Tracks what's been downloaded to avoid duplicates. Delete this file to force re-downloading everything.
    skip_videosoptBOOLEANfalseON: Download only images, skip all video files. OFF: Download both images and videos. Useful when you only want still images from a mixed gallery.
    filter_by_resolutionoptBOOLEANtrueON: Skip images smaller than min_image_width/height (removes thumbnails, icons, low-res images). Videos are never filtered. Sites without dimension metadata (Bunkr, Cyberdrop) will download all images. OFF: Download all images regardless of size.
    min_image_widthoptINT7680–8192Minimum image width in pixels when filter_by_resolution is ON. Images narrower than this are skipped. Set to 0 to disable width filtering. Note: Sites that don't provide dimension metadata will download all images.
    min_image_heightoptINT7680–8192Minimum image height in pixels when filter_by_resolution is ON. Images shorter than this are skipped. Set to 0 to disable height filtering. Note: Sites that don't provide dimension metadata will download all images.
    extract_metadataoptBOOLEANtrueON: Save download metadata to JSON file (URLs, timestamps, file counts, errors). Useful for tracking what was downloaded. OFF: No metadata file created.
    organize_filesoptBOOLEANtrueON: Sort downloaded files into subfolders by type (images/, videos/, audio/, other/). OFF: Put all files in the main output folder without sorting.
    instagram_includeoptCOMBOpostsInstagram only: What content to download. 'posts' = feed posts, 'stories' = current stories (24hr), 'highlights' = saved story highlights, 'reels' = reels videos, 'all' = everything. Combine with comma: 'posts,reels'.
    download_timeoutoptINT180060–36000Maximum time in seconds for this run. Default 1800s (30 min). For huge galleries: 7200=2hr, 14400=4hr, 28800=8hr. TIP: If it times out, just run again - gallery-dl automatically resumes from where it left off using the download archive!
    extra_optionsoptSTRINGAdvanced gallery-dl options (one per line or space-separated): • --limit N: Max N files to download • --range 1-50: Download items 1-50 only • --no-download: Simulate without downloading • --write-metadata: Save per-file JSON metadata • --ugoira-conv: Convert Pixiv ugoira to video • -v: Verbose output for debugging • --sleep N: Wait N seconds between requests • --retries N: Retry failed downloads N times Folder organization examples: • Kemono by post: -o directory=["{service}","{user}","{id}_{title}"] • Flat by user: -o directory=["{category}","{user}"] See docs: https://github.com/mikf/gallery-dl/blob/master/docs/options.md
    seedoptINT00–18446744073709550000Random seed to force re-execution. Click 🎲 to randomize or change manually. Useful for resuming downloads after timeout - change the seed to run again without modifying other settings.

    Outputs (4)

    NameTypeDescription
    output_dirSTRING
    summarySTRING
    download_countINT
    successBOOLEAN