{"id":13474534,"url":"https://github.com/swinton/SpotHub","last_synced_at":"2025-03-26T21:31:44.652Z","repository":{"id":74330809,"uuid":"150882116","full_name":"swinton/SpotHub","owner":"swinton","description":":headphones: :relaxed: Collaborate on Spotify playlists using Pull Requests, powered by GitHub Actions","archived":false,"fork":false,"pushed_at":"2020-08-20T22:07:22.000Z","size":24,"stargazers_count":115,"open_issues_count":2,"forks_count":22,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-24T12:13:35.430Z","etag":null,"topics":["github","github-actions","spotify","spotify-api","spotify-playlist","spotify-web-api"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"isc","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/swinton.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2018-09-29T16:21:21.000Z","updated_at":"2025-03-09T12:14:41.000Z","dependencies_parsed_at":"2024-02-17T18:32:02.733Z","dependency_job_id":null,"html_url":"https://github.com/swinton/SpotHub","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/swinton%2FSpotHub","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/swinton%2FSpotHub/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/swinton%2FSpotHub/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/swinton%2FSpotHub/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/swinton","download_url":"https://codeload.github.com/swinton/SpotHub/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245738719,"owners_count":20664333,"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","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":["github","github-actions","spotify","spotify-api","spotify-playlist","spotify-web-api"],"created_at":"2024-07-31T16:01:13.001Z","updated_at":"2025-03-26T21:31:44.260Z","avatar_url":"https://github.com/swinton.png","language":"Shell","readme":"# SpotHub\n\n\u003e Collaborate on Spotify playlists using Pull Requests :headphones: :relaxed:\n\n## How does this even work?\n\nUsing [**GitHub Actions**](https://github.com/features/actions) of course!\n\nOn every `push` to the `master` branch, [the Action](https://github.com/swinton/SpotHub/blob/bc2d697744a710bce3ce6a56a10d473045c3ea53/.github/actions/spotify-playlist/Dockerfile) will:\n\n1. [Grab a fresh _access token_ from Spotify](https://github.com/swinton/SpotHub/blob/bc2d697744a710bce3ce6a56a10d473045c3ea53/.github/actions/spotify-playlist/get_access_token.sh), using the `SPOTIFY_AUTH` and `SPOTIFY_REFRESH_TOKEN` [secrets](https://developer.github.com/actions/creating-workflows/storing-secrets/).\n1. [Generate a JSON payload](https://github.com/swinton/SpotHub/blob/bc2d697744a710bce3ce6a56a10d473045c3ea53/.github/actions/spotify-playlist/process_playlist.sh), from [`playlist.csv`](playlist.csv).\n1. [Update a playlist on Spotify](https://github.com/swinton/SpotHub/blob/bc2d697744a710bce3ce6a56a10d473045c3ea53/.github/actions/spotify-playlist/populate_playlist.sh), specified by the `playlist_id` [environment variable](https://developer.github.com/actions/creating-github-actions/accessing-the-runtime-environment/#environment-variables).\n\n## What do I do?\n\n1. Update `playlist.csv`\n1. `git commit`\n1. `git push`\n1. Enjoy your [updated Spotify playlist](https://open.spotify.com/user/stevewinton/playlist/5lNXObovv3WL1Ioyag2FuG) \n\n## Why was this built?\n\nSo we can [collaborate on playlists the right way](https://github.com/swinton/SpotHub/pull/1) :wink:\n\nAlso, because I :heart: Spotify and GitHub, and now I can bring 2 of my favorite things together with [GitHub Actions](https://github.com/features/actions).\n\nSign up for the GitHub Actions beta [here](https://github.com/features/actions) :headphones: :relaxed:\n","funding_links":[],"categories":["Community Resources","Shell","Uncategorized"],"sub_categories":["Deployment","Uncategorized"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fswinton%2FSpotHub","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fswinton%2FSpotHub","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fswinton%2FSpotHub/lists"}