Skip to content
Snippets Groups Projects
user avatar
JuniorJPDJ authored
fix: python 3.10 compatibility

Closes #28

See merge request !22
db1f14f3
History

A command line interface to interact with Funkwhale servers.

Installation

This package can be installed via pip:

pip install funkwhale-cli

We also provide some prebuilt binaries for Windows and Linux.

On Linux:

curl -L "https://dev.funkwhale.audio/funkwhale/cli/-/jobs/artifacts/master/raw/funkwhale?job=build-linux" -o /usr/local/bin/funkwhale
chmod +x /usr/local/bin/funkwhale

On Windows:

curl -L "https://dev.funkwhale.audio/funkwhale/cli/-/jobs/artifacts/master/raw/funkwhale.exe?job=build-windows" -o funkwhale.exe

Usage

# get help
funkwhale --help

# get help on a specific command
funkwhale tracks ls --help

# get login
funkwhale -H https://demo.funkwhale.audio login  # credentials are demo and demo on this server

# Store the server URL to avoid specifying it on the CLI
echo "FUNKWHALE_SERVER_URL=https://demo.funkwhale.audio" >> .env

# Create a library
funkwhale libraries create --visibility=me

# Upload some content to the server
funkwhale uploads create <library_id> ~/Music/**/*.mp3

# Search some tracks
funkwhale tracks ls jekk

# Download a track to the ~/Music directory
funkwhale tracks download -d ~/Music <track_id>

# Download a track and customize the target directory
funkwhale tracks download -d ~/Music -t "{artist}/{album} ({year})/{title}.{extension}" <track_id>

# Download all tracks matching a search, in ogg format
funkwhale tracks ls jekk --ids --limit 0 | xargs funkwhale tracks download -f ogg -d ~/Music

# Download all favorite tracks
funkwhale tracks ls --filter "favorites=true" --ids --limit 0 | xargs funkwhale tracks download -d ~/Music

# Download a track and pipe the output directly to VLC
funkwhale tracks download <track_id> | cvlc -

# Generate a playlist-file from a funkwhale playlist in a custom directory
funkwhale playlist tracks --ids <playlist_id> | funkwhale tracks generate-playlist -d ~/Music -t "{artist}/{album} ({year})/{title}.{extension}"

# Delete your library
funkwhale libraries rm <library_id>

# Logout
funkwhale logout

Installation (from source)

This cli requires python 3.6 or greater:

git clone https://dev.funkwhale.audio/funkwhale/cli.git
cd cli
pip install .

Build the binary

You can build the binary for you platform using the following commands:

pip install .[build]
pyinstaller cli.spec

This will output a binary in ./dist/funkwhale.