Download Soundcloud audio with Node.js
npm install soundcloud-downloader


!Node.js CI
Download Soundcloud tracks with Node.js
```
npm install soundcloud-downloader
I couldn't find any packages that worked with a Discord bot I was working on so I created my own.
#### Features
- Extremely fast (interacts directly with the Soundcloud API)
- Download/manipulate audio from Soundcloud (it is returned as a stream)
- Get information about tracks and playlists
- Filter and download specific formats
- Search and find related tracks/playlists/albums/users
#### Table of Contents
- API
- Examples
- Obtaining a Client ID
- To do
Read the docs for more.
function, which returns a Promise containing a ReadableStream.
`javascript
const scdl = require('soundcloud-downloader').default
const fs = require('fs')const SOUNDCLOUD_URL = 'https://soundcloud.com/askdjfhaklshf'
const CLIENT_ID = 'asdhkalshdkhsf'
scdl.download(SOUNDCLOUD_URL).then(stream => stream.pipe(fs.createWriteStream('audio.mp3')))
`You can do anything you like with the stream that is returned, an example with Discord.js:
`javascript
const client = new Discord.Client()
const url = 'https://soundcloud.com/taliya-jenkins/double-cheese-burger-hold-the'
const clientID = 'asdlkajasd'
const channelID = '123456789'
client.on('ready', () => {
const channel = client.channels.cache.get(channelID)
channel.join().then(connection => {
scdl.download(url, clientID).then(stream => {
connection.play(stream)
})
})
})
`You can also create a custom instance of the SCDL class with settings configured to your liking:
`javascript
const scdlCreate = require('../').create
const axios = require('axios').defaultconst scdl = scdlCreate({
clientID: 'adasdasd',
saveClientID: true,
filePath: './client_id.json',
axiosInstance: axios.create()
})
`You can view the code for these examples and find more in the example folder.
Client ID
You can obtain a Client ID by visting the Soundcloud website and inspecting network traffic (perhaps with Chrome DevTools or some HTTP proxy software) and looking for any requests to the Soundcloud API. Ex:
`
https://api-v2.soundcloud.com/me/play-history/tracks?client_id={CLIENT ID IS HERE}&limit=25&offset=0&linked_partitioning=1&app_version=1590494738&app_locale=en
``Here is a picture of where you should be able to find it:

If you have any feature requests, suggestions or questions do not hesistate to post them in the issues section