# @distube/soundcloud
A DisTube extractor plugin for supporting SoundCloud.
## Feature
- Using SoundCloud API
- Support SoundCloud tracks, albums and playlists
- Search tracks/playlists on SoundCloud
- Play tracks directly from SoundCloud
## Installation
```sh
npm install @distube/soundcloud@latest
```
## Usage
### Plugin
```ts
import { Client } from "discord.js";
import { DisTube } from "distube";
import { SoundCloudPlugin } from "@distube/soundcloud";
const client = new Client();
const distube = new DisTube(client, {
plugins: [new SoundCloudPlugin()],
});
```
### Search
```ts
const scPlugin = new SoundCloudPlugin();
scPlugin.search("A SoundCloud Playlist", "playlist", 3);
```
## Documentation
### new SoundCloudPlugin([SoundCloudPluginOptions])
- `SoundCloudPluginOptions.clientId` [string] _(optional)_: Your account's client id.
- `SoundCloudPluginOptions.oauthToken` [string] _(optional)_: Your account's oauth token. Used to fetch more data with SoundCloud Go+ account.
- How to get `clientId` and `oauthToken`? [See here](https://github.com/Tenpi/soundcloud.ts#getting-started)
#### Example
```js
new SoundCloudPlugin({
clientId: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
oauthToken: "0-000000-000000000-xxxxxxxxxxxxxx",
});
```
### SoundCloudPlugin#search(query, [type], [limit])
Searches for the given query on SoundCloud.
- Parameters
- `query` [string] Search query.
- `type` [string]: Type of results (`track` or `playlist`). Default is `track`.
- `limit` [integer]: Limit the results. Default is `10`.
- Returns a `Promise`
- Returns a `Promise` if `type` parameter is `track`
- Returns a `Promise` if `type` parameter is `playlist`