Skip to content

CLI utility for downloading images and ACG illustrations

Notifications You must be signed in to change notification settings

istudyatuni/artworks-downloader

Repository files navigation

Artworks downloader

PyPI

Supported sites

Supported URL types

Install

With pip

pip install -U art-dl

Then run as art-dl: #usage

Build from source

You need poetry, install it, then run from inside the project

poetry install --no-dev

# run with poetry
poetry run python -m art_dl

# enter venv created with poetry
poetry shell
# run inside it as
python -m art_dl
# or
art-dl

# create and activate venv, e.g. with virtualenvwrapper, then
poetry install --no-dev
art-dl

Alternatively, build binary with nuitka:

poetry install
poetry shell
python -m nuitka art_dl

After that you will have binary in the root directory.

Usage

usage: art-dl [-h] [-u URL] [-l LIST] [--folder FOLDER] [--action ACTION] [-q] [-v] [--version]

Artworks downloader

options:
  -h, --help            show this help message and exit
  -u URL, --url URL     URL to download
  -l LIST, --list LIST  File with list of URLs to download, one URL per line
  --folder FOLDER       Folder to save artworks. Default folder - data
  --action ACTION
  -q, --quiet           Do not show logs
  -v, --verbose         Show more logs
  --version             Show version

Sites with simple usage

Just run

# download single url
art-dl -u [URL]
# download urls from file with list of urls, one url per line
art-dl -l [file with list of urls]

DeviantArt

You should have deviantart.com account, login to it, then

  • register an application

    • go to https://www.deviantart.com/developers/apps
    • click "Register Application"
    • in field "OAuth2 Redirect URI Whitelist (Required)" under "Application Settings" block paste http://localhost:23445
    • scroll to bottom and check "I have read and agree to the API License Agreement."
    • click "Save"
    • in the block with newly created application click "Publish"
  • save client_id and client_secret in this application

    • run
    art-dl --action deviantart:register
    • paste needed values
  • authorize application

    • open suggested link
    • click "Authorize"

After that you can use it as other sites: #usage

Proxy

Run

art-dl --action config:proxy

Enter proxy, for example, socks5://localhost:1080

Notes

Pixiv

If the artwork has more one image, you can specify which images should be downloaded, for example, if the artwork has 10 images and you want to download 1, 3, 4, 5 and 7 image, you can add #1,3-5,7 to the link for that: https://www.pixiv.net/<lang>/artworks/<id>#1,3-5,7.

Twitter

Here we use an alternative frontend for Twitter: https://nitter.net (Github)

Wallhaven

NSFW images supported only with API key, to use it, get it from account settings, then run

art-dl --action wallhaven:key

Supported URL types

  • artstation.com
    • https://www.artstation.com/artwork/<hash>
    • https://www.artstation.com/<artist>
  • deviantart.com
    • All deviations
      • https://www.deviantart.com/<artist>
      • https://www.deviantart.com/<artist>/gallery/all
    • "Featured" collection
      • https://www.deviantart.com/<artist>/gallery
    • https://www.deviantart.com/<artist>/gallery/<some number>/<gallery name>
    • https://www.deviantart.com/<artist>/art/<name>
  • imgur.com
    • https://imgur.com/a/<id>
    • https://imgur.com/gallery/<id>
    • https://imgur.com/t/<tag>/<id>
  • pixiv.net
    • https://www.pixiv.net/artworks/<id>

    • https://www.pixiv.net/<lang>/artworks/<id>

    • Other sites with the same content as pixiv:

      • https://zettai.moe/detail?id=<id>
  • reddit.com
    • https://redd.it/<id>
    • https://www.reddit.com/comments/<id>
    • https://www.reddit.com/gallery/<id>
    • https://www.reddit.com/r/<subreddit>/comments/<id>/<any name>
  • twitter.com
    • https://(mobile.)twitter.com/<account>/status/<id>
    • https://nitter.net/<account>/status/<id>
  • wallhaven.cc
    • https://wallhaven.cc/w/<id>
    • https://whvn.cc/<id>