Command Line

Arguments passed to festival-cli will always take priority over the same configuration options read from disk.

See JSON-RPC for method command-line syntax.

Usage: festival-cli [--OPTIONS] <METHOD> [--PARAM <VALUE>]

Arguments passed to `festival-cli` will always take
priority over configuration options read from disk.

Commands:
  collection_new            Create a new Collection (and replace the current one)
  collection_brief          Retrieve some brief metadata about the current Collection
  collection_full           Retrieve full metadata about the current Collection
  collection_brief_artists  Retrieve an array of every Artist name in the current Collection
  collection_brief_albums   Retrieve an array of every Album title in the current Collection
  collection_brief_songs    Retrieve an array of every Song title in the current Collection
  collection_full_artists   Retrieve an array of every Artist in the current Collection
  collection_full_albums    Retrieve an array of every Album in the current Collection
  collection_full_songs     Retrieve an array of every Song in the current Collection
  collection_entries        Retrieve an array of every Song in the current Collection, with its relational data
  collection_perf           View some performance stats about the latest Collection construction
  collection_health         View the health of the Collection (underlying files)
  collection_resource_size  View the size of the current Collection's underlying resources (audio files and art)
  daemon_config             Retrieve the active configuration of `festivald`
  daemon_methods            Retrieve all JSON-RPC methods this `festivald` knows about
  daemon_no_auth_rpc        Retrieve all no_auth_rpc JSON-RPC methods this `festivald` allows
  daemon_no_auth_rest       Retrieve all no_auth_rest REST resources this `festivald` allows
  daemon_remove_cache       Remove `festivald` cache from disk
  daemon_save               Save `festivald` data to disk
  daemon_seen_ips           Retrieve an array of the IP addresses `festivald` has seen
  daemon_shutdown           Shutdown `festivald`
  daemon_state              Retrieve brief state of `festivald`
  state_audio               Retrieve audio state
  state_queue_key           Retrieve state of the queue as Keys
  state_queue_song          Retrieve state of the queue as Song objects
  state_queue_entry         Retrieve state of the queue as Entry objects
  state_playing             Retrieve the current playback status
  state_repeat              Retrieve the currently set Repeat mode
  state_runtime             Retrieve the elapsed runtime & total runtime of the currently set Song
  state_volume              Retrieve the current volume level
  key_artist                Input an Artist key, retrieve an Artist
  key_album                 Input an Album key, retrieve an Album
  key_song                  Input a Song key, retrieve a Song
  key_entry                 Input a Song key, retrieve an Entry
  key_artist_albums         Input an Artist key, retrieve all their Albums
  key_artist_songs          Input an Artist key, retrieve all their Songs
  key_artist_entries        Input an Artist key, retrieve all their Songs in Entry form
  key_album_artist          Input an Album key, retrieve its Artist
  key_album_songs           Input an Album key, retrieve all its Songs
  key_album_entries         Input an Album key, retrieve all its Songs in Entry form
  key_song_artist           Input an Song key, retrieve its Artist
  key_song_album            Input an Song key, retrieve its Album
  key_other_albums          Input an Album key, retrieve all Albums by the same Artist
  key_other_songs           Input an Song key, retrieve all Songs by the same Artist
  key_other_entries         Input an Song key, retrieve all Songs by the same Artist in Entry form
  map_artist                Input an Artist name, retrieve an Artist
  map_album                 Input an Artist name and Album title, retrieve an Album
  map_song                  Input an Artist name, Album title, and Song title, retrieve a Song
  map_entry                 Input an Artist name, Album title, and Song title, retrieve an Entry
  map_artist_albums         Input an Artist name, retrieve all their Albums
  map_artist_songs          Input an Artist name, retrieve all their Songs
  map_artist_entries        Input an Artist name, retrieve all their Songs in Entry form
  map_album_songs           Input an Artist name and Album title, retrieve all its Songs
  map_album_entries         Input an Artist name and Album title, retrieve all its Songs in Entry form
  current_artist            Access the Artist of the currently set Song
  current_album             Access the Album of the currently set Song
  current_song              Access the currently set Song
  current_entry             Access the currently set Song, as an Entry
  rand_artist               Access a random Artist
  rand_album                Access a random Album
  rand_song                 Access a random Song
  rand_entry                Access a random Song, as an Entry
  search                    Input a string, retrieve arrays of Artist's, Album's, and Song's, sorted by how similar their names/titles are to the input
  search_artist             Input a string, retrieve an array of Artist's, sorted by how similar their names are to the input
  search_album              Input a string, retrieve an array of Album's, sorted by how similar their titles are to the input
  search_song               Input a string, retrieve an array of Song's, sorted by how similar their titles are to the input
  search_entry              Input a string, retrieve an array of Song's (in Entry form), sorted by how similar their titles are to the input
  toggle                    Toggle playback
  play                      Start playback
  pause                     Pause playback
  next                      Skip to the next song in the queue
  stop                      Clear the queue and stop playback
  previous                  Set the current Song to the previous in the queue
  clear                     Clear the queue
  seek                      Seek forwards/backwards or to an absolute second in the current Song
  skip                      Skip forwards a variable amount of Song's in the current queue
  back                      Go backwards a variable amount of Song's in the current queue
  shuffle                   Shuffle the current queue, then start playing from the 1st Song in the queue
  repeat                    Set a repeat mode
  volume                    Set the playback volume
  volume_up                 Raise the playback volume
  volume_down               Lower the playback volume
  queue_add_key_artist      Add an Artist to the queue with an Artist key
  queue_add_key_album       Add an Album to the queue with an Album key
  queue_add_key_song        Add an Song to the queue with an Song key
  queue_add_map_artist      Add an Artist to the queue with an Artist name
  queue_add_map_album       Add an Album to the queue with an Artist name and Album title
  queue_add_map_song        Add a Song to the queue with an Artist name Album title, and Song title
  queue_add_rand_artist     Add a random Artist to the queue
  queue_add_rand_album      Add a random Album to the queue
  queue_add_rand_song       Add a random Song to the queue
  queue_add_rand_entry      Add a random Song to the queue, receive it back in Entry form
  queue_add_playlist        Add a playlist to the queue
  queue_set_index           Set the current Song to a queue index
  queue_remove_range        Remove a range of queue indices
  playlist_new              Create a new empty playlist
  playlist_remove           Remove a playlist
  playlist_clone            Clone a playlist into a new one
  playlist_get_index        Get a Playlist Entry in a Playlist, using its index number
  playlist_remove_index     Remove a Playlist Entry in a Playlist, using its index number
  playlist_add_key_artist   Add an artist to a playlist
  playlist_add_key_album    Add an album to a playlist
  playlist_add_key_song     Add a song to a playlist
  playlist_add_map_artist   Add an artist to a playlist
  playlist_add_map_album    Add an album to a playlist
  playlist_add_map_song     Add a song to a playlist
  playlist_single           Retrieve a single playlist
  playlist_brief            Retrieve all playlist names
  playlist_full             Retrieve full data of all playlists
  help                      Print this message or the help of the given subcommand(s)

Options:
  -f, --festivald <URL>
          URL of the `festivald` to connect to
          
          The protocol, IPv4 address, and port of the
          `festivald` that `festival-cli` will connect
          to by default.
          
          Protocol must be:
            - http
            - https
          
          IP address must be IPv4.
          
          Default is: `http://127.0.0.1:18425`

  -t, --timeout <SECONDS>
          Set a timeout for a non-responding `festivald`
          
          If `festivald` does not respond with _at least_
          a basic HTTP header within this time (seconds),
          `festival-cli` will disconnect.
          
          0 means never disconnect.

  -i, --id <ID>
          The `JSON-RPC 2.0` ID to send to `festivald`.
          
          See below for more info:
          <https://jsonrpc.org/specification>

  -a, --authorization <USER:PASS or FILE>
          Authorization sent to `festivald`
          
          This matches the `authorization` config
          in `festivald`, see here for more info:
          <https://docs.festival.pm/daemon/authorization/authorization.html>
          
          A `festivald` with `HTTPS` or `.onion` must be
          used or `festival-cli` will refuse to start.
          
          An empty string disables this feature.
          
          Alternatively, you can input an absolute PATH to a file
          `festival-cli` can access, containing the string, e.g:
          ```
          authorization = "/path/to/user_and_pass.txt"
          ```
          
          In this case, `festival-cli` will read the file and attempt
          to parse it with the same syntax, i.e, the file should contain:
          ```
          my_user:my_pass
          ```

  -p, --proxy <PROXY>
          Route connections through a proxy
          
          Requests/responses will be routed via this proxy.
          
          Supported proxies are: `HTTP`, `SOCKS4`, and `SOCKS5`.
          
          The input must be:
            - Proxy protocol (`http://`, `socks4://`, `socks5://`)
            - Proxy IP
            - Proxy port
          
          For example: `festival-cli --proxy socks5://127.0.0.1:9050`

  -d, --debug
          Print debug information about the config/request/response

      --confirm-no-tls-auth
          Allow `--authorization` even without TLS
          
          This will let you set the authorization
          setting even if TLS is disabled.
          
          This means your `user:pass` will be sent in clear-text HTTP,
          unless you are wrapping HTTP in something else, like SSH
          port forwarding, or Tor.

      --dry-run
          Print debug information, but don't actually connect to `festivald`
          
          This implies `--debug`.

      --docs
          Open `festival-cli` documentation locally in browser

      --delete
          Delete all `festival-cli` files that are on disk
          
          This deletes all `cli` Festival folders.
          The PATHs deleted will be printed on success.

      --path
          Print the PATHs used by `festival-cli`
          
          All data saved by `festival-cli` is saved in these directories.
          For more information, see: <https://docs.festival.pm/cli/disk.html>

  -r, --reset-config
          Reset the current `festival-cli.toml` config file to the default
          
          Exits with `0` if everything went ok, otherwise shows error.

  -m, --methods
          Print all the JSON-RPC methods available

  -v, --version
          Print version

  -h, --help
          Print help (see a summary with '-h')