- Module for SoundCloud to download and get info tracks and playlists.
- Support Typescript and Javascript.
const fs = require("fs");
const { SoundCloud } = require("scdl-core");
await SoundCloud.connect();
const stream = await SoundCloud.download(
"https://soundcloud.com/martingarrix/martin-garrix-feat-bonn-no-sleep"
);
stream.pipe(fs.createWriteStream("song.mp3"));
// Used to get the SoundCloud client_id. Call 1 time at the top of your app.
const { SoundCloud } = require("scdl-core");
await SoundCloud.connect();
await SoundCloud.download(
"https://soundcloud.com/martingarrix/martin-garrix-feat-bonn-no-sleep"
);
stream.pipe(fs.createWriteStream("song.mp3"));
const result = await SoundCloud.search({
query: string,
limit?: number, // Default: 20
offset?: number, // Default: 0
filter?: 'all' | 'albums' | 'playlists' | 'users' | 'tracks' // Default: "all"
});
const ids = [578933490, 499766382];
const tracks = await SoundCloud.tracks.getTracksByIds(ids);
const permalink =
"https://soundcloud.com/martingarrix/martin-garrix-feat-bonn-no-sleep";
const track = await SoundCloud.tracks.getTrack(permalink);
const trendingTracks = await SoundCloud.tracks.getTrending({
limit?: number, // Default: 20
offset?: number // Default: 0
});
const permalink =
"https://soundcloud.com/martingarrix/sets/martin-garrix-matisse-sadko";
const playlist = await SoundCloud.playlists.getPlaylist(permalink);
const permalink = "https://soundcloud.com/martingarrix";
const user = await SoundCloud.users.getUser(permalink);
const permalink =
"https://soundcloud.com/martingarrix/martin-garrix-feat-bonn-no-sleep";
const stream = await SoundCloud.download(permalink);
stream.pipe(fs.createWriteStream("song.mp3"));
// For streaming, you can customize the `highWaterMark` value to reduce lag if the internet is not good.
// Example:
const stream = await SoundCloud.download(permalink, {
highWaterMark: 1 << 25, // 32Mb, default is 16kb
});
// Discord.js v12
const voiceChannel = message.member.voiceChannel;
voiceChannel
.join()
.then((connection) => {
SoundCloud.download(trackPermalink).then((stream) => {
connection.play(stream);
});
})
.catch((err) => console.log(err));
// Discord.js v13
const audioPlayer = createAudioPlayer();
const voiceConnection = joinVoiceChannel({
channelId,
guildId,
adapterCreator,
});
voiceConnection.subscribe(audioPlayer);
const stream = await SoundCloud.download(SONG_URL);
const audioResource = createAudioResource(stream);
audioPlayer.play(audioResource);
npm install scdl-core --save
Or for Yarn users:
yarn add scdl-core