dsc
the DiscoDOS CLI.
usage: dsc [-h] [-v] [-o] {search,mix,suggest,import,stats,setup} ...
options
- -h, --help
show this help message and exit
- -v, --verbose
increases output verbosity / shows what DiscoDOS is doing under the hood (-v is INFO level, -vv is DEBUG level).
- -o, --offline
DiscoDOS checks for connectivity to online services (Discogs, MusicBrainz, AcousticBrainz) itself. This option forces offline mode. A lot of options work in on- and offline mode. Some behave differently, depending on connection state.
dsc import
usage: dsc import [-h] [--add-to-collection | --tracks | --brainz]
[--resume OFFSET] [--force-brainz] [--skip-unmatched]
[RELEASE_ID]
- release_id
the Discogs release ID you want to import to DiscoBASE. If left empty, the whole collection will be imported. If the additional option -a is used, the release will be added to your Discogs collection _and_ imported to DiscoBASE. Note that a regular import of a given release ID is quite time consuming: We have to check wether or not this release ID is already in the Discogs collection (we don’t want duplicates), thus we have to run through all of your releases via the Discogs API. Unfortunately Discogs does not allow us to search for release IDs in ones collection, we only can “iterate” through them. Therefore the recommended way of adding newly gained releases is by using the -a option.
- -h, --help
show this help message and exit
- --add-to-collection, -a
This is the recommended (and fastest) way of adding newly gained releases to your collection. The given release ID is added to your Discogs collection (same as when you click an “Add to collection” in the Discogs Webinterface. Additionally the release is added to the DiscoBASE. Note that for performance’s sake, we don’t do a time-consuming check if the release is already in your Discogs collection by asking the Discogs API, but only do a quick check if the ID is in the local DiscoBASE already.
- --tracks, -u
extends the Discogs import (releases and also tracks will be downloaded) - takes siginficantly longer than the regular import. Note: This is the same as “disco search all -u”.
- --brainz, -z
imports additional information from MusicBrainz/AcousticBrainz (Release MBID, Recording MBID, musical key, chords key, BPM). Usually this action takes a long time; -z tries to find a match quickly, -zz tries harder but requires even more time. Only tracks already present in the DiscoBASE (using any of the import possibilites, eg. disco mix -u, disco import -u, disco search -u) will be updated. Tracks containing *Brainz-fetched key/BPM already will be skipped. To really update _all_ tracks in the collection an extended Discogs import (disco import -u) is required prior to using -z, -zz. Also note that “disco search all -z” is synonym to this option.
- --resume <offset>, --offset <offset>
resumes long-running processes at the given offset position (expects a number). You can combine this option currently with the *Brainz matching import operation only (-z, -zz). Note: By default, tracks containing key and BPM already will be skipped. On a re-run using this option, the total number might be different already since the count of tracks without key and BPM might have changed.
- --force-brainz, -f
on MusicBrainz/AcousticBrainz updates (-z, -zz), also tracks containing key and BPM information in the DiscoBASE already, will tried to be matched and updated.
- --skip-unmatched, -s
this option is useful on re-runs of MusicBrainz/AcousticBrainz updates (-z, -zz) to speed up things a little. Only tracks that previosuly where matched with MusicBrainz successfully (have a MusicBrainz Recording ID already saved in the DiscoBASE), are tried to be matched and updated.
dsc mix
usage: dsc mix [-h] [-v] [-f FORMAT]
[-c | -D | -e POSITION | -E | -b FIELDS | -a SEARCH_TERMS | -r POSITION | -d POSITION | --copy | -u | -z]
[-p POSITION] [--resume OFFSET] [-s COLUMN]
[mix_name]
- mix_name
mix name or mix ID being displayed, edited, created, copied, deleted, etc. If mix_name is left out, a list of available mixes is shown and all other arguments are ignored.
- -h, --help
show this help message and exit
- -v, --verbose
increases mix tracklist view detail. -v adds tracknames, artists, transition rating/notes and general track notes. -vv shows when and how MusicBrainz matching was done and also direct weblinks to Discogs releases, MusicBrainz releases/recordings and AccousticBrainz recordings.
- -f <format>, --format <format>
overrides the default output format for rendered tables. FORMAT is passed through to the underlying library (tabulate). Choose from: plain, simple, github, grid, fancy_grid, pipe, orgtbl, jira, presto, pretty psql, rst, mediawiki, moinmoin, youtrack, html, unsafehtml, latex, latex_raw latex_booktabs, latex_longtable, textile, tsv.
- -c, --create-mix
creates new mix (named as given in mix_name argument).
- -D, --delete-mix
deletes the mix (given in mix_name) and all its contained tracks!
- -e <position>, --edit <position>
edits/adds details of a track in a mix (editable fields: key, BPM, track number, position in mix, key notes, transition rating, transition notes, general track notes, custom MusicBrainz recording ID).
- -E, --edit-mix
edits/adds general info about a mix (name, played date, venue).
- -b <fields>, --bulk-edit <fields>
bulk-edits specific fields of each track in mix. Syntax of FIELDS argument: <field1>,<field2>,… available fields: key,bpm,track_no,track_pos,key_notes,trans_rating, trans_notes,notes,m_rec_id_override.
- -a <search_terms>, --add-to-mix <search_terms>
searches for release/track in collection and adds it to the mix, This option is actually a shortcut to “disco search -m mix_name search_term” and behaves identically. If SEARCH_TERMS is a number, it is assumed being a Discogs release ID. A quick database check is done and if non-existent yet, the release is 1) added to the Discogs collection and 2) imported to DiscoBASE. This is a convenience function eg when trying to quickly add a release to the mix that’s not in the DiscoBASE yet (possibly an only recently gained record?).
- -r <position>, --reorder-tracks <position>
reorders tracks in current mix, starting at POSITION. Note that this is a troubleshooting function and usually shouldn’t be necessary to use.
- -d <position>, --delete-track <position>
removes the track at the given position from the mix.
- --copy
copies the mix given in mix_name argument. Asks for new name!
- -u, --discogs-update
updates tracks in current mix with additional info from Discogs. Can be combined with -p when mix ID provided or with –resume when mix ID not provided (all tracks in mixes update).
- -z, --brainz-update
updates tracks in current mix with additional info from MusicBrainz and AcousticBrainz. Leave out mix ID to update every track contained in any mix. -z quick match, -zz detailed match (takes longer, but more results). Can be combined with -p when mix ID provided or with –resume when mix ID not provided (all tracks in mixes *Brainz matching).
- -p <position>, --pos <position>
in combination with -a this option adds the found release/track at the given position in the mix (rather than at the end). In combination with -u, -z or -zz the update process is started at the given position in the mix.
- --resume <offset>
resumes long-running processes at the given offset position (expects a number). You can combine this option currently with “all tracks in mixes Discogs update” (disco mix -u) or with “all tracks in mixes *Brainz matching” (disco mix -z, disco mix -zz).
- -s <column>, --sort <column>
sort tracklist by specified column. add “asc” or “desc” to specify ascending or descending sort order. “track_pos asc” is the default. Experimental feature: currently expects sql column names.
dsc search
searches for releases and tracks in the Discogs collection. Several actions can be executed on the found items, eg. adding to a mix, updating track info from Discogs or fetching additional information from MusicBrainz/AcousticBrainz. View this subcommand’s help: disco search -h.
usage: dsc search [-h] [-m MIX_NAME | -u | -z | -e] [-t TRACK_NUMBER]
[-p POS_IN_MIX] [--resume OFFSET]
search_terms
- search_terms
The collection is searched for these terms. When offline, it searches through all releases’ artists/titles only (eg tracknames not considered). When online, the Discogs API search engine is used and also tracknames, artists, labels and catalog numbers are looked through. If your search term consists of multiple words, put them inside double quotes (eg. “foo bar term”). If you instead put a number as your search term, it is assumed you want to view exactly the Discogs release with the given ID. If search term is the special keyword “all”, a list of all releases in the DiscoBASE is shown (including weblinks to Discogs/MusicBrainz release pages). In combination with -u, -z or -zz respectively, all tracks are updated. Note that this is exactely the same as “disco import” in combination with those options.
- -h, --help
show this help message and exit
- -m <mix_name>, --mix <mix_name>
adds a track of the found release to the given mix ID (asks which track to add in case -t is missing).
- -u, --discogs-update
updates found release/track with Discogs track/artist details (asks which track to update in case -t is missing).
- -z, --brainz-update
updates found release/track with additional info from MusicBrainz and AcousticBrainz. (asks which track to update in case -t is missing) -z quick match, -zz detailed match (takes longer, but more results).
- -e, --edit
edits/adds details to a found release/track. Editable fields: key, BPM, key notes, general track notes, custom MusicBrainz recording ID. (asks which track to edit in case -t is missing).
- -t <track_number>, --track <track_number>
in combination with -m this option adds the given track number (eg. A1, AA, B2, …) to the mix passed via -m; in combination with -z, -zz or -u the given track is the one being updated with *Brainz or Discogs details; in combination with -e the given track is the one being edited. The special keyword “all” can be used to process all tracks on the found release.
- -p <pos_in_mix>, --pos <pos_in_mix>
in combination with -m this option states that we’d like to insert the track at the given position (eg. 1, 14, …), rather than at the end of the mix; in combination with -z, -zz, -u or -e this option is ignored.
dsc setup
usage: dsc setup [-h] [--force]
- -h, --help
show this help message and exit
- --force
force upgrade database schema - only use if you know what you are doing.
dsc stats
usage: dsc stats [-h]
- -h, --help
show this help message and exit
dsc suggest
usage: dsc suggest [-h] [-b BPM] [-k KEY] [search_terms]
- search_terms
track or release name you want to show a “track-combination report” for.
- -h, --help
show this help message and exit
- -b <bpm>, --bpm <bpm>
suggests tracks based on BPM value, within a pitch-range of +/-6 percent.
- -k <key>, --key <key>
suggests tracks based on musical key.