CLI Quickstart

This page assumes you already have Conservator CLI installed and configured. If you do not, follow the Installation instructions first.

This guide will show you how to perform basic operations using the CLI. Please see the Python API Quickstart to get started using the Python API.

Basic Queries

There are four queryable types
  • Collections

  • Datasets

  • Videos

  • Projects

You can count them using count:

$ conservator projects count

If you want to count the number of results in a search query, you can include some search text (using Conservator Advanced Search syntax):

$ conservator projects count "ADAS"

For more advanced queries (that print the actual objects), you need to specify which fields to include or exclude. You can use the fields command to list all fields:

$ conservator projects fields

If you don’t specify fields, Conservator CLI will ask for all possible fields. This can take a very long time to fetch for queries with more than a few results.

To list the names of all projects:

$ conservator projects list -i name

If you want to include multiple fields, separate them with a comma:

$ conservator projects list -i name,id

Instead of listing all objects, you can also perform searches (using Conservator Advanced Search syntax):

$ conservator projects search "ADAS" -i name

These commands work with other types. For instance:

$ conservator datasets search "ADAS" -i name

Be careful with large queries (like listing all collections), they will take a long time.

Downloading Datasets

The process for downloading a Dataset mirrors CVC. To see the available commands:

$ conservator cvc --help

A shortcut to this command also exists:

$ cvc --help

You can clone a dataset into the current directory using its ID:

$ cvc clone DATASET_ID

Once cloned, you can download media with cvc download from within the dataset directory.

Please see the CVC Guide for more details.

Downloading Collections

First, find the ID of a collection you want to download using the website, search, etc. Then, use conservator collections download --help to view the available options for assets to download.

For instance, to download everything recursively to the current directory:

$ conservator collections download ID -r -d -v -f -m

Due to the potentially large number of files that may be present in a collection, if the download is interrupted before it can complete, running the same command again will resume the download where it left off. Files that were partially downloaded or corrupted will be downloaded again. Any existing dataset directories found in the target directory will not be downloaded again, unless the –overwrite-datasets option is supplied, in which case the dataset directories will be removed and re-downloaded (beware the risk of data loss when using this option).

Downloading Media

First, find the ID of a video or image you want to download using the website, search, etc.

Downloads can be done using the following command:

$ conservator videos download ID

To include metadata, add the -m command:

$ conservator videos download ID -m

If you only want metadata, use -mo.

An example for downloading a video and its metadata to the current path:

$ conservator videos download hzYzQhpGMsTcEt6Xx -v

The same commands also work for images (just replace videos with images).

Uploading Media

Media can be uploaded using the conservator collections upload command. This command takes a remote collection, and a local path. Its the preferred method of uploading media, as it has safeguards to retry failures, perform uploads in parallel, and output status clearly. To recursively create remote collections and uploads media from a local path:

$ conservator collections upload --recursive /remote/collection/path /local/path/to/upload

This command has options to filter the uploaded files and behavior. For all options, run:

$ conservator collections upload --help

Note

Currently, this command only accepts a directory path and can’t upload a single file path. You would need to create a directory containing only the single file, or use an individual media upload command as explained below.

Alternatively, individual Images and videos can be uploaded with the upload command:

$ conservator videos upload path/to/local/media.mp4 /path/on/conservator/

By default, the media will be uploaded with the same name as the local file. If you want to use a different name, you can specific it using --remote-name (-r for short):

$ conservator videos upload path/to/local/media.mp4 /path/on/conservator/ -r my_name.mp4

By default, the path on conservator must exist, but it can also be useful to upload to a path that doesn’t exist. You can create any required collections using --create-collections (-c for short):

$ conservator videos upload path/to/local/media.mp4 /path/to/create -c

Again, you can use these commands for uploading both videos or images.

Interactive Mode

Conservator CLI also has a powerful and useful interactive mode:

$ conservator interactive

This spawns a fake “shell” that emulates the directory structure of Conservator. Type conservator help for a list of commands:

$ help
Usage: $ [OPTIONS] COMMAND [ARGS]...

Commands:
  cd           Switch working directory
  collections  List child collections
  files        List file locker files
  help         Print this message
  images       List images
  info         Get information on the current collection
  ls           List collections, videos, images, and file locker files
  open         Open in browser
  pwd          Print the working directory
  tree         List child collection paths recursively
  videos       List videos

Use these commands to easily navigate around conservator, download and upload files, edit metadata and tags, and move media around. Use –help for more information about any specific command within the shell.

Multiple Configurations

Most users will only need a single Conservator config file called default, which is covered in the Installation instructions. However, users who need to use more than one Conservator configuration have a couple of different mechanisms available for switching among them:

  • Additional config files

  • Environment variables

Additional Config Files

Additional configurations can be created in the same manner as the default config, by just supplying a different name. For example, to create a new config file called testing for a test account:

$ conservator config create testing

Non-default configurations can be selected in any conservator operation by adding the --config option with the name of the config before the action (ordering of options in the commandline matters).

For example, to use a previously created testing configuration, to see how many projects are visible to that test account:

$ conservator --config testing projects count

Environment variables

If the following environment variables are exported before running Conservator CLI, it will use them in place of the default config file

  • CONSERVATOR_API_KEY

  • CONSERVATOR_URL (default: https://flirconservator.com/)

  • CONSERVATOR_MAX_RETRIES (default: 5)

  • CONSERVATOR_CVC_CACHE_PATH (default: .cvc/cache)

Note that CONSERVATOR_API_KEY must be set in order to use the environment rather than the default config file, while the others are all optional (shown defaults used if not explicitly set). If CONSERVATOR_API_KEY is not set, Conservator CLI will ignore the optional variables and simply use the default config file.

Also, if the --config option is used to select a non-default config file, that config file will take precedence over the environmant variables. The --config option must be omitted in order to make use of environment variables.

For example, to temporarily use a different account to see how many projects are visible to that account:

$ CONSERVATOR_API_KEY=<key for account> conservator projects count

However, this would use the settings from the testing config, and ignore the CONSERVATOR_API_KEY variable:

$ CONSERVATOR_API_KEY=<key for account> conservator --config testing projects count