git‐annex‐addurl − add urls to annex

git annex addurl [url ...]

Downloads each url to its own file, which is added to the

     When youtube−dl is installed, it can be used to check
for a video embedded in  a web page at the url, and that is
added to the annex instead.  (However, this is disabled by
default as it can be a security risk.  See the documentation
of−ip−addresses in git‐annex(1) for

     Special remotes can add other special handling of
particular urls. For example, the bittorrent special remotes
makes urls to torrent files (including magnet links)
download the content of the torrent, using aria2c.

     Normally the filename is based on the full url, so will
look like "www.example.com_dir_subdir_bigfile". In some
cases, addurl is able to come up with a better filename
based on other information. Options can also be used to get
better filenames.


     Avoid immediately downloading the url. The url is still
     checked (via HEAD) to verify that it exists, and to get
     its size if possible.

     Don’t immediately download the url, and avoid storing
     the size of the url’s content. This makes git‐annex
     accept whatever content is there at a future point.

     This is the fastest option, but it still has to access
     the network to check if the url contains embedded
     media. When adding large numbers of urls, using
     −−relaxed −−raw is much faster.

     Prevent special handling of urls by youtube−dl,
     bittorrent, and other special remotes. This will for
     example, make addurl download the .torrent file and not
     the contents it points to.


     Use with a filename that does not yet exist to add a
     new file with the specified name and the content
     downloaded from the url.

     If the file already exists, addurl will record that it
     can be downloaded from the specified url(s).

     When the web server (or torrent, etc) provides a
     filename, use it as−is, avoiding sanitizing unusual
     characters, or truncating it to length, or any other

     git‐annex will still check the filename for safety, and
     if the filename has a security problem such as path
     traversal or an escape sequence, it will refuse to add

     Rather than basing the filename on the whole url, this
     causes a path to be constructed, starting at the
     specified depth within the path of the url.

     For example, adding the url with
     −−pathdepth=1 will use "dir/subdir/bigfile", while
     −−pathdepth=3 will use "bigfile".

     It can also be negative; −−pathdepth=−2 will use the
     last two parts of the url.

−−prefix=foo −−suffix=bar
     Use to adjust the filenames that are created by addurl.
     For example, −−suffix=.mp3 can be used to add an
     extension to the file.

−−jobs=N −JN
     Enables parallel downloads when multiple urls are being
     added.  For example: −J4

     Setting this to "cpus" will run one job per CPU core.

     Enables batch mode, in which lines containing urls to
     add are read from stdin.


−z   Makes the −−batch input be delimited by nulls instead
     of the usual newlines.

     When batch mode is enabled, makes it parse lines of the
     form: "$url $file"

     That adds the specified url to the specified file,
     downloading its content if the file does not yet exist;
     the same as git annex addurl $url −−file $file

     Enable JSON output. This is intended to be parsed by
     programs that use git‐annex. Each line of output is a
     JSON object.

     Include progress objects in JSON output.

     Messages that would normally be output to standard
     error are included in the json instead.

If annex.largefiles is configured, and does not match a
file, git annex addurl will add the non−large file directly
to the git repository, instead of to the annex. However,
this is not done when −−fast or −−relaxed is used.





Joey Hess <>