Visp is a Vi-like Spotify client for terminal users.

Overview

Visp

Build status Go Report Card codecov License

Visp is an interactive console client for Spotify, written in Go. Its interface is similar to Vim, and aims to be fast, configurable, and practical. Visp means whisk, and just like the simple mechanical tool it makes it easy to create that smooth and perfect mixture through the power of manual control, and without any unfortunate lumps.

This interface has many features that involve sorting, searching, and navigating. It’s designed to let you navigate your music collection effectively and efficiently.

This project is a fork of Practical Music Search and contains a lot of the same functionality, but is geared towards Spotify instead of Music Player Daemon. Visp was born due to significant differences between the Spotify and MPD APIs. Also, forking the project is a convenient opportunity to depart from the unfortunate acronym PMS.

Among currently implemented features are:

  • Looks and feels like Vim!
  • Can be configured to consume a very small amount of screen space.
  • Control playback by playing or adding tracks or sets of tracks.
  • A fully customizable layout, including player status, tag headers, text styles, colors, and keyboard bindings.
  • Full access to all your private and public Spotify playlists and liked songs.
  • Many forms of tracklist manipulation, such as select, cut, copy, paste, filter, sort, etc.
  • Text configuration files, tab completion, history, and much more!

Screenshot

Screenshot of Visp

Getting started

Downloads for Linux, Mac OS X and Windows can be found on the releases page.

Visp is beta software and is a work in progress. Testers are welcome.

If you're new to Visp, please start out by reading the User Guide.

For in-depth information about configuration or advanced use, check out the documentation.

Limitations

Visp requires a Spotify Premium account and will not work with free accounts.

Visp is not a player, but a controller, and is thus not capable of outputting sound. You can run the official Spotify client in the background, play back on Spotify enabled devices, and if you want a headless/server setup I can recommend the excellent librespot or spotifyd projects.

As Visp is still beta, there are bugs and unimplemented features. These can be reported in the issue tracker.

Contribution and contact

See how to contribute to Visp.

Developing

You’re assumed to have a working Go development environment. Building Visp requires Go 1.16 or higher.

Assuming you have the go binary in your path, you can build Visp using:

git clone https://github.com/ambientsound/visp
cd visp
make

This will put the binary in ./bin/visp. You need to run Visp in a regular terminal with a TTY.

If Visp crashes, and you want to report a bug, please include relevant sections of the debug.log file, located in the directory where you started Visp.

Authors

Forked from Practical Music Search, written by Kim Tore Jensen <[email protected]>, Bart Nagel <[email protected]>, and others.

Visp is written by Kim Tore Jensen <[email protected]>.

The source code and latest version can be found at Github: https://github.com/ambientsound/visp.

You might also like...
Spoti2wall: Set the Spotify album cover you are currently playing as your wallpaper

🎡 spoti2wall Set the Spotify album cover you are currently playing as your wall

Stonks is a terminal based stock visualizer and tracker that displays realtime stocks in graph format in a terminal.
Stonks is a terminal based stock visualizer and tracker that displays realtime stocks in graph format in a terminal.

Stonks is a terminal based stock visualizer and tracker. Installation Requirements: golang = 1.13 Manual Clone the repo Run make && make install Pack

ls Xtended : A command line utility which lets you navigate through terminal like a pro 😎.
ls Xtended : A command line utility which lets you navigate through terminal like a pro 😎.

Navigate through terminal like a pro 😎 πŸ’» Demo β€’ βš—οΈ Installation β€’ 🐜 Contribution β€’ ❗ Known Issues ❓ Why? It's a pain to cd and ls multiple times to

An easy to use menu structure for cli applications that prompts users to make choices.
An easy to use menu structure for cli applications that prompts users to make choices.

WMenu Package wmenu creates menus for cli programs. It uses wlog for its interface with the command line. It uses os.Stdin, os.Stdout, and os.Stderr w

A CLI tool for leveraging IDP signing keys to impersonate users and groups

Imperson8 Disclaimer This is a security testing tool. Only use this on systems you have explicit authorization to test. This isn't an exploit and won'

Scrappy is a cli tool that allows multiple web scrappers to monitor periodically for a basic ruleset coverage and inform users when the criteria have been met.

Scrappy - A multi-type web scrapper with alerting Scrappy is a cli tool that allows multiple web scrappers to monitor periodically for a basic ruleset

Prompts users to enter values for required flags in Cobra CLI applications

Cobra Flag Prompt Cobra Flag Prompt prompts users to enter values for required flags. It is an extension of Cobra, and requires that you use Cobra to

A simple shopping list that keeps track of a users shopping list using charm.sh tools

Terminal Shopping List This repo is a practise project for learning practical Go. I have chosen to use a toolset called Charm as it provides a rich se

The runner project is to create an interface for users to run their code remotely without having to have any compiler on their machine
The runner project is to create an interface for users to run their code remotely without having to have any compiler on their machine

The runner project is to create an interface for users to run their code remotely without having to have any compiler on their machine. This is a work in progress project for TCSS 401X :)

Comments
  • Error in authenticating

    Error in authenticating

    I get an error when running :auth <code>:

    Update player: Only valid bearer authentication supported

    Using default configuration with .config/visp directory created. Any help is appreciated

    opened by dfangx 8
  • HTTP 413 Request Entity Too Large

    HTTP 413 Request Entity Too Large

    Hi! Beatiful work, very compact and fast compared to spoti tui. i tried visp cuz in spt i cant visualize my "liked songs" entirily, but now i have the problem with this playlist with 800+ songs, i cant play any song.

    i get this message:

    spotify: HTTP 413 Request Entity Too Large (body empty)

    This only happens with my "Saved Tracks" wich has 835 songs, i tried to play a 484 song playlist and have a "bad getaway" message, but works anyway

    thanks for the work!

    bug 
    opened by muydipalma 4
  • spotify authorization no longer possible

    spotify authorization no longer possible

    Hi,

    my spotify token expired a couple of hours ago. I tried to get a new one by visiting https://visp.site/authorize, but this no longer seems to work. It constantly reports Authorization failed. I also tried to disable the app visp in spotify and readded it. However, it is no longer possible to get a new token.

    environment

    darwin (latest)

    opened by jradek 2
  • :help command not working on darwin

    :help command not working on darwin

    Hi,

    I'm running the latest release (d2efc0e) on darwin.

    Bug

    When I enter the command

    :help
    

    as documented here, the output not a command: help appears.

    So only <F1> works, to open the help/key bindings.

    Expected behavior

    1. :help behaves as <F1>.
    2. or update documentation
    bug 
    opened by jradek 1
Owner
Kim Tore Jensen
Infrastructure engineer. Architecture, programming, monitoring, automation, and integration on Linux. Love open source!
Kim Tore Jensen
Spotify lyrics in your terminal.

sptlrx Spotify lyrics in your terminal. Features Timesynced lyrics in your terminal. Fully compatible with spotifyd. Works well with long lines & Unic

Denis 189 Nov 20, 2022
CLI for SendGrid, which helps in managing SSO users, can install and update users from yaml config

Sendgrid API This script is needed to add new users to SendGrid as SSO teammates. Previously, all users were manually added and manually migrating the

ANNA 4 Jul 20, 2022
A spotify shell client in go.

libman Libman is an interactive spotify shell. Features Control your spotify playback. Edit playlists. Fully complies to the spotify web api terms of

null 5 Oct 16, 2022
Command-line tool to customize the official Spotify client. Supports Windows, MacOS and Linux.

Command-line tool to customize the official Spotify client. Supports Windows, MacOS and Linux. Features Change colors whole UI Inject CSS for advanced

null 12.8k Nov 22, 2022
I like reading news but I also like the terminal. I am leaning and practicing my go.

I made an api and didn't know how to use it. Screenshots The initial screen when you first run the app. The screen after you specify an id. This app u

Daniel M. Matongo 2 Jan 14, 2022
Go package and server app for retrieving time-stamped lyrics from Spotify.

lyricsapi Go package and server app for retrieving time-stamped lyrics from Spotify. Usage Use as package go get github.com/raitonoberu/lyricsapi pack

Denis 7 Nov 5, 2022
Spotify clone server for golang

Spotify-clone-server Written by ?? rasulov-emirlan ?? sultanaliev-s ?? Howe to use this server ?? create repository called "database" right next to th

null 5 Aug 31, 2022
Experimenting with the spotify api

experimenting with the spotify api trying to learn file structuring in Go as well as put some hours in, in the language preps for a backend service I

Guide Fari 0 Dec 11, 2021
For productivity addicts who enjoys coding while listening to Spotify

?? nvim-spotify For productivity addicts who enjoys coding while listening to Sp

Ricardo Ambrogi 132 Nov 20, 2022
Convert your Youtube Playlists into Spotify Playlists

yt2spotify Description This is an application that allow a Spotify user to migra

CΓ©sar Pinheiro 0 Dec 28, 2021