{"id":15025711,"url":"https://github.com/tchapi/tuneefy2","last_synced_at":"2025-04-09T20:04:44.492Z","repository":{"id":29812311,"uuid":"33356747","full_name":"tchapi/tuneefy2","owner":"tchapi","description":"🎶 tuneefy is a unified way to share music with your friends, over various online music services","archived":false,"fork":false,"pushed_at":"2025-01-06T20:30:41.000Z","size":2704,"stargazers_count":22,"open_issues_count":0,"forks_count":6,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-04-09T20:04:37.823Z","etag":null,"topics":["composer","music","php8","streaming","symfony"],"latest_commit_sha":null,"homepage":"https://tuneefy.com","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tchapi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2015-04-03T09:30:09.000Z","updated_at":"2025-01-06T20:30:45.000Z","dependencies_parsed_at":"2024-04-14T22:45:06.264Z","dependency_job_id":null,"html_url":"https://github.com/tchapi/tuneefy2","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/tchapi%2Ftuneefy2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tchapi%2Ftuneefy2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tchapi%2Ftuneefy2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tchapi%2Ftuneefy2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tchapi","download_url":"https://codeload.github.com/tchapi/tuneefy2/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248103868,"owners_count":21048245,"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":["composer","music","php8","streaming","symfony"],"created_at":"2024-09-24T20:02:52.853Z","updated_at":"2025-04-09T20:04:44.472Z","avatar_url":"https://github.com/tchapi.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# tuneefy _2_\n\nA new version of [tuneefy](http://tuneefy.com) built for **PHP 8** and **Node 18+**, from the ground up, using Symfony and a few helper libraries.\n\n### Installing\n\nThis project uses [composer 2](https://getcomposer.org/). Just run :\n\n    composer install\n\n### Creating tables\n\nTuneefy needs a variety of tables to work properly; you can populate your database with the following :\n\n    bin/console doctrine:migrations:migrate\n\n### Building assets \u0026 API doc\n\nTo build the assets and the API documentation, I use **yarn** and some modules.\n\n    yarn install\n\n    yarn run build\n    yarn run api-documentation\n\n### Tests\n\nThe tests are under the `./tests` folder and I use **Codeception** to run them.\n\nJust run :\n\n    vendor/bin/codecept run --steps\n\nBeforehand, do not forget to launch a development web server so that the functional tests have an endpoint to test:\n\n    symfony server:start --port 9999\n\nThere should be 40 tests containing 697 assertions.\n\n\u003e Sometimes a platform fails to respond correctly due to network latencies or such. Re-run the tests in this case, it should pass fine the second time.\n\n### API\n\nThe API endpoints require an OAuth access token. The token is necessary to authenticate **all** requests to the API.\n\nThe tuneefy API currently supports the [OAuth 2 draft](https://oauth.net/2/) specification. All OAuth2 requests MUST use the SSL endpoint available at https://data.tuneefy.com/.\n\nOAuth 2.0 is a simple and secure authentication mechanism. It allows applications to acquire an access token for tuneefy via a POST request to a token endpoint. Authentication with OAuth can be accomplished in the following steps:\n\n  1. Register for an API key by sending a mail to api@tuneefy.com\n  2. Exchange your customer id and secret for an access token\n  3. Make requests by passing the token in the Authorization header\n  4. When your token expires, you can get a new one \n\n#### Apply for an API key\n\nYou can get an API key and associated secret by sending an email to api@tuneefy.com.\n\n#### Web Service Rate Limits\n\nLimits are placed on the number of API requests you may make using your API key. Rate limits may vary by service, but the defaults are 100 requests per hour.\n\n#### Full documentation\n\nThe full documentation is available at https://data.tuneefy.com. An API blueprint is also available [here](https://github.com/tchapi/tuneefy2/blob/master/app/templates/api/main.apib) — use your preferred renderer to build it. We use Aglio.\n\n\n- - -\n\n\u003e If you want to participate/contribute, feel free to create pull requests or issues so we can make Tuneefy better and more efficient !\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftchapi%2Ftuneefy2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftchapi%2Ftuneefy2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftchapi%2Ftuneefy2/lists"}