anchor.diff:  (in-package :next)
   
   (define-command download-video ()
  -  "Download the video of the current URL with an external program."
  +  "Download the video of the current URL with an external
  +program (`*download-program*').
  +
  +See `*download-args*' for the program arguments that are passed.
  +See `*preferred-download-directories*' for the output directory."
     (let* ((url (url (current-buffer))))
       (cond
         ((null next/video::*preferred-download-directories*)
  
positive.code: (defun download-arguments (url target-dir)
    "Return a list of arguments for the download command.
  
  Appends `*download-args' and -o /target/directory/%(title)s.%(ext)s (for youtube-dl)."
    (declare (ignorable url))
    (append *download-args* (list "-o" (format nil "~a/%(title)s.%(ext)s" target-dir))))
  
  
negative.code: 
  (declaim (type (or null string) *download-program*))
  (defparameter *download-program* "youtube-dl"
    "The external program to download videos with.")
  
  (declaim (type (or null list-of-strings) *download-args*))
  (defparameter *download-args* nil
    "Default arguments for the download command as a list of strings. See also the `download-arguments' function which extends the arguments.")
  
  ;; TODO: Make browser's download-path a list.
  (declaim (type (or null list) *preferred-download-directories*))
  