Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ShyykoSerhiy/vscode-spotify
Use Spotify inside vscode(on Mac, Windows, and Linux).
https://github.com/ShyykoSerhiy/vscode-spotify
Last synced: about 1 month ago
JSON representation
Use Spotify inside vscode(on Mac, Windows, and Linux).
- Host: GitHub
- URL: https://github.com/ShyykoSerhiy/vscode-spotify
- Owner: ShyykoSerhiy
- License: mit
- Created: 2015-11-25T22:15:35.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2023-01-06T22:54:15.000Z (almost 2 years ago)
- Last Synced: 2024-07-31T07:19:08.382Z (4 months ago)
- Language: TypeScript
- Homepage: https://marketplace.visualstudio.com/items/shyykoserhiy.vscode-spotify
- Size: 724 KB
- Stars: 604
- Watchers: 14
- Forks: 73
- Open Issues: 87
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
- awesome - vscode-spotify - Use Spotify inside vscode(on Mac, Windows, and Linux). (TypeScript)
README
[![Latest Release](https://vsmarketplacebadge.apphb.com/version-short/shyykoserhiy.vscode-spotify.svg)](https://marketplace.visualstudio.com/items?itemName=shyykoserhiy.vscode-spotify)
[![Installs](https://vsmarketplacebadge.apphb.com/installs/shyykoserhiy.vscode-spotify.svg)](https://marketplace.visualstudio.com/items?itemName=shyykoserhiy.vscode-spotify)
[![Rating](https://vsmarketplacebadge.apphb.com/rating-short/shyykoserhiy.vscode-spotify.svg)](https://marketplace.visualstudio.com/items?itemName=shyykoserhiy.vscode-spotify#review-details)# vscode-spotify
[![All Contributors](https://img.shields.io/badge/all_contributors-15-orange.svg?style=flat)](#contributors)
Use Spotify inside vscode.
Provides integration with Spotify Desktop client.Note that some of the functionalities are only available on macOS systems (see [How it works section](#how-it-works))
**This extension requires Spotify Premium to work on Windows**
## How it works
* On macOS, this extension uses [spotify-node-applescript](https://github.com/andrehaveman/spotify-node-applescript) (basically a wrapper for the official Spotify AppleScript API) to communicate with Spotify.
* On Windows, the extension uses the Spotify Web API.
* On Linux, it uses a combination of dbus and pactl.Spotify Web API implementation can be used on any platform, but it does have some drawbacks:
* It doesn't work without internet connection (Linux and OS X implementations do).
* Full functionality is only available to Spotify Premium users.
* API calls are rate limited.At the same time it provides tighter integration and it's more or less future proofed.
## Features
* Shows the currently playing song in the vscode status bar.
![status bar](media/screenshot.png)
* Provides [commands](#commands) for controlling Spotify from vscode.
* Provides [hotkeys](#Adding%20or%20changing%20hotkeys) of commands.
* Provides [buttons](#buttons) for controlling Spotify from vscode.## Compatibility table
| Feature | macOS | Linux | Any Platform (only option on Windows) Web API |
| ---------------------------- |:-------------:| :--------------------------- | :-------------------------------------------- |
| Works Offline | ✅ | ✅ | ❌ |
| Show Current Song | ✅ | ✅ | ✅ |
| Play Next Song | ✅ | ✅ | ✅ |
| Play Previous Song | ✅ | ✅ | ✅ |
| Play | ✅ | ✅ | ✅ |
| Pause | ✅ | ✅ | ✅ |
| Play Pause | ✅ | ✅ | ✅ |
| Mute Volume | ✅ | ✅ | ✅ |
| Unmute Volume | ✅ | ✅ | ✅ |
| Mute Unmute Volume | ✅ | ✅ | ✅ |
| Volume Up | ✅ | ✅ | ✅ |
| Volume Down | ✅ | ✅ | ✅ |
| Toggle Repeating | ✅ | (shows repeating state) ⭕ | ✅ |
| Toggle Shuffling | ✅ | (shows shuffling state) ⭕ | ✅ |
| Lyrics | ✅ | ✅ | ✅ |Additional Web API features:
* Playlists/tracks selection. *Make sure you have logged in with the command `>Spotify Sign In` to use these features. You can open the Virtual Studio Code command line with the hotkey `Ctrl+P` by default.*## Contributing
This project follows the [all-contributors](https://github.com/kentcdodds/all-contributors) specification. Contributions of any kind are welcome, any contributions made will be recognised in the README.A list of contributors to this project ([emoji key](https://github.com/kentcdodds/all-contributors#emoji-key)):
shyyko.serhiy
💻 🎨 📖 🤔 👀
Levin Rickert
🐛 💻
Marc Riera
💻
Evan Brodie
💻 🐛
Stéphane
📖
Ryan Gordon
📖 🤔
Richard Stanley
💻
realbizkit
💻
Jesús Roldán
💻
Nicolás Gebauer
💻
Muhammad Rivki
💻
Miguel Rodríguez Rosales
💻
Mosh Feu
📖
Adam Parkin
📖
Andrew Bastin
📖
Michael Fox
📖
Matija Mrkaic
💻
Mario
📖
Fernando B
💻
## Commands
There are a number of commands available for the extension, and accessible via the command
pallette. Find them by searching for "Spotify" in the command pallette:![Commands](media/screenshot2.png)
## Adding or changing hotkeys
All keyboard shortcuts in vscode can be customized via the `User/keybindings.json` file.To configure keyboard shortcuts the way you want, go to the menu under File > Preferences > Keyboard Shortcuts.
This will open the Default Keyboard Shortcuts on the left and your `User/keybindings.json` file where you can overwrite the default bindings on the right. You may also see an interface to modify the shortcuts on different versions of vscode.Example :
```json
{
"command": "spotify.volumeDown",
"key": "cmd+shift+g"
}
```For more info on hotkeys please look at https://code.visualstudio.com/docs/customization/keybindings
## Buttons
This extension provides a variety of buttons to control Spotify from status bar. By default 4 buttons are enabled:
1. Previous track
2. Play / Pause
3. Next track
4. Mute / UnmuteYou can modify the shown buttons by changing your parameters ([go here to find out how](https://code.visualstudio.com/docs/customization/userandworkspace)):
```json
"spotify.showNextButton": {
"type": "boolean",
"default": true,
"description": "Whether to show next button."
},
"spotify.showPreviousButton": {
"type": "boolean",
"default": true,
"description": "Whether to show previous button."
},
"spotify.showPlayButton": {
"type": "boolean",
"default": false,
"description": "Whether to show play button."
},
"spotify.showPauseButton": {
"type": "boolean",
"default": false,
"description": "Whether to show pause button."
},
"spotify.showPlayPauseButton": {
"type": "boolean",
"default": true,
"description": "Whether to show play|pause button."
},
"spotify.showMuteVolumeButton": {
"type": "boolean",
"default": false,
"description": "Whether to show mute button."
},
"spotify.showUnmuteVolumeButton": {
"type": "boolean",
"default": false,
"description": "Whether to show unmute button."
},
"spotify.showMuteUnmuteVolumeButton": {
"type": "boolean",
"default": true,
"description": "Whether to show mute|unmute button."
},
"spotify.showVolumeUpButton": {
"type": "boolean",
"default": false,
"description": "Whether to show volume up button."
},
"spotify.showVolumeDownButton": {
"type": "boolean",
"default": false,
"description": "Whether to show volume down button."
}
"spotify.showToggleRepeatingButton": {
"type": "boolean",
"default": false,
"description": "Whether to show toggle repeating button."
},
"spotify.showToggleShufflingButton": {
"type": "boolean",
"default": false,
"description": "Whether to show toggle shuffling button."
}
```For the full configuration options go [here](https://github.com/ShyykoSerhiy/vscode-spotify/blob/master/package.json#L161).
Note that due to limitations of Spotify's Applescript API ```toggleRepeatingButton``` toggles only
'repeat all' property of spotify. There is no way to set 'repeat one' via vscode-spotify.You can also change the position of buttons by changing the parameters below:
```json
"spotify.priorityBase": {
"type": "number",
"default": 30,
"description": "Base value of priority for all vscode-spotify elements in Status Bar(priority = basePriority+priority). This is done to avoid 'conflicts' with other extensions. "
},
"spotify.nextButtonPriority": {
"type": "number",
"default": 8,
"description": "Priority of next button."
},
"spotify.previousButtonPriority": {
"type": "number",
"default": 10,
"description": "Priority of previous button."
},
"spotify.playButtonPriority": {
"type": "number",
"default": 7,
"description": "Priority of play button."
},
"spotify.pauseButtonPriority": {
"type": "number",
"default": 6,
"description": "Priority of pause button."
},
"spotify.playPauseButtonPriority": {
"type": "number",
"default": 9,
"description": "Priority of play|pause button."
},
"spotify.muteButtonPriority": {
"type": "number",
"default": 5,
"description": "Priority of mute button."
},
"spotify.unmuteButtonPriority": {
"type": "number",
"default": 4,
"description": "Priority of unmute button."
},
"spotify.muteUnmuteButtonPriority": {
"type": "number",
"default": 3,
"description": "Priority of mute|unmute button."
},
"spotify.volumeUpButtonPriority": {
"type": "number",
"default": 2,
"description": "Priority of volume up button."
},
"spotify.volumeDownButtonPriority": {
"type": "number",
"default": 1,
"description": "Priority of volume down button."
},
"spotify.trackInfoPriority": {
"type": "number",
"default": 0,
"description": "Priority of volume track info."
},
"spotify.toggleRepeatingButtonPriority": {
"type": "number",
"default": 11,
"description": "Priority of toggle repeating button."
},
"spotify.toggleShufflingButtonPriority": {
"type": "number",
"default": 12,
"description": "Priority of toggle shuffling button."
}
```## Seeking to a specific point in a song
You can use `Spotify Seek To` command (`spotify.seekTo`) to seek to the specific point in a song. You can specify hotkey that will seek to a custom time in a song by adding keybinding in keybindings.json. For example:```json
{
"command": "spotify.seekTo",
"key": "alt+d",
"args": "1:15"
}
```[MIT LICENSE](LICENSE)