{"id":15641867,"url":"https://github.com/nexxeln/spotify-voice-control","last_synced_at":"2025-10-07T00:10:24.057Z","repository":{"id":44649852,"uuid":"454643755","full_name":"nexxeln/spotify-voice-control","owner":"nexxeln","description":"Voice control for Spotify through the terminal","archived":false,"fork":false,"pushed_at":"2022-09-23T03:17:30.000Z","size":346,"stargazers_count":79,"open_issues_count":2,"forks_count":5,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-30T09:16:06.317Z","etag":null,"topics":["music","python","speech-recognition","spotify","spotify-api","voice-commands","voice-recognition"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nexxeln.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/funding.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"github":"nexxeln"}},"created_at":"2022-02-02T04:35:11.000Z","updated_at":"2025-02-09T04:27:15.000Z","dependencies_parsed_at":"2023-01-18T17:30:36.208Z","dependency_job_id":null,"html_url":"https://github.com/nexxeln/spotify-voice-control","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/nexxeln/spotify-voice-control","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nexxeln%2Fspotify-voice-control","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nexxeln%2Fspotify-voice-control/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nexxeln%2Fspotify-voice-control/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nexxeln%2Fspotify-voice-control/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nexxeln","download_url":"https://codeload.github.com/nexxeln/spotify-voice-control/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nexxeln%2Fspotify-voice-control/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278699245,"owners_count":26030488,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-06T02:00:05.630Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["music","python","speech-recognition","spotify","spotify-api","voice-commands","voice-recognition"],"created_at":"2024-10-03T11:52:53.853Z","updated_at":"2025-10-07T00:10:24.024Z","avatar_url":"https://github.com/nexxeln.png","language":"Python","funding_links":["https://github.com/sponsors/nexxeln"],"categories":[],"sub_categories":[],"readme":"﻿\u003cdiv id=\"top\"\u003e\u003c/div\u003e\r\n\r\n\u003c!-- PROJECT LOGO --\u003e\r\n\u003cbr /\u003e\r\n\u003cdiv align=\"center\"\u003e\r\n  \u003ca href=\"https://github.com/nexxel/spotify-voice-control\"\u003e\r\n    \u003cimg src=\"https://i.imgur.com/MFthi3e.png\" alt=\"Logo\" width=\"80\" height=\"80\"\u003e\r\n  \u003c/a\u003e\r\n\r\n\u003ch3 align=\"center\"\u003eSpotify Voice Control\u003c/h3\u003e\r\n\r\n  \u003cp align=\"center\"\u003e\r\n    A voice control utility for Spotify\r\n    · \r\n    \u003ca href=\"https://github.com/nexxeln/spotify-voice-control/issues\"\u003eReport Bug\u003c/a\u003e\r\n    ·\r\n    \u003ca href=\"https://github.com/nexxeln/spotify-voice-control/issues\"\u003eRequest Feature\u003c/a\u003e\r\n  \u003c/p\u003e\r\n\u003c/div\u003e\r\n\r\n\u003cp align=\"right\" \u003e\u003csup\u003e\u003csub\u003e\u003cb\u003eLogo credit: soph\u003c/b\u003e\u003c/sub\u003e\u003c/sup\u003e\u003c/p\u003e\r\n\r\n![play](https://github.com/nexxeln/spotify-voice-control/blob/main/screenshots/play_dnd.gif)\r\n\r\n_Demo video will be added soon_\r\n\r\n### Built With\r\n\r\n- [Python](https://python.org/)\r\n- [spotipy - Spotify api wrapper](https://github.com/plamere/spotipy)\r\n- [speech_recognition](https://github.com/Uberi/speech_recognition)\r\n\r\n\u003cp align=\"right\"\u003e(\u003ca href=\"#top\"\u003e^\u003c/a\u003e)\u003c/p\u003e\r\n\r\n### Prerequisites\r\n\r\n- [Python 3.6+](https://www.python.org/downloads/)\r\n- [Spotify Premium](https://www.spotify.com/premium/)\r\n\r\n\u003cp align=\"right\"\u003e(\u003ca href=\"#top\"\u003e^\u003c/a\u003e)\u003c/p\u003e\r\n\r\n### Installation\r\n\r\n1. Make a application at [https://developer.spotify.com](https://developer.spotify.com)\r\n2. Add a Redirect URI to the application and set is as `http://localhost:8888/callback`\r\n3. Clone this repository (`git clone https://github.com/nexxeln/spotify-voice-control`)\r\n4. Install all dependencies (`pip install -r requirements.txt`)\r\n5. Set two environment variables, `SPOTIFY_CLIENT_ID` and `SPOTIFY_CLIENT_SECRET`\r\n6. Authenticate by running `main.py`\r\n7. Run `main.py` to use\r\n\r\n\u003cp align=\"right\"\u003e(\u003ca href=\"#top\"\u003e^\u003c/a\u003e)\u003c/p\u003e\r\n\r\n### Usage\r\n\r\n1. Have some music playing thorough Spotify in the device you want to listen in.\r\n2. Run `main.py`\r\n3. Say `play {track name}` to play a track (say `play random` to play a random track from your saved tracks)\r\n4. Say `album {album name}` to play an album\r\n5. Say `artist {artist name}` to play songs of an artist (say `artist random` to play a random artist from your followed artists)\r\n6. Say `playlist {playlist name}` to play a playlist from Your Library\r\n7. Say `pause` to pause the music\r\n8. Say `resume` to resume the music\r\n9. Say `skip` to skip to the next track\r\n10. Say `volume {number}` to set the volume to a number between 0 and 100\r\n11. Say `repeat` to put the current track in on repeat\r\n12. Say `shuffle {ON/OFF}` to turn shuffle on or off\r\n13. Say `current song` to see the current song playing.\r\n14. Say `go back` or `back` to go back to the last played song.    \r\n15. Say `quit` to quit the program\r\n16. Sometimes the speech_recognition library doesn't understand some names. For this there is a presets feature\r\n    - Go to `settings.json` and add your own presets\r\n    - See `presets_example.json` for an example\r\n    - Make your own in `settings.json`\r\n    - Presets can only be one word so make it meaningful\r\n    - Now you can say `{preset}` to play a preset\r\n\r\n_Note: Sometimes the speech_recognition library hangs, in that case you have to force quit the program by using_ `ctrl + C` _or_ `cmd + C`_._ _Then restart the program by using_ `python main.py`\r\n\r\n\u003cp align=\"right\"\u003e(\u003ca href=\"#top\"\u003e^\u003c/a\u003e)\u003c/p\u003e\r\n\r\n## Future plans\r\n\r\nMake the whole thing in Rust to make it a whole lot faster.\r\n\r\n\u003cp align=\"right\"\u003e(\u003ca href=\"#top\"\u003e^\u003c/a\u003e)\u003c/p\u003e\r\n\r\n\u003c!-- CONTRIBUTING --\u003e\r\n\r\n## Contributing\r\n\r\nContributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.\r\n\r\nIf you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag \"enhancement\".\r\nDon't forget to give the project a star! Thanks again!\r\n\r\n1. Fork the Project\r\n2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)\r\n3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)\r\n4. Push to the Branch (`git push origin feature/AmazingFeature`)\r\n5. Open a Pull Request\r\n\r\n\u003cp align=\"right\"\u003e(\u003ca href=\"#top\"\u003e^\u003c/a\u003e)\u003c/p\u003e\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnexxeln%2Fspotify-voice-control","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnexxeln%2Fspotify-voice-control","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnexxeln%2Fspotify-voice-control/lists"}