usage: mmusicc (-s SOURCE | -sdb SOURCE_DB) (-t TARGET | -tdb TARGET_DB) [-h]
               [--version] [--album] [--only-meta | --only-files] [--dry-run]
               [-v] [-a] [--log-file LOG_FILE] [-f FORMAT] [-o FFMPEG_OPTIONS]
               [--white-list-tags WHITE_LIST_TAGS [WHITE_LIST_TAGS ...]]
               [--black-list-tags BLACK_LIST_TAGS [BLACK_LIST_TAGS ...]]
               [--lazy-import] [--delete-existing-metadata]
               [--path-config PATH_CONFIG]

Metadata and file syncing the following combination are possible:
  - file   --> file
  - file   --> parent folder (target name is generated from source)
  - folder --> folder        (use --album to not to move through tree)
  - folder --> db            (full path as primary key)
  - db     --> folder        (key matching starts at leave of path)

Supported Formats: 
['FLAC', 'MP3', 'Ogg Opus', 'Ogg Vorbis']
in Containers:
['.flac', '.mp1', '.mp2', '.mp3', '.mpeg', '.mpg', '.oga', '.ogg',
'.opus']

Required Options:
  -s SOURCE, --source SOURCE
                        source file/album/lib-root.
  -sdb SOURCE_DB, --source-db SOURCE_DB
                        source database (SQLite database file or (not tested)
                        database URL.
  -t TARGET, --target TARGET
                        target file/album/lib-root.
  -tdb TARGET_DB, --target-db TARGET_DB
                        target database.

General Options:
  -h, --help            Show this help message and exit.
  --version             show program's version number and exit
  --album               only sync folder level
  --only-meta           only sync meta, don't sync files. Auto set when
                        syncing from/to database.
  --only-files          only sync files, don't update metadata.
  --dry-run             do everything as usual, but without writing (file and
                        database). It is recommended to use with --only-meta
                        or --only-files, otherwise errors are likely.
  -v, --verbose         print log messages. can be stacked up to 2 (info,
                        debug).
  -a, --all             print log for unchanged files.
  --log-file LOG_FILE   Log file for detailed logging at DEBUG level. If file
                        exist log is appended.

File Conversion:
  -f FORMAT, --format FORMAT
                        output container format of ffmpeg conversion (ignored
                        when target is file_path).
  -o FFMPEG_OPTIONS, --ffmpeg-options FFMPEG_OPTIONS
                        conversion options for ffmpeg conversion, if empty
                        ffmpeg defaults are used. It is recommended to test
                        them directly with ffmpeg before they are used with
                        mmusicc.

Metadata Syncing:
  --white-list-tags WHITE_LIST_TAGS [WHITE_LIST_TAGS ...]
                        Tags to be whitelisted. Can be passed as file (Plain
                        text file, #containing tags separated with a new line)
                        or as one or multiple arguments.
  --black-list-tags BLACK_LIST_TAGS [BLACK_LIST_TAGS ...]
                        Tags to be blacklisted. Can be passed as file (Plain
                        text file, #containing tags separated with a new line)
                        or as one or multiple arguments.
  --lazy-import         do not overwrite an existing non-None tag with None
                        when importing metadata. Therefore, if a tag is not
                        excluded in the source it is not deleted in the target
                        and the tag in the target remains unchanged.
  --delete-existing-metadata
                        delete existing metadata from target. This includes
                        all defined, and unprocessed tags.
  --path-config PATH_CONFIG
                        file path to custom config file.
