{"id":16752564,"url":"https://github.com/anirbanmu/muc","last_synced_at":"2025-07-12T22:31:50.948Z","repository":{"id":42216363,"uuid":"135784325","full_name":"anirbanmu/muc","owner":"anirbanmu","description":"Music URI converter","archived":false,"fork":false,"pushed_at":"2024-02-10T19:37:43.000Z","size":13635,"stargazers_count":3,"open_issues_count":0,"forks_count":2,"subscribers_count":0,"default_branch":"main","last_synced_at":"2024-10-14T02:47:21.015Z","etag":null,"topics":["javascript","music","utility","vue","vuejs2","web-app"],"latest_commit_sha":null,"homepage":"https://muc.anirbanmu.com/","language":"Vue","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/anirbanmu.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,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2018-06-02T03:34:04.000Z","updated_at":"2022-11-01T05:02:08.000Z","dependencies_parsed_at":"2024-02-10T20:26:03.478Z","dependency_job_id":"8b56ada7-067a-4669-a295-b3cb3bdd4dd2","html_url":"https://github.com/anirbanmu/muc","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/anirbanmu%2Fmuc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anirbanmu%2Fmuc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anirbanmu%2Fmuc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anirbanmu%2Fmuc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/anirbanmu","download_url":"https://codeload.github.com/anirbanmu/muc/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225839628,"owners_count":17532307,"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":["javascript","music","utility","vue","vuejs2","web-app"],"created_at":"2024-10-13T02:47:29.039Z","updated_at":"2024-11-22T04:12:04.907Z","avatar_url":"https://github.com/anirbanmu.png","language":"Vue","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MUC\n### Music URL Converter\nA simple application to take in a URL from various music streaming services \u0026 show the same track (when available) from other streaming services. You can see a live demo @ https://muc.anirbanmu.com/?queries[]=spotify:track:2HYr8LZRlJKEfMbIgT0365\n\n#### Query params\n\n- `queries[]=spotify:track:2HYr8LZRlJKEfMbIgT0365` - array type query param (can have multiple) that can be passed as the initial queries to the app.\n\n#### Supported services\n\nIt currently supports Spotify, YouTube, iTunes/Apple Music \u0026 Deezer.\n\n### Setup\n\n- Make sure you have [Node](https://nodejs.org/en/download/package-manager/) \u0026 [npm](https://yarnpkg.com/lang/en/docs/install) [installed](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm)\n- Clone the repo\n- `cd` into repo directory\n- `npm install`\n\n#### Frontend\n\nThe front end must be built \u0026 ready to go before the backend can successfully serve the app.\n\nFor development (will build, watch for changes \u0026 rebuild Vue.js frontend):\n\n    npm run build-watch\n\nFor production (will build only):\n\n    npm run build\n\nBuilt files are placed in the `./dist` directory.\n\n#### Backend\n\nThe backend requires API keys to be set so that the respective APIs can be used.\n\n    SPOTIFY_CLIENT_ID=\u003cspotify client ID\u003e [REQUIRED]\n    SPOTIFY_CLIENT_SECRET=\u003cspotify client secret\u003e [REQUIRED]\n    YOUTUBE_API_KEY=\u003cyoutube API key\u003e [REQUIRED]\n    GOOGLE_SITE_VERIFICATION_CODE=\u003cgoogle site verification code via meta tag\u003e [OPTIONAL]\n\nAfter having set the environment variables, you can start the backend server locally with:\n\n    npm run express\n\nYou should now be able to access the application locally @ http://localhost:8081\n\n#### fly.io\n\nThe application is ready to be deployed on fly.io. Just create an app with [flyctl](https://fly.io/docs/flyctl/installing/) and replace the `\u003cAPP-NAME\u003e` in [fly.toml](fly.toml). After you've created the app \u0026 replaced the name in fly.toml:\n- `flyctl secrets set SPOTIFY_CLIENT_ID=\u003cspotify client ID\u003e [REQUIRED]`\n- `flyctl secrets set SPOTIFY_CLIENT_SECRET=\u003cspotify client secret\u003e [REQUIRED]`\n- `flyctl secrets set YOUTUBE_API_KEY=\u003cyoutube API key\u003e [REQUIRED]`\n- `flyctl deploy --build-secret GOOGLE_SITE_VERIFICATION_CODE=\u003cgoogle site verification code via meta tag\u003e` if you want the Google Site verification code in the page, else just `flyctl deploy`.\n\n### Details\n#### Frontend\nMost of the application code is client side which is a Vue.js app. This handles all rendering, parsing of URLs, \u0026 converting them to other services.\n\n#### Backend\nThe backend consists of a very trivial express server thats sole purpose is to get some initial server side data (API tokens) \u0026 template the single page Vue.js app so it can then run independently from the backend. It also serves an API to get the API tokens by themselves without so that the frontend can refresh it's tokens periodically.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanirbanmu%2Fmuc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanirbanmu%2Fmuc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanirbanmu%2Fmuc/lists"}