mirror of https://github.com/captn3m0/muse-dl.git synced 2024-07-22 04:24:22 +00:00
Go to file
Nemo 2a35f3c68c [dep] Crystal Upgrade to 1.10.1
The Crystal Debian repo has moved, so we shift as well.
Debian 10 is still supported, so use it for now
2023-10-31 23:44:52 +05:30
.github Create FUNDING.yml 2022-05-30 14:50:06 +05:30
spec Adds tests for page detection 2020-06-30 16:50:49 +05:30
src Dependency and version bump 2021-06-04 13:56:51 +05:30
.dockerignore Adds a release build script 2020-04-04 02:02:30 +05:30
.editorconfig Initial commit 2020-03-29 00:59:47 +05:30
.gitignore Catch books with missing dates 2020-04-04 01:10:11 +05:30
.travis.yml Fix Crystal and DL3008 issues 2020-05-14 03:40:42 +05:30
Dockerfile [dep] Crystal Upgrade to 1.10.1 2023-10-31 23:44:52 +05:30
LICENSE Initial commit 2020-03-29 00:59:47 +05:30
Makefile [make] Adds tests to Makefile 2020-06-16 19:13:52 +05:30
README.md Dependency and version bump 2021-06-04 13:56:51 +05:30
shard.lock [dep] Dependency Upgrade 2023-10-31 23:42:35 +05:30
shard.yml Dependency and version bump 2021-06-04 13:56:51 +05:30
static.Dockerfile Switch to official crystal image 2020-04-04 03:39:19 +05:30

muse-dl Travis (.org) GitHub issues GitHub issues by-label GitHub GitHub top language PRs Welcome Docker Cloud Automated build Docker Cloud Build Status Docker Image Size (latest semver)

Download PDFs from Project MUSE and stitch them together into a single-file using pdftk.


Any downloads you perform with this tool are for your own usage. I personally hate reading PDFs on a browser, this lets me read them much more easily offline. This is just for personal use.


Linux / Build

git clone https://github.com/captn3m0/muse-dl.git
cd muse-dl
shards install
shards build
./bin/muse-dl --help

Linux / Download

A linux x86_64 static build is available in the latest release: https://github.com/captn3m0/muse-dl/releases/latest. Save the file as muse-dl and remember to mark it as executable (chmod +x).


A docker image is available at captn3m0/muse-dl on Docker Hub. The working directory for the image is set as /data, so you'll need to mount your output-directory as /data for it to work. Sample invocations;

# Download the book, and put it in your Downloads directory
docker run -it /home/nemo/Downloads:/data captn3m0/muse-dl:edge https://muse.jhu.edu/book/875

# If you have a list.txt file in your Downloads directory, then you can run
docker run -it /home/nemo/Downloads:/data captn3m0/muse-dl:edge /data/list.txt

# If you want to keep the temporary files with your host, and not delete them
docker run -it /home/nemo/Downloads:/data /tmp:/musetmp captn3m0/muse-dl:edge --tmp-dir /musetmp --no-cleanup https://muse.jhu.edu/book/875

Replace edge with the latest version number if you'd like to run a tagged release.

Docker Images

The following images are available:

  • edge: Run muse-dl against latest master.
  • edge-static: Get the pre-built static-binary against latest master.
  • v1.3.1: Run muse-dl against the specific release.
  • v1.3.1-static: Get the pre-built static binary against the specific release.


Please ensure you have pdftk installed, unless you're running via docker.


Usage: muse-dl [--flags] [URL|INPUT_FILE]

URL: A link to a book on the Project MUSE website, eg https://muse.jhu.edu/book/875
INPUT_FILE: Path to a file containing a list of links

    --no-cleanup                     Don't cleanup temporary files
    --tmp-dir PATH                   Temporary Directory to use
    --output FILE                    Output Filename
    --no-bookmarks                   Don't add bookmarks in the PDF
    --clobber                        Overwrite the output file, if it already exists.
    --dont-strip-first-page          Disables first page from being stripped. Use carefully
    --cookie COOKIE                  Cookie-header
    -h, --help                       Show this help

Sample Run

muse-dl https://muse.jhu.edu/book/875
Saved final output to Accommodating Revolutions- Virginia's Northern Neck in an Era of Transformations, 1760-1810.pdf

Alternatively, if you pass a input-file.txt (sample), you can pass it as the sole parameter.

muse-dl input.txt

And it will download all the links in that file.


Licensed under the MIT License. See LICENSE file for details.