{"id":15282503,"url":"https://github.com/skyclo/node-scdl","last_synced_at":"2025-07-07T18:41:38.202Z","repository":{"id":44691054,"uuid":"251752679","full_name":"skyclo/node-scdl","owner":"skyclo","description":"🎵 An easy to use, minimal dependency Soundcloud song downloader.","archived":false,"fork":false,"pushed_at":"2024-04-11T11:43:31.000Z","size":16,"stargazers_count":4,"open_issues_count":2,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-10-01T14:26:27.845Z","etag":null,"topics":["downloader","mp3","music","soundcloud"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/node-scdl","language":"JavaScript","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/skyclo.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}},"created_at":"2020-03-31T21:59:47.000Z","updated_at":"2024-04-26T01:29:36.000Z","dependencies_parsed_at":"2023-01-23T04:01:26.707Z","dependency_job_id":null,"html_url":"https://github.com/skyclo/node-scdl","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/skyclo%2Fnode-scdl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skyclo%2Fnode-scdl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skyclo%2Fnode-scdl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skyclo%2Fnode-scdl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/skyclo","download_url":"https://codeload.github.com/skyclo/node-scdl/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":219847247,"owners_count":16556405,"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":["downloader","mp3","music","soundcloud"],"created_at":"2024-09-30T14:26:32.268Z","updated_at":"2024-10-14T14:20:52.276Z","avatar_url":"https://github.com/skyclo.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# node-scdl\nAn easy to use, minimal dependency Soundcloud song downloader.\n\n## Installation\nThis module uses only one dependency: [Phin](https://www.npmjs.com/package/phin). This means that node-scdl is very lightweight.\n\nTo install:\n```bash \nnpm install node-scdl\n```\n\n## Usage\nSimiply require the scdl package just like you would with any other module. Then create a new instance of the SoundCloudDownloader client using a client ID. You can find a client ID in the request headers of the Soundcloud website. Open the developer tools in your favorite browser, \n```js\nconst SCDL = require('node-scdl')\n\nconst SoundCloudDownloader = new SCDL('abcdefghijklmnopqrstuvwxyz123456') // This fake Client ID can be replaced with a valid one\n\nconsole.log(SoundCloudDownloader.getInfo(SoundCloudDownloader.getID('https://soundcloud.com/tarroofficial/alone-ft-jutes-noey'))) // Should return a JSON response of Soundcloud Metadata (ie. {title: \"alone ft. jutes x noey\", artist: \"tarro\"})\n```\n\n### How to obtain a client ID\n1. Open the Web Developer Tools in your favorite browser\n2. Go to the network tab\n3. Open up a tab with a SoundCloud song\n4. Select a request/response that contains song data. It should contain about 3 JSON items, one of them being a client ID\n5. Copy and paste that\n\n## API\n### SCDL\n#### Constructor\n*Creates a new instance of the Soundcloud Downloader*\n__Params__\n`clientID` (String) - A valid Soundcloud-API-V1 Client ID\n__Usage__\n```js\nnew SoundCloudDownloader = new SCDL(clientID)\n```\n\n\n#### Methods\n##### SCDL#getInfo\n*Gets all of the Soundcloud Metadata for the track*\n__Params__\n`id` (Number/String) - A valid Soundcloud Track ID\n`callback` (Function) (Optional) - A callback function\n__Returns__\n`Promise\u003cJSON\u003e` - Soundcloud Track Metadata (otherwise returns `Promise\u003cJSON\u003e` to the callback if one is provided)\n__Usage__\n```js\nSoundCloudDownloader.getInfo(12345789)\n```\n\n##### SCDL#getID\n*Accepts the URL and resolves it to an ID that can be used with other SCDL functions*\n__Params__\n`url` (Number/String) - A valid Soundcloud Track URL\n`cb` (Function) (Optional) - A callback function\n__Returns__\n`Promise\u003cNumber\u003e` - Soundcloud Track ID (otherwise returns `Promise\u003cNumber\u003e` to the callback if one is provided)\n__Usage__\n```js\nSoundCloudDownloader.getID('https://soundcloud.com/tarroofficial/alone-ft-jutes-noey')\n```\n\n##### SCDL#getStream\n*Resolves the ID for a soundcloud track and downloads the song*\n__Params__\n`id` (Number/String) - A valid Soundcloud Track ID\n`callback` (Function) (Optional) - A callback function\n__Returns__\n`Promise\u003cReadableStream\u003e` - A ReadableStream containing song data (otherwise returns `Promise\u003cReadableStream\u003e` to the callback if one is provided)\n__Usage__\n```js\nSoundCloudDownloader.getStream(12345789)\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskyclo%2Fnode-scdl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fskyclo%2Fnode-scdl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskyclo%2Fnode-scdl/lists"}