Tools | Result |
---|---|
Code Quality | |
Code Coverage |
CLI / API / Website to manipulate music and create smart playlists, and play it !
git clone https://github.com/AdrienPensart/musicbot.git
cd musicbot
python-3.6 -m venv env
source env/bin/activate
pip install -r requirements.txt
Usage: musicbot [OPTIONS] COMMAND [ARGS]...
Music swiss knife, new gen.
Options:
--version Show the version and exit.
--verbosity [debug|info|warning|error|critical]
Verbosity levels
--dry Take no real action
--quiet Disable progress bars
--invocation TEXT Resumable execution ID (experimental)
-h, --help Show this message and exit.
Commands:
config Config management
consistency Inconsistencies management
db Database management
file Music tags management
folder Folder scanning
playlist Playlist management
server API Server
stats Generate some stats for music collection with...
tag Music tags management
task Task management
youtube Youtube management
Usage: musicbot config [OPTIONS] COMMAND [ARGS]...
Config management
Options:
-h, --help Show this message and exit.
Commands:
save Save config
Usage: musicbot config save [OPTIONS]
Save config
Options:
--redis-address TEXT Redis URI
--redis-db INTEGER Redis index DB
--redis-password TEXT Redis password
--db-host TEXT DB host
--db-port INTEGER DB port
--db-database TEXT DB name
--db-user TEXT DB user
--db-password TEXT DB password
--http-host TEXT Host interface to listen on
--http-server TEXT Server name to use in links
--http-port INTEGER HTTP port to listen on
--http-workers INTEGER Number of HTTP workers (not tested)
--http-user TEXT HTTP Basic auth user
--http-password TEXT HTTP Basic auth password
-h, --help Show this message and exit.
Usage: musicbot consistency [OPTIONS] COMMAND [ARGS]...
Inconsistencies management
Options:
-h, --help Show this message and exit.
Commands:
errors Detect errors
Usage: musicbot consistency errors [OPTIONS]
Detect errors
Options:
--limit INTEGER Fetch a maximum limit of music
--youtube TEXT Select musics with a youtube link
--formats TEXT Select musics with file format
--no-formats TEXT Filter musics without format
--keywords TEXT Select musics with keywords
--no-keywords TEXT Filter musics without keywords
--artists TEXT Select musics with artists
--no-artists TEXT Filter musics without artists
--albums TEXT Select musics with albums
--no-albums TEXT Filter musics without albums
--titles TEXT Select musics with titles
--no-titles TEXT Filter musics without titless
--genres TEXT Select musics with genres
--no-genres TEXT Filter musics without genres
--min-duration INTEGER Minimum duration filter (hours:minutes:seconds)
--max-duration INTEGER Maximum duration filter (hours:minutes:seconds))
--min-size INTEGER Minimum file size filter (in bytes)
--max-size INTEGER Maximum file size filter (in bytes)
--min-rating FLOAT Minimum rating
--max-rating FLOAT Maximum rating
--relative Generate relatives paths
--shuffle Randomize selection
-h, --help Show this message and exit.
Usage: musicbot db [OPTIONS] COMMAND [ARGS]...
Database management
Options:
--db-host TEXT DB host
--db-port INTEGER DB port
--db-database TEXT DB name
--db-user TEXT DB user
--db-password TEXT DB password
-h, --help Show this message and exit.
Commands:
clean Clean deleted musics from database
clear Drop and recreate database and schema
create Create database and load schema
drop Drop database schema
refresh Refresh database materialized views
Usage: musicbot db clean [OPTIONS]
Clean deleted musics from database
Options:
-h, --help Show this message and exit.
Usage: musicbot db clear [OPTIONS]
Drop and recreate database and schema
Options:
--yes Are you sure you want to drop the db?
-h, --help Show this message and exit.
Usage: musicbot db create [OPTIONS]
Create database and load schema
Options:
-h, --help Show this message and exit.
Usage: musicbot db drop [OPTIONS]
Drop database schema
Options:
--yes Are you sure you want to drop the db?
-h, --help Show this message and exit.
Usage: musicbot db refresh [OPTIONS]
Refresh database materialized views
Options:
-h, --help Show this message and exit.
Usage: musicbot file [OPTIONS] COMMAND [ARGS]...
Music tags management
Options:
--db-host TEXT DB host
--db-port INTEGER DB port
--db-database TEXT DB name
--db-user TEXT DB user
--db-password TEXT DB password
--limit INTEGER Fetch a maximum limit of music
--youtube TEXT Select musics with a youtube link
--formats TEXT Select musics with file format
--no-formats TEXT Filter musics without format
--keywords TEXT Select musics with keywords
--no-keywords TEXT Filter musics without keywords
--artists TEXT Select musics with artists
--no-artists TEXT Filter musics without artists
--albums TEXT Select musics with albums
--no-albums TEXT Filter musics without albums
--titles TEXT Select musics with titles
--no-titles TEXT Filter musics without titless
--genres TEXT Select musics with genres
--no-genres TEXT Filter musics without genres
--min-duration INTEGER Minimum duration filter (hours:minutes:seconds)
--max-duration INTEGER Maximum duration filter (hours:minutes:seconds))
--min-size INTEGER Minimum file size filter (in bytes)
--max-size INTEGER Maximum file size filter (in bytes)
--min-rating FLOAT Minimum rating
--max-rating FLOAT Maximum rating
--relative Generate relatives paths
--shuffle Randomize selection
-h, --help Show this message and exit.
Commands:
show Show tags of musics with filters
update
Usage: musicbot file show [OPTIONS]
Show tags of musics with filters
Options:
-h, --help Show this message and exit.
Usage: musicbot file update [OPTIONS]
Options:
--keywords TEXT Keywords
--artist TEXT Artist
--album TEXT Album
--title TEXT Title
--genre TEXT Genre
--number TEXT Track number
--rating TEXT Rating
-h, --help Show this message and exit.
Usage: musicbot folder [OPTIONS] COMMAND [ARGS]...
Folder scanning
Options:
--db-host TEXT DB host
--db-port INTEGER DB port
--db-database TEXT DB name
--db-user TEXT DB user
--db-password TEXT DB password
-h, --help Show this message and exit.
Commands:
find Only list files in selected folders
list List existing folders
new Add a new folder in database
rescan Rescan all folders registered in database
scan Load musics files in database
sync Copy selected musics with filters to...
watch Watch files changes in folders
Usage: musicbot folder find [OPTIONS] [FOLDERS]...
Only list files in selected folders
Options:
-h, --help Show this message and exit.
Usage: musicbot folder list [OPTIONS]
List existing folders
Options:
-h, --help Show this message and exit.
Usage: musicbot folder new [OPTIONS] [FOLDERS]...
Add a new folder in database
Options:
-h, --help Show this message and exit.
Usage: musicbot folder rescan [OPTIONS]
Rescan all folders registered in database
Options:
--concurrency INTEGER Number of coroutines
--crawl Crawl youtube
-h, --help Show this message and exit.
Usage: musicbot folder scan [OPTIONS] [FOLDERS]...
Load musics files in database
Options:
--concurrency INTEGER Number of coroutines
--crawl Crawl youtube
-h, --help Show this message and exit.
Usage: musicbot folder sync [OPTIONS] DESTINATION
Copy selected musics with filters to destination folder
Options:
--limit INTEGER Fetch a maximum limit of music
--youtube TEXT Select musics with a youtube link
--formats TEXT Select musics with file format
--no-formats TEXT Filter musics without format
--keywords TEXT Select musics with keywords
--no-keywords TEXT Filter musics without keywords
--artists TEXT Select musics with artists
--no-artists TEXT Filter musics without artists
--albums TEXT Select musics with albums
--no-albums TEXT Filter musics without albums
--titles TEXT Select musics with titles
--no-titles TEXT Filter musics without titless
--genres TEXT Select musics with genres
--no-genres TEXT Filter musics without genres
--min-duration INTEGER Minimum duration filter (hours:minutes:seconds)
--max-duration INTEGER Maximum duration filter (hours:minutes:seconds))
--min-size INTEGER Minimum file size filter (in bytes)
--max-size INTEGER Maximum file size filter (in bytes)
--min-rating FLOAT Minimum rating
--max-rating FLOAT Maximum rating
--relative Generate relatives paths
--shuffle Randomize selection
-h, --help Show this message and exit.
Usage: musicbot folder watch [OPTIONS]
Watch files changes in folders
Options:
-h, --help Show this message and exit.
Usage: musicbot playlist [OPTIONS] COMMAND [ARGS]...
Playlist management
Options:
--db-host TEXT DB host
--db-port INTEGER DB port
--db-database TEXT DB name
--db-user TEXT DB user
--db-password TEXT DB password
-h, --help Show this message and exit.
Commands:
bests Generate bests playlists with some rules
new Generate a new playlist
Usage: musicbot playlist bests [OPTIONS] PATH
Generate bests playlists with some rules
Options:
--limit INTEGER Fetch a maximum limit of music
--youtube TEXT Select musics with a youtube link
--formats TEXT Select musics with file format
--no-formats TEXT Filter musics without format
--keywords TEXT Select musics with keywords
--no-keywords TEXT Filter musics without keywords
--artists TEXT Select musics with artists
--no-artists TEXT Filter musics without artists
--albums TEXT Select musics with albums
--no-albums TEXT Filter musics without albums
--titles TEXT Select musics with titles
--no-titles TEXT Filter musics without titless
--genres TEXT Select musics with genres
--no-genres TEXT Filter musics without genres
--min-duration INTEGER Minimum duration filter (hours:minutes:seconds)
--max-duration INTEGER Maximum duration filter (hours:minutes:seconds))
--min-size INTEGER Minimum file size filter (in bytes)
--max-size INTEGER Maximum file size filter (in bytes)
--min-rating FLOAT Minimum rating
--max-rating FLOAT Maximum rating
--relative Generate relatives paths
--shuffle Randomize selection
--prefix TEXT Append prefix before each path (implies relative)
--suffix TEXT Append this suffix to playlist name
-h, --help Show this message and exit.
Usage: musicbot playlist new [OPTIONS] [PATH]
Generate a new playlist
Options:
--limit INTEGER Fetch a maximum limit of music
--youtube TEXT Select musics with a youtube link
--formats TEXT Select musics with file format
--no-formats TEXT Filter musics without format
--keywords TEXT Select musics with keywords
--no-keywords TEXT Filter musics without keywords
--artists TEXT Select musics with artists
--no-artists TEXT Filter musics without artists
--albums TEXT Select musics with albums
--no-albums TEXT Filter musics without albums
--titles TEXT Select musics with titles
--no-titles TEXT Filter musics without titless
--genres TEXT Select musics with genres
--no-genres TEXT Filter musics without genres
--min-duration INTEGER Minimum duration filter (hours:minutes:seconds)
--max-duration INTEGER Maximum duration filter (hours:minutes:seconds))
--min-size INTEGER Minimum file size filter (in bytes)
--max-size INTEGER Maximum file size filter (in bytes)
--min-rating FLOAT Minimum rating
--max-rating FLOAT Maximum rating
--relative Generate relatives paths
--shuffle Randomize selection
-h, --help Show this message and exit.
Usage: musicbot server [OPTIONS] COMMAND [ARGS]...
API Server
Options:
--db-host TEXT DB host
--db-port INTEGER DB port
--db-database TEXT DB name
--db-user TEXT DB user
--db-password TEXT DB password
--dev Watch for source file modification
--watcher Watch for music file modification
--autoscan Enable auto scan background job
--server-cache Activate server cache system
--client-cache Activate client cache system
--no-auth Disable authentication system
-h, --help Show this message and exit.
Commands:
start Start musicbot web API
Usage: musicbot server start [OPTIONS]
Start musicbot web API
Options:
--http-host TEXT Host interface to listen on
--http-server TEXT Server name to use in links
--http-port INTEGER HTTP port to listen on
--http-workers INTEGER Number of HTTP workers (not tested)
--http-user TEXT HTTP Basic auth user
--http-password TEXT HTTP Basic auth password
-h, --help Show this message and exit.
Usage: musicbot stats [OPTIONS] COMMAND [ARGS]...
Generate some stats for music collection with filters
Options:
--db-host TEXT DB host
--db-port INTEGER DB port
--db-database TEXT DB name
--db-user TEXT DB user
--db-password TEXT DB password
--limit INTEGER Fetch a maximum limit of music
--youtube TEXT Select musics with a youtube link
--formats TEXT Select musics with file format
--no-formats TEXT Filter musics without format
--keywords TEXT Select musics with keywords
--no-keywords TEXT Filter musics without keywords
--artists TEXT Select musics with artists
--no-artists TEXT Filter musics without artists
--albums TEXT Select musics with albums
--no-albums TEXT Filter musics without albums
--titles TEXT Select musics with titles
--no-titles TEXT Filter musics without titless
--genres TEXT Select musics with genres
--no-genres TEXT Filter musics without genres
--min-duration INTEGER Minimum duration filter (hours:minutes:seconds)
--max-duration INTEGER Maximum duration filter (hours:minutes:seconds))
--min-size INTEGER Minimum file size filter (in bytes)
--max-size INTEGER Maximum file size filter (in bytes)
--min-rating FLOAT Minimum rating
--max-rating FLOAT Maximum rating
--relative Generate relatives paths
--shuffle Randomize selection
-h, --help Show this message and exit.
Usage: musicbot tag [OPTIONS] COMMAND [ARGS]...
Music tags management
Options:
--db-host TEXT DB host
--db-port INTEGER DB port
--db-database TEXT DB name
--db-user TEXT DB user
--db-password TEXT DB password
--limit INTEGER Fetch a maximum limit of music
--youtube TEXT Select musics with a youtube link
--formats TEXT Select musics with file format
--no-formats TEXT Filter musics without format
--keywords TEXT Select musics with keywords
--no-keywords TEXT Filter musics without keywords
--artists TEXT Select musics with artists
--no-artists TEXT Filter musics without artists
--albums TEXT Select musics with albums
--no-albums TEXT Filter musics without albums
--titles TEXT Select musics with titles
--no-titles TEXT Filter musics without titless
--genres TEXT Select musics with genres
--no-genres TEXT Filter musics without genres
--min-duration INTEGER Minimum duration filter (hours:minutes:seconds)
--max-duration INTEGER Maximum duration filter (hours:minutes:seconds))
--min-size INTEGER Minimum file size filter (in bytes)
--max-size INTEGER Maximum file size filter (in bytes)
--min-rating FLOAT Minimum rating
--max-rating FLOAT Maximum rating
--relative Generate relatives paths
--shuffle Randomize selection
-h, --help Show this message and exit.
Commands:
show Show tags of musics with filters
Usage: musicbot tag show [OPTIONS]
Show tags of musics with filters
Options:
--fields TEXT Show only those fields
-h, --help Show this message and exit.
Usage: musicbot task [OPTIONS] COMMAND [ARGS]...
Task management
Options:
--db-host TEXT DB host
--db-port INTEGER DB port
--db-database TEXT DB name
--db-user TEXT DB user
--db-password TEXT DB password
-h, --help Show this message and exit.
Commands:
list List tasks in database
new Add a new task in database
Usage: musicbot task list [OPTIONS]
List tasks in database
Options:
-h, --help Show this message and exit.
Usage: musicbot task new [OPTIONS] NAME
Add a new task in database
Options:
-h, --help Show this message and exit.
Usage: musicbot youtube [OPTIONS] COMMAND [ARGS]...
Youtube management
Options:
--db-host TEXT DB host
--db-port INTEGER DB port
--db-database TEXT DB name
--db-user TEXT DB user
--db-password TEXT DB password
--limit INTEGER Fetch a maximum limit of music
--youtube TEXT Select musics with a youtube link
--formats TEXT Select musics with file format
--no-formats TEXT Filter musics without format
--keywords TEXT Select musics with keywords
--no-keywords TEXT Filter musics without keywords
--artists TEXT Select musics with artists
--no-artists TEXT Filter musics without artists
--albums TEXT Select musics with albums
--no-albums TEXT Filter musics without albums
--titles TEXT Select musics with titles
--no-titles TEXT Filter musics without titless
--genres TEXT Select musics with genres
--no-genres TEXT Filter musics without genres
--min-duration INTEGER Minimum duration filter (hours:minutes:seconds)
--max-duration INTEGER Maximum duration filter (hours:minutes:seconds))
--min-size INTEGER Minimum file size filter (in bytes)
--max-size INTEGER Maximum file size filter (in bytes)
--min-rating FLOAT Minimum rating
--max-rating FLOAT Maximum rating
--relative Generate relatives paths
--shuffle Randomize selection
--concurrency INTEGER Number of coroutines
-h, --help Show this message and exit.
Commands:
albums Fetch youtube links for each album
musics Fetch youtube links for each music
Usage: musicbot youtube albums [OPTIONS]
Fetch youtube links for each album
Options:
--youtube-album TEXT Select albums with a youtube link
-h, --help Show this message and exit.
Usage: musicbot youtube musics [OPTIONS]
Fetch youtube links for each music
Options:
-h, --help Show this message and exit.