{"id":41667153,"url":"https://github.com/lucasefe/spotcast-poc","last_synced_at":"2026-01-24T17:31:14.272Z","repository":{"id":64306019,"uuid":"91109344","full_name":"lucasefe/spotcast-poc","owner":"lucasefe","description":"Spotcast allows one Spotify desktop client (ideally yours) to drive other Spotify desktop clients running on different hosts.","archived":false,"fork":false,"pushed_at":"2017-09-08T19:08:38.000Z","size":105,"stargazers_count":1,"open_issues_count":3,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-06-20T07:55:28.118Z","etag":null,"topics":["golang","spotify","websocket"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lucasefe.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-05-12T16:18:03.000Z","updated_at":"2024-06-20T07:55:28.119Z","dependencies_parsed_at":"2023-01-15T10:30:39.446Z","dependency_job_id":null,"html_url":"https://github.com/lucasefe/spotcast-poc","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/lucasefe/spotcast-poc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucasefe%2Fspotcast-poc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucasefe%2Fspotcast-poc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucasefe%2Fspotcast-poc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucasefe%2Fspotcast-poc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lucasefe","download_url":"https://codeload.github.com/lucasefe/spotcast-poc/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucasefe%2Fspotcast-poc/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28732585,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-24T10:24:43.181Z","status":"ssl_error","status_checked_at":"2026-01-24T10:24:36.112Z","response_time":89,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["golang","spotify","websocket"],"created_at":"2026-01-24T17:31:14.208Z","updated_at":"2026-01-24T17:31:14.264Z","avatar_url":"https://github.com/lucasefe.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# spotcast\n\nSpotcast allows one spotify desktop client (ideally yours) to manage other spotify desktop clients running on different hosts.\n\nIn order to achieve this, you need to install a client binary on each machine running Spotify, and have one server binary running somewhere, available to anyone, and you need to know the url of this one (duh).\n\n## Only one driver!\n\nWho gets to decide what's being played? Simple, the first one to join the channel. The next ones will be the followers. \n\n## Caveats\n\nMany. \n\n* If the leader drops from the server, no new leader is elected. Everyone needs to leaver and re-join. This will be fixed soon. \n* No authentication, for now.\n* This is a developer thing. It's still pretty early to call it stable, so YMMV. \n* What you can do with each spotify client is pretty limited. You can PLAY, PAUSE, RESUME, and that's it. Playing from a specific position is not supported, nor skipping songs.\n\n\n## Acknowledgements / Some history\n\n* To Julian Porta, a fellow programmer who played shared/public sessions on Grooveshark every Friday, entertaining us with different kinds of music.  Great times. Now he's not with us anymore, but I remember him everyday, and this is a tribute to him, in some way. \n\n* I encoutered [this article](http://cgbystrom.com/articles/deconstructing-spotifys-builtin-http-server/) while I was searching for a way to control the spotify client. It gave me all the insight I needed to achieve it. Kudos to the guy who wrote it. \n\n## Installation \n\n### Client\n\nYou can use homebrew to install it on a mac, otherwise download the binary from the [releases section](https://github.com/lucasefe/spotcast/releases)\n\n    brew tap lucasefe/spotcast\n    brew install spotcast-client\n\nTo run it, you need to specify the server host:port combination. \n\n    spotcast-client -remote spotcast-server.herokuapp.com\n\nBy default, the clients connects to the `general` channel, but if you want to have a separate broadcast, you can switch to a different one by specifying it:\n\n    spotcast-client -channel heavymetal\n\nAgain, if you are the first, you get to decide what to play. \n\n### Server \n\nYou can run spotcast server on a free heroku instance by clicking [![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy)\n\nOr using homebrew:\n\n    brew tap lucasefe/spotcast\n    brew install spotcast-server\n\n## Build // Development\n\n* Copy `cp .env.sample .env`\n* Setup environment with `source .env`\n* Install dependencies with [gpm](https://github.com/pote/gpm): `gpm install`\n\nAll rights reserved to Lucas Florio\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flucasefe%2Fspotcast-poc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flucasefe%2Fspotcast-poc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flucasefe%2Fspotcast-poc/lists"}