clamz - download MP3 music files from Amazon.com
clamz [ options ] amz-file ...
clamz is a little command-line program to download MP3
files from Amazon.com's music store. It is intended to serve as a substitute
for Amazon's official MP3 Downloader, which is not free software (and
therefore is only available in binary form for a limited set of platforms.)
clamz can be used to download either individual songs or complete
albums that you have purchased from Amazon.
In order to use clamz, you must first enable the ``MP3
dowloader mode'' by visiting the following URL:
- http://www.amazon.com/gp/dmusic/after_download_manager_install.html?AMDVersion=1.0.9
If you are outside the US, replace `amazon.com' with the
corresponding domain for your country (e.g., amazon.co.uk for the UK, or
amazon.fr for France.) Amazon does not allow anyone to purchase MP3 files
from outside their country of residence.
To download the contents of an AMZ file into the current
directory, just run
- clamz some-file-name.amz
More advanced options are listed below.
- -o name-format,
--output=name-format
- Set the name of the downloaded file(s). This may contain any of several
variables which are derived from the input AMZ file; see FORMAT
VARIABLES below. Note that the format string should be enclosed in
single quotes, to stop the shell from expanding variables itself.
- -d directory-format,
--output-dir=directory-format
- Set the directory where the downloaded files should be placed. (If this
directory does not exist, it will be created.) This may also contain
format variables.
- -r, --resume
- Resume downloading a partially-downloaded album. (By default, if you are
downloading a file named foo.mp3, and the file foo.mp3 already exists in
the destination directory, clamz will rename the new file to
foo.mp3.1 to avoid overwriting the old file. If the -r option is
used, clamz will instead assume that the first part of the file has
already been downloaded, and will resume downloading from where it left
off.)
- -i, --info
- Rather than downloading anything, just display detailed information about
the given AMZ file(s) to standard output.
- -x, --xml
- Rather than downloading anything, print the raw, decrypted XML data from
the AMZ file to standard output.
- -v, --verbose
- Display detailed information while downloading.
- -q, --quiet
- Turn off the normal progress display; display only error messages.
- --forbid-chars=characters
- Do not allow the given characters to be used in output filenames.
Note that control characters and slashes may never be used in
filenames.
- --allow-chars=characters
- Opposite of the above; remove the given characters from the set of
disallowed characters.
- --allow-uppercase
- Allow uppercase letters in filenames.
- --forbid-uppercase
- Do not allow uppercase letters in filenames.
- --utf8-filenames
- Use UTF-8 when writing filenames (the default behavior is to use UTF-8 if
the system locale says so, otherwise ASCII.)
- --ascii-filenames
- Use only ASCII characters in filenames.
- --help
- Print out a summary of options.
- --version
- Print out version information.
As part of a name-format or directory-format option,
you may include references to environment variables (e.g., $HOME) or
to the `xdg-user-dirs' configuration variables (e.g., $XDG_MUSIC_DIR
or $XDG_DESKTOP_DIR.)
In addition, the following special variables are defined for each
track, based on the information provided in the AMZ file, and subject to the
above configuration options (--forbid-chars,
--forbid-uppercase, etc.)
- ${title}, ${creator}, ${tracknum}, ${discnum},
${genre}, ${asin}
- Title, creator, track number, disc number, genre, and ASIN (Amazon
Standard Identification Number) of each individual track.
- ${album}, ${album_artist}, ${album_asin}
- Title, primary artist, and ASIN of the album the track comes from. (This
information is available both for single-track and full-album
downloads.)
- ${suffix}
- Suffix of the output file (currently only `mp3'.)
- ${amz_title}, ${amz_creator}, ${amz_genre},
${amz_asin}
- These variables formerly contained metadata for the AMZ file as a whole;
current AMZ files do not contain this information. Using these variables
is not recommended.
Similar to shell variable expansion, you can also use the
following conditional expressions:
- ${var:-string}
- Expands to the value of variable var if it is defined and
non-empty; otherwise, expands to string (which may itself contain
variable references.)
- ${var:+string}
- Expands to string if the variable var is defined and
non-empty; otherwise, expands to an empty string.
Note that when you include format variables in a command-line
argument, you will usually need to enclose the argument in single quotes
('...'), or insert a backslash before the `$', to prevent the shell from
trying to expand the variables itself.
- $HOME/.clamz/config
- General configuration file, providing default settings for the
--output, --forbid-chars, --allow-uppercase and
--utf8-filenames options.
- $HOME/.clamz/amzfiles/
- Directory containing backup copies of AMZ files.
- $HOME/.clamz/logs/
- Directory containing log files.
- http_proxy
- HTTP proxy to use for downloading files; use `server:port' to specify a
port number.
Benjamin Moody <floppusmaximus@users.sf.net>