Перейти к основному содержимому

gallery-dl

gallery-dl — утилита командной строки для скачивания изображений и коллекций медиа из сотен галерей, бордов, социальных сетей и хостингов. Написана на Python, активно развивается, поддерживает сайт-specific экстракторы с метаданными.

Сайт: github.com/mikf/gallery-dl

Когда использовать​

✅ Подходит, если нужно:

  • массово скачать изображения из Instagram, Twitter, Pixiv, DeviantArt, Tumblr, Reddit, Danbooru и других галерей;
  • сохранить полные метаданные (теги, описание, автор, EXIF, рейтинг) рядом с файлами в JSON;
  • иметь гибкую фильтрацию (по типу файла, размеру, дате, тегам, рейтингу);
  • вести инкрементальный архив с надёжным --download-archive (SQLite);
  • работать с NSFW-контентом в исследовательских целях.

❌ Не лучший выбор, если:

  • цель — видео, а не изображения — yt-dlp;
  • нужна визуальная дедупликация (по перцептивным хешам) — посмотрите Hydrus Network или собственный пайплайн;
  • нужно сохранить HTML-страницу с UI — SingleFile или Browsertrix Crawler;
  • целевая платформа не поддерживается экстракторами — проверьте Supported sites.

Зачем нужен архивисту​

Видео и текст — половина веб-контента. Вторая половина — это изображения: посты в Instagram, иллюстрации на DeviantArt/Pixiv, фото в Twitter, доски на Pinterest, NSFW-коллекции на Flickr. Браузерные расширения вроде SingleFile сохраняют одну страницу, но для массовой архивации галерей нужен специализированный инструмент.

gallery-dl решает задачи:

  • Скачать все фото из Instagram-профиля (с метаданными).
  • Собрать плейлист пинтереста в один каталог.
  • Заархивировать иллюстрации автора с Pixiv.
  • Скачать всю доску Tumblr, Reddit-сабреддит, e621.
  • Извлечь EXIF, описания, теги — для последующей каталогизации.

Возможности​

  • 200+ поддерживаемых сайтов через систему экстракторов.
  • Иерархия каталогов по формату категория/{субкатегория}/файл.
  • Метаданные: JSON sidecar, EXIF, описания, теги, автор.
  • Cookies и аутентификация для приватных/приватных аккаунтов.
  • Фильтрация: по типу файла, размеру, дате, тегам, рейтингу.
  • Пост-процессинг: архивирование, переименование, удаление дубликатов.
  • Возобновление загрузки через архив скачанных.
  • Rate limiting (задержки, окна времени, лимиты по дням).
  • Параллельные соединения для ускорения.
  • Поддержка NSFW — критично для архивации исследовательских корпусов.
  • Выходные форматы: JPEG, PNG, WEBP, GIF, MP4 (для постов с видео), WEBP-анимации.
  • Archive download — для Reddit, где это единственный способ получить удалённый контент.

Поддерживаемые платформы (выборка)​

КатегорияСайты
СоцсетиTwitter/X, Tumblr, Mastodon, VK
Арт-хостингиPixiv, DeviantArt, ArtStation, Behance, Newgrounds
Иллюстрированные бордыDanbooru, Gelbooru, e621, Sankaku, Rule34
ФотоFlickr, 500px, Imgur, Reddit-сабреддиты, Pinterest
Имиджборды4chan, 8chan
NSFW-платформыnhentai, e-hentai, Redgifs, MissKobayashi
КомиксыMangadex, Webtoon, Comic Walker
НовостныеReuters, Getty Images, NYT
ДругоеGitHub, Patreon, Reddit, Tistory

Полный список: github.com/mikf/gallery-dl/blob/master/docs/supportedsites.md.

Когда использовать​

✅ Подходит для:

  • Массовой архивации изображений (авторы на Pixiv, доски на Pinterest, сабреддиты).
  • Иллюстрированных коллекций (NSFW, арт, доски, борды).
  • Сбора изображений по списку URL.
  • Получения метаданных для каталогизации.
  • Восстановления удалённого контента через Pushshift-архивы (Reddit).

❌ Не подходит для:

  • Видео — используйте yt-dlp.
  • Архивации страниц целиком с комментариями и UI — используйте Browsertrix.
  • Скачивания HTML-страниц — используйте Wpull.
  • Загрузки файлов по одному URL — overkill, используйте Wget или curl.

Установка​

Через пакетные менеджеры​

# macOS
brew install gallery-dl

# Linux (pipx — рекомендуется)
pipx install gallery-dl

# Arch
sudo pacman -S gallery-dl

# Windows
winget install gallery-dl

Через pip​

pip install -U gallery-dl

Из исходников (для разработчиков)​

git clone https://github.com/mikf/gallery-dl
cd gallery-dl
pip install -e .

Зависимости​

  • Python 3.8+.
  • ffmpeg (опционально) — для скачивания видео-постов.
  • yt-dlp (опционально) — fallback для платформ с видео.
  • PyYAML, requests, bs4, lxml, Pillow, mutagen — основные зависимости.
  • pycryptodome, browser-cookie3 — для приватных аккаунтов.

Использование​

Скачать все посты пользователя​

# Twitter
gallery-dl "https://twitter.com/username"

# Instagram
gallery-dl "https://www.instagram.com/username/"

# Pixiv (по artist ID)
gallery-dl "https://www.pixiv.net/users/12345"

# Tumblr
gallery-dl "https://username.tumblr.com"

# Reddit
gallery-dl "https://www.reddit.com/r/subreddit"

Скачать одну запись​

gallery-dl "https://www.instagram.com/p/CxYz123/"
gallery-dl "https://twitter.com/username/status/1234567890"

Скачать список URL из файла​

# urls.txt
https://twitter.com/user1/status/123
https://twitter.com/user2/status/456
https://www.pixiv.net/artworks/789

gallery-dl --input-file urls.txt

Фильтрация по типу файла​

# Только JPEG
gallery-dl --filter "extension in ('jpg', 'jpeg')" URL

# Только видео
gallery-dl --filter "extension in ('mp4', 'webm')" URL

# Минимум 1920x1080
gallery-dl --filter "width >= 1920 and height >= 1080" URL

С архивом скачанных (не качать повторно)​

gallery-dl --download-archive archive.sqlite3 URL

Используется SQLite — надёжнее текстового файла.

С cookies (приватные аккаунты)​

# Из браузера
gallery-dl --cookies-from-browser firefox URL
gallery-dl --cookies-from-browser chrome URL

# Из файла (экспорт через расширение Get cookies.txt)
gallery-dl --cookies cookies.txt URL

С ограничением скорости​

gallery-dl --sleep 2-5 URL  # случайная задержка 2-5 сек
gallery-dl --rate 30 URL # макс. 30 запросов в минуту

Параллельные соединения​

gallery-dl --jobs 4 URL  # 4 параллельных потока

С метаданными в JSON​

gallery-dl --write-metadata --write-info-json URL

Каждый файл получает <filename>.json со всеми метаданными (автор, дата, теги, описание, EXIF, рейтинг).

Конфигурация​

~/.config/gallery-dl.conf (YAML)​

# Глобальные настройки
extractor:
base-directory: ~/Archives/gallery-dl
directory: ["{category}", "{subcategory}"]
filename: "{id}.{extension}"
skip: true
archive: "~/.gallery-dl-archive.sqlite3"

# Задержки (вежливый краулинг)
sleep: 2-5

# Параллелизм
jobs: 4

# User-Agent
user-agent: "Mozilla/5.0 (compatible; gallery-dl/1.27; +https://github.com/mikf/gallery-dl)"

# Cookies из Firefox
cookies-from-browser: firefox

# Сайт-специфичные настройки
twitter:
filename: "{tweet_id}_{num}.{extension}"
videos: true
retweets: false

pixiv:
username: "my-user"
password: "my-token" # или через refresh-token
metadata: true

danbooru:
filename: "{id}_{artist}_{character}_{tag_string}.{extension}"
tags: true

Аутентификация через OAuth​

gallery-dl oauth:twitter     # выдаст URL для логина
gallery-dl oauth:pixiv
gallery-dl oauth:reddit

Сравнение с другими инструментами​

ИнструментСайтовМетаданныеПараллелизмФильтрацияNSFW
gallery-dl200+✅ EXIF, JSON✅✅ regex/expr✅
yt-dlp1800+✅ info.json✅✅⚠️
Imgur Album Downloader1❌❌❌✅
PixivUtil21 (Pixiv)✅✅✅✅
Powerful-Pixiv-Downloader1 (Pixiv)✅✅✅✅
Hydrus Network50+✅ (своя БД)✅✅✅
  • Нужна универсальность — один инструмент для десятков платформ.
  • Важны метаданные (теги, автор, описание) в машиночитаемом виде.
  • Нужна гибкая фильтрация (по размеру, типу, дате).
  • Архивируете NSFW-контент (для исследований, истории искусств).

Когда лучше yt-dlp​

  • Цель — видео, а не изображения.
  • Платформа — YouTube, VK-видео, Vimeo.

Когда лучше Hydrus Network​

  • Нужен локальный каталог с дедупликацией и тегами.
  • Работа в GUI (с метками, коллекциями, поиском).
  • Миллионы файлов (Hydrus спроектирован для больших коллекций).

Best practices​

1. Используйте архив скачанных​

gallery-dl --download-archive archive.sqlite3 URL

Это главная best practice. Без архива повторный запуск будет качать заново. SQLite-формат надёжнее текстового.

2. Метаданные — обязательно​

gallery-dl --write-metadata --write-info-json URL

Теги, описание, автор, дата, EXIF — без метаданных коллекция изображений это просто груда файлов.

3. Уважайте rate limits​

gallery-dl --sleep 2-5 --rate 20 URL

--rate 20 — максимум 20 запросов в минуту, --sleep 2-5 — случайная задержка между запросами. Это защищает от блокировок IP.

4. Используйте cookies из браузера, а не логин-пароль​

gallery-dl --cookies-from-browser firefox URL

Cookies не «ломают» 2FA, их можно отозвать, они не сохраняют пароль в конфиге.

5. Регулярные выгрузки через cron​

# Каждый понедельник — обновить архив художника на Pixiv
0 2 * * 1 /usr/local/bin/gallery-dl \
--download-archive /opt/gallery-dl/pixiv-archive.sqlite3 \
--config /opt/gallery-dl/pixiv.conf \
"https://www.pixiv.net/users/12345" \
>> /var/log/gallery-dl.log 2>&1

6. Делите большие коллекции по каталогам​

# gallery-dl.conf
extractor:
base-directory: /mnt/external/archives
directory: ["{category}", "{subcategory}", "{year}", "{month}"]

7. Валидируйте скачанное​

# Проверить, что все JPEG действительно валидны
find . -name "*.jpg" -exec jpeginfo -c {} \; | grep "ERR"

Ограничения​

  • DRM / login-only — не все платформы поддерживаются (например, Behance требует авторизации, NSFW Flickr закрыт).
  • Зависимость от экстракторов — каждое изменение в API платформы может сломать скачивание. Обновляйте gallery-dl регулярно (pip install -U gallery-dl).
  • Нет визуальной дедупликации (только по хешу/имени). Для визуальной — нужен Hydrus или собственный скрипт.
  • Не качает комментарии — для этого нужен Browsertrix + gallery-dl.
  • Rate limits — Twitter/X, Pixiv агрессивно блокируют за быстрое скачивание.
  • NSFW-контент требует осторожности — соблюдайте законы юрисдикции.
  • Не пишет WARC — на выходе файлы + JSON sidecar, не WARC-формат. Для WARC-совместимой обёртки используйте Browsertrix Crawler или metawarc с пользовательским провайдером.
  • Платформы закрываются или требуют авторизацию — например, Twitter API стал платным с 2023; многие экстракторы требуют cookies авторизованного аккаунта.

Что дальше​

  • Для полнотекстового поиска по описаниям/тегам — экспортируйте .info.json в WARC и проиндексируйте через metawarc (index-content --text).
  • Для интеграции с AI-агентами — metawarc MCP-сервер.
  • Для регулярной архивации — добавьте команду в cron (см. «Best practices»).
  • Для правовой оценки — см. Правовые вопросы.

Юридические аспекты​

[!WARNING] Большинство платформ запрещают массовое скачивание в своих ToS. Не перепубликуйте скачанные изображения без разрешения правообладателя. Личное использование, исследование, архивирование в образовательных целях — в большинстве юрисдикций допустимо. Подробности: Правовые вопросы.

Ресурсы​

Связанные материалы​