forked from discordjs/website
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdocs.json
1 lines (1 loc) · 97.9 KB
/
docs.json
1
{"meta":{"generator":"0.11.1","format":22,"date":1658789040536},"custom":{"general":{"name":"General","files":{"welcome":{"name":"Welcome","type":"md","content":"<div align=\"center\">\n <p>\n <a href=\"https://www.npmjs.com/package/distube\" target=\"_blank\"><img src=\"https://nodei.co/npm/distube.png?downloads=true&downloadRank=true&stars=true\"></a>\n </p>\n <p>\n <a href=\"https://github.com/skick1234/DisTube/actions\" target=\"_blank\"><img alt=\"GitHub Workflow Status\" src=\"https://img.shields.io/github/workflow/status/skick1234/DisTube/Testing?label=Tests&logo=github&style=flat-square\"></a>\n <a href=\"https://nodejs.org/\" target=\"_blank\"><img alt=\"node-current\" src=\"https://img.shields.io/node/v/distube?logo=node.js&logoColor=white&style=flat-square\"></a>\n <a href=\"https://discord.js.org/\" target=\"_blank\"><img alt=\"npm peer dependency version\" src=\"https://img.shields.io/npm/dependency-version/distube/peer/discord.js?label=discord.js&logo=discord&logoColor=white&style=flat-square\"></a>\n <a href=\"https://depfu.com/github/skick1234/DisTube?project_id=36112\" target=\"_blank\"><img alt=\"Depfu\" src=\"https://img.shields.io/depfu/dependencies/github/skick1234/DisTube?style=flat-square\"></a>\n <a href=\"https://app.codecov.io/gh/skick1234/DisTube\" target=\"_blank\"><img alt=\"Codecov branch\" src=\"https://img.shields.io/codecov/c/github/skick1234/DisTube/main?logo=codecov&logoColor=white&style=flat-square&token=WWDYRRSEQW\"></a>\n <br>\n <a href=\"https://www.npmjs.com/package/distube\" target=\"_blank\"><img alt=\"npm\" src=\"https://img.shields.io/npm/dt/distube?logo=npm&style=flat-square\"></a>\n <a href=\"https://github.com/skick1234/DisTube/stargazers\" target=\"_blank\"><img alt=\"GitHub Repo stars\" src=\"https://img.shields.io/github/stars/skick1234/DisTube?logo=github&logoColor=white&style=flat-square\"></a>\n <a href=\"https://discord.gg/feaDd9h\" target=\"_blank\"><img alt=\"Discord\" src=\"https://img.shields.io/discord/732254550689316914?logo=discord&logoColor=white&style=flat-square\"></a>\n </p>\n</div>\n\n# DisTube\n\nA Discord.js module to simplify your music commands and play songs with audio filters on Discord without any API key.\n\n[DisTube Support Server](https://discord.gg/feaDd9h) - [Frequently Asked Questions](https://discord.gg/feaDd9h)\n\n## Features\n\n- Based on `@discordjs/voice`\n- Easy to use and customize\n- Support YouTube and audio link\n- Audio filters (bassboost, nightcore, vaporwave,...)\n- Autoplay related songs\n- Plugin system to support more sites ([Plugin List](https://distube.js.org/#/docs/DisTube/stable/plugin/list))\n\n## Requirement\n\n- Node.js 16.9.0 or higher\n- [discord.js](https://discord.js.org) v14\n- [@discordjs/voice](https://github.com/discordjs/voice)\n- [FFmpeg](https://www.ffmpeg.org/download.html)\n- [@discordjs/opus](https://github.com/discordjs/opus)\n- [sodium](https://www.npmjs.com/package/sodium) or [libsodium-wrappers](https://www.npmjs.com/package/libsodium-wrappers)\n\n## Installation\n\n```npm\nnpm install distube@dev\n```\n\n## Documentation\n\nRead DisTube's definitions, properties and events details in the [Documentation page](https://distube.js.org/).\n\n## Example Bot\n\n- [DisTube Bot](https://skick.xyz/DisTube) - A music bot with reaction controller, filters, DJ mode, user's custom playlist and voting.\n- [DisTube Example](https://github.com/distubejs/example) - Example bot with simple command handler.\n- [DisTube Guide](https://distube.js.org/guide) - How to build a music bot from scratch.\n\n## Dependencies\n\n- [node-ytdl-core](https://github.com/fent/node-ytdl-core): YouTube scraper ([DisTube Fork](https://github.com/distubejs/node-ytdl-core))\n- [node-ytsr](https://github.com/TimeForANinja/node-ytsr): YouTube search scraper ([DisTube Fork](https://github.com/distubejs/ytsr))\n- [node-ytpl](https://github.com/TimeForANinja/node-ytpl): YouTube playlist resolver ([DisTube Fork](https://github.com/distubejs/ytpl))\n","path":"README.md"},"update":{"name":"Updating to v4","type":"md","content":"# Updating your code\n\nv4 contains many new features, optimizations.\\\nVisit [the guide](https://distube.js.org/guide/additional-info/update.html) for help with updating your code from older versions.\n","path":"pages/general/update.md"}}},"plugin":{"name":"Plugin","files":{"list":{"name":"Plugin List","type":"md","content":"# Official Plugin\n\n- [@distube/spotify](https://www.npmjs.com/package/@distube/spotify): Spotify custom plugin.\n- [@distube/soundcloud](https://www.npmjs.com/package/@distube/soundcloud): SoundCloud extractor plugin.\n- [@distube/yt-dlp](https://www.npmjs.com/package/@distube/yt-dlp): yt-dlp extractor plugin for supporting 700+ sites.\n","path":"pages/plugin/list.md"},"dev":{"name":"Plugin Development","type":"md","content":"# Plugin Development (WIP)\n\n- Plugins will provide data to DisTube for handling and playing song without having to edit the DisTube files to support other sites.\n\n## Extractor Plugin\n\n- Example: [@distube/soundcloud](https://www.npmjs.com/package/@distube/soundcloud)\n\n## Custom Plugin\n\n- Example: [@distube/spotify](https://www.npmjs.com/package/@distube/spotify)\n","path":"pages/plugin/dev.md"}}}},"classes":[{"name":"DisTube","construct":{"name":"DisTube","description":"Create a new DisTube class.","params":[{"name":"client","description":"Discord.JS client","type":[[["Discord","."],["Client"]]]},{"name":"otp","description":"Custom DisTube options","optional":true,"type":[[["DisTubeOptions"]]]}],"examples":["const Discord = require('discord.js'),\n DisTube = require('distube'),\n client = new Discord.Client();\n// Create a new DisTube\nconst distube = new DisTube.default(client, { searchSongs: 10 });\n// client.DisTube = distube // make it access easily\nclient.login(\"Your Discord Bot Token\")"]},"props":[{"name":"client","description":"Discord.JS client","type":[[["Discord","."],["Client"]]],"meta":{"line":73,"file":"DisTube.ts","path":"src"}},{"name":"options","description":"DisTube options","type":[[["DisTubeOptions"]]],"meta":{"line":79,"file":"DisTube.ts","path":"src"}},{"name":"voices","description":"Voice connections manager","type":[[["DisTubeVoiceManager"]]],"meta":{"line":84,"file":"DisTube.ts","path":"src"}},{"name":"handler","description":"DisTube's Handler","access":"private","type":[[["DisTubeHandler"]]],"meta":{"line":89,"file":"DisTube.ts","path":"src"}},{"name":"queues","description":"Queues manager","type":[[["QueueManager"]]],"meta":{"line":95,"file":"DisTube.ts","path":"src"}},{"name":"filters","description":"DisTube filters","type":[[["Filters"]]],"meta":{"line":100,"file":"DisTube.ts","path":"src"}},{"name":"extractorPlugins","description":"Extractor Plugins","access":"private","type":[[["Array","<"],["ExtractorPlugin",">"]]],"meta":{"line":108,"file":"DisTube.ts","path":"src"}},{"name":"customPlugins","description":"Custom Plugins","access":"private","type":[[["Array","<"],["CustomPlugin",">"]]],"meta":{"line":114,"file":"DisTube.ts","path":"src"}},{"name":"version","description":"DisTube version","type":[[["string"]]],"meta":{"line":126,"file":"DisTube.ts","path":"src"}}],"methods":[{"name":"play","description":"Play / add a song or playlist from url. Search and play a song if it is not a valid url.","examples":["client.on('message', (message) => {\n if (!message.content.startsWith(config.prefix)) return;\n const args = message.content.slice(config.prefix.length).trim().split(/ +/g);\n const command = args.shift();\n if (command == \"play\")\n distube.play(message.member.voice.channel, args.join(\" \"), {\n member: message.member,\n textChannel: message.channel,\n message\n });\n});"],"params":[{"name":"voiceChannel","description":"The channel will be joined if the bot isn't in any channels,\nthe bot will be moved to this channel if {@link DisTubeOptions}.joinNewVoiceChannel is `true`","type":[[["Discord","."],["BaseGuildVoiceChannel"]]]},{"name":"song","description":"URL | Search string |\n{@link Song} | {@link SearchResult} | {@link Playlist}","type":[[["string"]],[["Song"]],[["SearchResult"]],[["Playlist"]]]},{"name":"options","description":"Optional options","optional":true,"type":[[["PlayOptions"]]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":134,"file":"DisTube.ts","path":"src"}},{"name":"createCustomPlaylist","description":"Create a custom playlist","examples":["const songs = [\"https://www.youtube.com/watch?v=xxx\", \"https://www.youtube.com/watch?v=yyy\"];\nconst playlist = await distube.createCustomPlaylist(songs, {\n member: message.member,\n properties: { name: \"My playlist name\", source: \"custom\" },\n parallel: true\n});\ndistube.play(voiceChannel, playlist, { ... });"],"params":[{"name":"songs","description":"Array of url, Song or SearchResult","type":[[["Array","<"],["string","|"],["Song","|"],["SearchResult",">"]]]},{"name":"options","description":"Optional options","optional":true,"type":[[["CustomPlaylistOptions"]]]}],"async":true,"returns":[[["Promise","<"],["Playlist",">"]]],"meta":{"line":224,"file":"DisTube.ts","path":"src"}},{"name":"search","description":"Search for a song. You can customize how user answers instead of send a number.\nThen use {@link DisTube#play} to play it.","params":[{"name":"string","description":"The string search for","type":[[["string"]]]},{"name":"options","description":"Search options","type":[[["Object"]]]},{"name":"options.limit","description":"Limit the results","optional":true,"default":10,"type":[[["number"]]]},{"name":"options.type","description":"Type of results (`video` or `playlist`).","optional":true,"default":"SearchResultType.VIDEO","type":[[["SearchResultType"]]]},{"name":"options.safeSearch","description":"Whether or not use safe search (YouTube restricted mode)","optional":true,"default":false,"type":[[["boolean"]]]}],"async":true,"returns":{"types":[[["Promise","<"],["Array","<"],["SearchResult",">>"]]],"description":"Array of results"},"meta":{"line":281,"file":"DisTube.ts","path":"src"}},{"name":"getQueue","description":"Get the guild queue","examples":["client.on('message', (message) => {\n if (!message.content.startsWith(config.prefix)) return;\n const args = message.content.slice(config.prefix.length).trim().split(/ +/g);\n const command = args.shift();\n if (command == \"queue\") {\n const queue = distube.getQueue(message);\n message.channel.send('Current queue:\\n' + queue.songs.map((song, id) =>\n `**${id+1}**. [${song.name}](${song.url}) - \\`${song.formattedDuration}\\``\n ).join(\"\\n\"));\n }\n});"],"params":[{"name":"guild","description":"The type can be resolved to give a {@link Queue}","type":[[["GuildIdResolvable"]]]}],"returns":{"types":[[["Queue"]]],"nullable":true},"meta":{"line":327,"file":"DisTube.ts","path":"src"}},{"name":"pause","description":"Pause the guild stream","params":[{"name":"guild","description":"The type can be resolved to give a {@link Queue}","type":[[["GuildIdResolvable"]]]}],"returns":{"types":[[["Queue"]]],"description":"The guild queue"},"meta":{"line":349,"file":"DisTube.ts","path":"src"}},{"name":"resume","description":"Resume the guild stream","params":[{"name":"guild","description":"The type can be resolved to give a {@link Queue}","type":[[["GuildIdResolvable"]]]}],"returns":{"types":[[["Queue"]]],"description":"The guild queue"},"meta":{"line":361,"file":"DisTube.ts","path":"src"}},{"name":"stop","description":"Stop the guild stream","examples":["client.on('message', (message) => {\n if (!message.content.startsWith(config.prefix)) return;\n const args = message.content.slice(config.prefix.length).trim().split(/ +/g);\n const command = args.shift();\n if (command == \"stop\") {\n distube.stop(message);\n message.channel.send(\"Stopped the queue!\");\n }\n});"],"params":[{"name":"guild","description":"The type can be resolved to give a {@link Queue}","type":[[["GuildIdResolvable"]]]}],"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":373,"file":"DisTube.ts","path":"src"}},{"name":"setVolume","description":"Set the guild stream's volume","examples":["client.on('message', (message) => {\n if (!message.content.startsWith(config.prefix)) return;\n const args = message.content.slice(config.prefix.length).trim().split(/ +/g);\n const command = args.shift();\n if (command == \"volume\")\n distube.setVolume(message, Number(args[0]));\n});"],"params":[{"name":"guild","description":"The type can be resolved to give a {@link Queue}","type":[[["GuildIdResolvable"]]]},{"name":"percent","description":"The percentage of volume you want to set","type":[[["number"]]]}],"returns":{"types":[[["Queue"]]],"description":"The guild queue"},"meta":{"line":395,"file":"DisTube.ts","path":"src"}},{"name":"skip","description":"Skip the playing song if there is a next song in the queue.\n<info>If {@link Queue#autoplay} is `true` and there is no up next song,\nDisTube will add and play a related song.</info>","examples":["client.on('message', (message) => {\n if (!message.content.startsWith(config.prefix)) return;\n const args = message.content.slice(config.prefix.length).trim().split(/ +/g);\n const command = args.shift();\n if (command == \"skip\")\n distube.skip(message);\n});"],"params":[{"name":"guild","description":"The type can be resolved to give a {@link Queue}","type":[[["GuildIdResolvable"]]]}],"returns":{"types":[[["Promise","<"],["Song",">"]]],"description":"The new Song will be played"},"meta":{"line":416,"file":"DisTube.ts","path":"src"}},{"name":"previous","description":"Play the previous song","examples":["client.on('message', (message) => {\n if (!message.content.startsWith(config.prefix)) return;\n const args = message.content.slice(config.prefix.length).trim().split(/ +/g);\n const command = args.shift();\n if (command == \"previous\")\n distube.previous(message);\n});"],"params":[{"name":"guild","description":"The type can be resolved to give a {@link Queue}","type":[[["GuildIdResolvable"]]]}],"returns":{"types":[[["Promise","<"],["Song",">"]]],"description":"The new Song will be played"},"meta":{"line":438,"file":"DisTube.ts","path":"src"}},{"name":"shuffle","description":"Shuffle the guild queue songs","examples":["client.on('message', (message) => {\n if (!message.content.startsWith(config.prefix)) return;\n const args = message.content.slice(config.prefix.length).trim().split(/ +/g);\n const command = args.shift();\n if (command == \"shuffle\")\n distube.shuffle(message);\n});"],"params":[{"name":"guild","description":"The type can be resolved to give a {@link Queue}","type":[[["GuildIdResolvable"]]]}],"returns":{"types":[[["Promise","<"],["Queue",">"]]],"description":"The guild queue"},"meta":{"line":458,"file":"DisTube.ts","path":"src"}},{"name":"jump","description":"Jump to the song number in the queue.\nThe next one is 1, 2,...\nThe previous one is -1, -2,...","examples":["client.on('message', (message) => {\n if (!message.content.startsWith(config.prefix)) return;\n const args = message.content.slice(config.prefix.length).trim().split(/ +/g);\n const command = args.shift();\n if (command == \"jump\")\n distube.jump(message, parseInt(args[0]))\n .catch(err => message.channel.send(\"Invalid song number.\"));\n});"],"params":[{"name":"guild","description":"The type can be resolved to give a {@link Queue}","type":[[["GuildIdResolvable"]]]},{"name":"num","description":"The song number to play","type":[[["number"]]]}],"returns":{"types":[[["Promise","<"],["Song",">"]]],"description":"The new Song will be played"},"meta":{"line":477,"file":"DisTube.ts","path":"src"}},{"name":"setRepeatMode","description":"Set the repeat mode of the guild queue.\\\nToggle mode `(Disabled -> Song -> Queue -> Disabled ->...)` if `mode` is `undefined`","examples":["client.on('message', (message) => {\n if (!message.content.startsWith(config.prefix)) return;\n const args = message.content.slice(config.prefix.length).trim().split(/ +/g);\n const command = args.shift();\n if (command == \"repeat\") {\n let mode = distube.setRepeatMode(message, parseInt(args[0]));\n mode = mode ? mode == 2 ? \"Repeat queue\" : \"Repeat song\" : \"Off\";\n message.channel.send(\"Set repeat mode to `\" + mode + \"`\");\n }\n});","const { RepeatMode } = require(\"distube\");\nlet mode;\nswitch(distube.setRepeatMode(message, parseInt(args[0]))) {\n case RepeatMode.DISABLED:\n mode = \"Off\";\n break;\n case RepeatMode.SONG:\n mode = \"Repeat a song\";\n break;\n case RepeatMode.QUEUE:\n mode = \"Repeat all queue\";\n break;\n}\nmessage.channel.send(\"Set repeat mode to `\" + mode + \"`\");"],"params":[{"name":"guild","description":"The type can be resolved to give a {@link Queue}","type":[[["GuildIdResolvable"]]]},{"name":"mode","description":"The repeat modes (toggle if `undefined`)","optional":true,"nullable":true,"type":[[["RepeatMode"]]]}],"returns":{"types":[[["RepeatMode"]]],"description":"The new repeat mode"},"meta":{"line":501,"file":"DisTube.ts","path":"src"}},{"name":"toggleAutoplay","description":"Toggle autoplay mode","examples":["client.on('message', (message) => {\n if (!message.content.startsWith(config.prefix)) return;\n const args = message.content.slice(config.prefix.length).trim().split(/ +/g);\n const command = args.shift();\n if (command == \"autoplay\") {\n const mode = distube.toggleAutoplay(message);\n message.channel.send(\"Set autoplay mode to `\" + (mode ? \"On\" : \"Off\") + \"`\");\n }\n});"],"params":[{"name":"guild","description":"The type can be resolved to give a {@link Queue}","type":[[["GuildIdResolvable"]]]}],"returns":{"types":[[["boolean"]]],"description":"Autoplay mode state"},"meta":{"line":540,"file":"DisTube.ts","path":"src"}},{"name":"addRelatedSong","description":"Add related song to the queue","params":[{"name":"guild","description":"The type can be resolved to give a {@link Queue}","type":[[["GuildIdResolvable"]]]}],"returns":{"types":[[["Promise","<"],["Song",">"]]],"description":"The guild queue"},"meta":{"line":563,"file":"DisTube.ts","path":"src"}},{"name":"seek","description":"Set the playing time to another position","examples":["client.on('message', message => {\n if (!message.content.startsWith(config.prefix)) return;\n const args = message.content.slice(config.prefix.length).trim().split(/ +/g);\n const command = args.shift();\n if (command = 'seek')\n distube.seek(message, Number(args[0]));\n});"],"params":[{"name":"guild","description":"The type can be resolved to give a {@link Queue}","type":[[["GuildIdResolvable"]]]},{"name":"time","description":"Time in seconds","type":[[["number"]]]}],"returns":{"types":[[["Queue"]]],"description":"Seeked queue"},"meta":{"line":574,"file":"DisTube.ts","path":"src"}},{"name":"emitError","description":"Emit error event","access":"private","params":[{"name":"error","description":"error","type":[[["Error"]]]},{"name":"channel","description":"Text channel where the error is encountered.","optional":true,"type":[[["Discord","."],["BaseGuildTextChannel"]]]}],"meta":{"line":594,"file":"DisTube.ts","path":"src"}}],"events":[{"name":"addList","description":"Emitted after DisTube add a new playlist to the playing {@link Queue}.","examples":["distube.on(\"addList\", (queue, playlist) => queue.textChannel.send(\n `Added \\`${playlist.name}\\` playlist (${playlist.songs.length} songs) to the queue!`\n));"],"params":[{"name":"queue","description":"The guild queue","type":[[["Queue"]]]},{"name":"playlist","description":"Playlist info","type":[[["Playlist"]]]}],"meta":{"line":617,"file":"DisTube.ts","path":"src"}},{"name":"addSong","description":"Emitted after DisTube add a new song to the playing {@link Queue}.","examples":["distube.on(\"addSong\", (queue, song) => queue.textChannel.send(\n `Added ${song.name} - \\`${song.formattedDuration}\\` to the queue by ${song.user}.`\n));"],"params":[{"name":"queue","description":"The guild queue","type":[[["Queue"]]]},{"name":"song","description":"Added song","type":[[["Song"]]]}],"meta":{"line":629,"file":"DisTube.ts","path":"src"}},{"name":"empty","description":"Emitted when there is no user in the voice channel,\n{@link DisTubeOptions}.leaveOnEmpty is `true` and there is a playing queue.\n\nIf there is no playing queue (stopped and {@link DisTubeOptions}.leaveOnStop is `false`),\nit will leave the channel without emitting this event.","examples":["distube.on(\"empty\", queue => queue.textChannel.send(\"Channel is empty. Leaving the channel\"))"],"params":[{"name":"queue","description":"The guild queue","type":[[["Queue"]]]}],"meta":{"line":641,"file":"DisTube.ts","path":"src"}},{"name":"error","description":"Emitted when DisTube encounters an error while playing songs.","examples":["distube.on('error', (channel, e) => {\n if (channel) channel.send(`An error encountered: ${e}`)\n else console.error(e)\n})"],"params":[{"name":"channel","description":"Text channel where the error is encountered.","nullable":true,"type":[[["Discord","."],["BaseGuildTextChannel"]]]},{"name":"error","description":"The error encountered","type":[[["Error"]]]}],"meta":{"line":653,"file":"DisTube.ts","path":"src"}},{"name":"finish","description":"Emitted when there is no more song in the queue and {@link Queue#autoplay} is `false`.\nDisTube will leave voice channel if {@link DisTubeOptions}.leaveOnFinish is `true`.","examples":["distube.on(\"finish\", queue => queue.textChannel.send(\"No more song in queue\"));"],"params":[{"name":"queue","description":"The guild queue","type":[[["Queue"]]]}],"meta":{"line":666,"file":"DisTube.ts","path":"src"}},{"name":"initQueue","description":"Emitted when DisTube initialize a queue to change queue default properties.","examples":["distube.on(\"initQueue\", queue => {\n queue.autoplay = false;\n queue.volume = 100;\n});"],"params":[{"name":"queue","description":"The guild queue","type":[[["Queue"]]]}],"meta":{"line":676,"file":"DisTube.ts","path":"src"}},{"name":"noRelated","description":"Emitted when {@link Queue#autoplay} is `true`, {@link Queue#songs} is empty,\nand DisTube cannot find related songs to play.","examples":["distube.on(\"noRelated\", queue => queue.textChannel.send(\"Can't find related video to play.\"));"],"params":[{"name":"queue","description":"The guild queue","type":[[["Queue"]]]}],"meta":{"line":688,"file":"DisTube.ts","path":"src"}},{"name":"playSong","description":"Emitted when DisTube play a song.\n\nIf {@link DisTubeOptions}.emitNewSongOnly is `true`,\nthis event is not emitted when looping a song or next song is the previous one.","examples":["distube.on(\"playSong\", (queue, song) => queue.textChannel.send(\n `Playing \\`${song.name}\\` - \\`${song.formattedDuration}\\`\\nRequested by: ${song.user}`\n));"],"params":[{"name":"queue","description":"The guild queue","type":[[["Queue"]]]},{"name":"song","description":"Playing song","type":[[["Song"]]]}],"meta":{"line":698,"file":"DisTube.ts","path":"src"}},{"name":"searchNoResult","description":"Emitted when DisTube cannot find any results for the query.","examples":["distube.on(\"searchNoResult\", (message, query) => message.channel.send(`No result found for ${query}!`));"],"params":[{"name":"message","description":"The user message called play method","type":[[["Discord","."],["Message"]]]},{"name":"query","description":"The search query","type":[[["string"]]]}],"meta":{"line":713,"file":"DisTube.ts","path":"src"}},{"name":"searchResult","description":"Emitted when {@link DisTubeOptions|DisTubeOptions.searchSongs} bigger than 0,\nand song param of {@link DisTube#play} is invalid url.\nDisTube will wait for user's next message to choose a song manually.\n<info>{@link https://support.google.com/youtube/answer/7354993|Safe search} is enabled\nif {@link DisTubeOptions}.nsfw is disabled and the message's channel is not a nsfw channel.</info>","examples":["// DisTubeOptions.searchSongs > 0\ndistube.on(\"searchResult\", (message, results) => {\n message.channel.send(`**Choose an option from below**\\n${\n results.map((song, i) => `**${i + 1}**. ${song.name} - \\`${song.formattedDuration}\\``).join(\"\\n\")\n }\\n*Enter anything else or wait 60 seconds to cancel*`);\n});"],"params":[{"name":"message","description":"The user message called play method","type":[[["Discord","."],["Message"]]]},{"name":"results","description":"Searched results","type":[[["Array","<"],["SearchResult",">"]]]},{"name":"query","description":"The search query","type":[[["string"]]]}],"meta":{"line":723,"file":"DisTube.ts","path":"src"}},{"name":"searchCancel","description":"Emitted when {@link DisTubeOptions|DisTubeOptions.searchSongs} bigger than 0,\nand the search canceled due to {@link DisTubeOptions|DisTubeOptions.searchTimeout}.","examples":["// DisTubeOptions.searchSongs > 0\ndistube.on(\"searchCancel\", (message) => message.channel.send(`Searching canceled`));"],"params":[{"name":"message","description":"The user message called play method","type":[[["Discord","."],["Message"]]]},{"name":"query","description":"The search query","type":[[["string"]]]}],"meta":{"line":743,"file":"DisTube.ts","path":"src"}},{"name":"searchInvalidAnswer","description":"Emitted when {@link DisTubeOptions|DisTubeOptions.searchSongs} bigger than 0,\nand the search canceled due to user's next message is not a number or out of results range.","examples":["// DisTubeOptions.searchSongs > 0\ndistube.on(\"searchInvalidAnswer\", (message) => message.channel.send(`You answered an invalid number!`));"],"params":[{"name":"message","description":"The user message called play method","type":[[["Discord","."],["Message"]]]},{"name":"answer","description":"The answered message of user","type":[[["Discord","."],["Message"]]]},{"name":"query","description":"The search query","type":[[["string"]]]}],"meta":{"line":755,"file":"DisTube.ts","path":"src"}},{"name":"searchDone","description":"Emitted when {@link DisTubeOptions|DisTubeOptions.searchSongs} bigger than 0,\nand after the user chose a search result to play.","params":[{"name":"message","description":"The user message called play method","type":[[["Discord","."],["Message"]]]},{"name":"answer","description":"The answered message of user","type":[[["Discord","."],["Message"]]]},{"name":"query","description":"The search query","type":[[["string"]]]}],"meta":{"line":768,"file":"DisTube.ts","path":"src"}},{"name":"disconnect","description":"Emitted when the bot is disconnected to a voice channel.","params":[{"name":"queue","description":"The guild queue","type":[[["Queue"]]]}],"meta":{"line":778,"file":"DisTube.ts","path":"src"}},{"name":"deleteQueue","description":"Emitted when a {@link Queue} is deleted with any reasons.","params":[{"name":"queue","description":"The guild queue","type":[[["Queue"]]]}],"meta":{"line":785,"file":"DisTube.ts","path":"src"}},{"name":"finishSong","description":"Emitted when DisTube finished a song.","params":[{"name":"queue","description":"The guild queue","type":[[["Queue"]]]},{"name":"song","description":"Finished song","type":[[["Song"]]]}],"meta":{"line":792,"file":"DisTube.ts","path":"src"}}],"meta":{"line":56,"file":"DisTube.ts","path":"src"}},{"name":"DisTubeBase","access":"private","abstract":true,"props":[{"name":"distube","description":"DisTube","type":[[["DisTube"]]],"meta":{"line":11,"file":"DisTubeBase.ts","path":"src/core"}},{"name":"queues","description":"The queue manager","readonly":true,"type":[[["QueueManager"]]],"meta":{"line":34,"file":"DisTubeBase.ts","path":"src/core"}},{"name":"voices","description":"The voice manager","readonly":true,"type":[[["DisTubeVoiceManager"]]],"meta":{"line":42,"file":"DisTubeBase.ts","path":"src/core"}},{"name":"client","description":"Discord.js client","readonly":true,"type":[[["Discord","."],["Client"]]],"meta":{"line":50,"file":"DisTubeBase.ts","path":"src/core"}},{"name":"options","description":"DisTube options","readonly":true,"type":[[["DisTubeOptions"]]],"meta":{"line":58,"file":"DisTubeBase.ts","path":"src/core"}},{"name":"handler","description":"DisTube handler","readonly":true,"type":[[["DisTubeHandler"]]],"meta":{"line":66,"file":"DisTubeBase.ts","path":"src/core"}}],"methods":[{"name":"emit","description":"Emit the {@link DisTube} of this base","params":[{"name":"eventName","description":"Event name","type":[[["string"]]]},{"name":"args","description":"arguments","variable":true,"type":[[["any"]]]}],"returns":[[["boolean"]]],"meta":{"line":17,"file":"DisTubeBase.ts","path":"src/core"}},{"name":"emitError","description":"Emit error event","params":[{"name":"error","description":"error","type":[[["Error"]]]},{"name":"channel","description":"Text channel where the error is encountered.","optional":true,"type":[[["Discord","."],["BaseGuildTextChannel"]]]}],"meta":{"line":26,"file":"DisTubeBase.ts","path":"src/core"}}],"meta":{"line":4,"file":"DisTubeBase.ts","path":"src/core"}},{"name":"DisTubeHandler","description":"DisTube's Handler","extends":[[["DisTubeBase"]]],"access":"private","props":[{"name":"distube","description":"DisTube","type":[[["DisTube"]]],"meta":{"line":11,"file":"DisTubeBase.ts","path":"src/core"}},{"name":"queues","description":"The queue manager","readonly":true,"type":[[["QueueManager"]]],"meta":{"line":34,"file":"DisTubeBase.ts","path":"src/core"}},{"name":"voices","description":"The voice manager","readonly":true,"type":[[["DisTubeVoiceManager"]]],"meta":{"line":42,"file":"DisTubeBase.ts","path":"src/core"}},{"name":"client","description":"Discord.js client","readonly":true,"type":[[["Discord","."],["Client"]]],"meta":{"line":50,"file":"DisTubeBase.ts","path":"src/core"}},{"name":"options","description":"DisTube options","readonly":true,"type":[[["DisTubeOptions"]]],"meta":{"line":58,"file":"DisTubeBase.ts","path":"src/core"}},{"name":"handler","description":"DisTube handler","readonly":true,"type":[[["DisTubeHandler"]]],"meta":{"line":66,"file":"DisTubeBase.ts","path":"src/core"}}],"methods":[{"name":"getYouTubeInfo","params":[{"name":"url","description":"url","type":[[["string"]]]},{"name":"basic","description":"getBasicInfo?","optional":true,"default":false,"type":[[["boolean"]]]}],"returns":[[["Promise","<"],["ytdl","."],["videoInfo",">"]]],"meta":{"line":79,"file":"DisTubeHandler.ts","path":"src/core"}},{"name":"resolve","description":"Resolve a url or a supported object to a {@link Song} or {@link Playlist}","params":[{"name":"song","description":"URL | {@link Song}| {@link SearchResult} | {@link Playlist}","type":[[["string"]],[["Song"]],[["SearchResult"]],[["Playlist"]]]},{"name":"options","description":"Optional options","optional":true,"type":[[["ResolveOptions"]]]}],"async":true,"returns":{"types":[[["Promise","<"],["Song","|"],["Playlist","|"],["null",">"]]],"description":"Resolved"},"meta":{"line":101,"file":"DisTubeHandler.ts","path":"src/core"}},{"name":"resolvePlaylist","description":"Resolve Song[] or YouTube playlist url to a Playlist","params":[{"name":"playlist","description":"Resolvable playlist","type":[[["Playlist"]],[["Array","<"],["Song",">"]],[["string"]]]},{"name":"options","description":"Optional options","type":[[["ResolvePlaylistOptions"]]]}],"async":true,"returns":[[["Promise","<"],["Playlist",">"]]],"meta":{"line":142,"file":"DisTubeHandler.ts","path":"src/core"}},{"name":"searchSong","description":"Search for a song, fire {@link DisTube#event:error} if not found.","params":[{"name":"message","description":"The original message from an user","type":[[["Discord","."],["Message"]]]},{"name":"query","description":"The query string","type":[[["string"]]]}],"async":true,"returns":{"types":[[["Promise","<?"],["SearchResult",">"]]],"description":"Song info"},"meta":{"line":175,"file":"DisTubeHandler.ts","path":"src/core"}},{"name":"createSearchMessageCollector","description":"Create a message collector for selecting search results.\n\nNeeded events: {@link DisTube#event:searchResult}, {@link DisTube#event:searchCancel},\n{@link DisTube#event:searchInvalidAnswer}, {@link DisTube#event:searchDone}.","params":[{"name":"message","description":"The original message from an user","type":[[["Discord","."],["Message"]]]},{"name":"results","description":"The search results","type":[[["Array","<"],["SearchResult","|"],["Song","|"],["Playlist",">"]]]},{"name":"query","description":"The query string","optional":true,"nullable":true,"type":[[["string"]]]}],"async":true,"returns":{"types":[[["Promise","<"],["SearchResult","|"],["Song","|"],["Playlist","|"],["null",">"]]],"description":"Selected result"},"meta":{"line":202,"file":"DisTubeHandler.ts","path":"src/core"}},{"name":"playPlaylist","description":"Play or add a {@link Playlist} to the queue.","params":[{"name":"voiceChannel","description":"A voice channel","type":[[["Discord","."],["BaseGuildVoiceChannel"]]]},{"name":"playlist","description":"A YouTube playlist url | a Playlist","type":[[["Playlist"]],[["string"]]]},{"name":"options","description":"Optional options","optional":true,"type":[[["PlayHandlerOptions"]]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":272,"file":"DisTubeHandler.ts","path":"src/core"}},{"name":"playSong","description":"Play or add a {@link Song} to the queue.","params":[{"name":"voiceChannel","description":"A voice channel","type":[[["Discord","."],["BaseGuildVoiceChannel"]]]},{"name":"song","description":"A YouTube playlist url | a Playlist","type":[[["Song"]]]},{"name":"options","description":"Optional options","optional":true,"type":[[["PlayHandlerOptions"]]]}],"async":true,"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":313,"file":"DisTubeHandler.ts","path":"src/core"}},{"name":"emit","description":"Emit the {@link DisTube} of this base","inherits":"DisTubeBase#emit","inherited":true,"params":[{"name":"eventName","description":"Event name","type":[[["string"]]]},{"name":"args","description":"arguments","variable":true,"type":[[["any"]]]}],"returns":[[["boolean"]]],"meta":{"line":17,"file":"DisTubeBase.ts","path":"src/core"}},{"name":"emitError","description":"Emit error event","inherits":"DisTubeBase#emitError","inherited":true,"params":[{"name":"error","description":"error","type":[[["Error"]]]},{"name":"channel","description":"Text channel where the error is encountered.","optional":true,"type":[[["Discord","."],["BaseGuildTextChannel"]]]}],"meta":{"line":26,"file":"DisTubeBase.ts","path":"src/core"}}],"meta":{"line":26,"file":"DisTubeHandler.ts","path":"src/core"}},{"name":"DisTubeStream","access":"private","construct":{"name":"DisTubeStream","description":"Create a DisTubeStream to play with {@link DisTubeVoice}","params":[{"name":"url","description":"Stream URL","type":[[["string"]]]},{"name":"options","description":"Stream options","type":[[["StreamOptions"]]]}]},"props":[{"name":"url","description":"Stream URL","type":[[["string"]]],"meta":{"line":70,"file":"DisTubeStream.ts","path":"src/core"}},{"name":"type","description":"Stream type","type":[[["DiscordVoice","."],["StreamType"]]],"meta":{"line":75,"file":"DisTubeStream.ts","path":"src/core"}},{"name":"stream","description":"FFmpeg stream","type":[[["FFmpeg"]]],"meta":{"line":110,"file":"DisTubeStream.ts","path":"src/core"}}],"methods":[{"name":"YouTube","description":"Create a stream from ytdl video formats","scope":"static","access":"private","params":[{"name":"formats","description":"ytdl video formats","type":[[["Array","<"],["ytdl","."],["videoFormat",">"]]]},{"name":"options","description":"options","type":[[["StreamOptions"]]]}],"returns":[[["DisTubeStream"]]],"meta":{"line":28,"file":"DisTubeStream.ts","path":"src/core"}},{"name":"DirectLink","description":"Create a stream from a stream url","scope":"static","access":"private","params":[{"name":"url","description":"stream url","type":[[["string"]]]},{"name":"options","description":"options","type":[[["StreamOptions"]]]}],"returns":[[["DisTubeStream"]]],"meta":{"line":44,"file":"DisTubeStream.ts","path":"src/core"}}],"meta":{"line":63,"file":"DisTubeStream.ts","path":"src/core"}},{"name":"DisTubeVoice","description":"Create a voice connection to the voice channel","props":[{"name":"channelId","description":"The voice channel id the bot is in","nullable":true,"type":[[["Snowflake"]]],"meta":{"line":87,"file":"DisTubeVoice.ts","path":"src/core"}},{"name":"playbackDuration","description":"Playback duration of the audio resource in seconds","type":[[["number"]]],"meta":{"line":202,"file":"DisTubeVoice.ts","path":"src/core"}},{"name":"selfDeaf","description":"Whether the bot is self-deafened","type":[[["boolean"]]],"meta":{"line":215,"file":"DisTubeVoice.ts","path":"src/core"}},{"name":"selfMute","description":"Whether the bot is self-muted","type":[[["boolean"]]],"meta":{"line":222,"file":"DisTubeVoice.ts","path":"src/core"}},{"name":"voiceState","description":"The voice state of this connection","nullable":true,"type":[[["Discord","."],["VoiceState"]]],"meta":{"line":257,"file":"DisTubeVoice.ts","path":"src/core"}}],"methods":[{"name":"join","description":"Join a voice channel with this connection","params":[{"name":"channel","description":"A voice channel","optional":true,"type":[[["Discord","."],["BaseGuildVoiceChannel"]]]}],"async":true,"returns":[[["Promise","<"],["DisTubeVoice",">"]]],"meta":{"line":130,"file":"DisTubeVoice.ts","path":"src/core"}},{"name":"leave","description":"Leave the voice channel of this connection","params":[{"name":"error","description":"Optional, an error to emit with 'error' event.","optional":true,"type":[[["Error"]]]}],"meta":{"line":148,"file":"DisTubeVoice.ts","path":"src/core"}},{"name":"stop","description":"Stop the playing stream","access":"private","params":[{"name":"force","description":"If true, will force the {@link DisTubeVoice#audioPlayer} to enter the Idle state\neven if the {@link DisTubeVoice#audioResource} has silence padding frames.","optional":true,"default":false,"type":[[["boolean"]]]}],"meta":{"line":161,"file":"DisTubeVoice.ts","path":"src/core"}},{"name":"play","description":"Play a readable stream","access":"private","params":[{"name":"stream","description":"Readable stream","type":[[["DisTubeStream"]]]}],"meta":{"line":170,"file":"DisTubeVoice.ts","path":"src/core"}},{"name":"setSelfDeaf","description":"Self-deafens/undeafens the bot.","params":[{"name":"selfDeaf","description":"Whether or not the bot should be self-deafened","type":[[["boolean"]]]}],"returns":{"types":[[["boolean"]]],"description":"true if the voice state was successfully updated, otherwise false"},"meta":{"line":229,"file":"DisTubeVoice.ts","path":"src/core"}},{"name":"setSelfMute","description":"Self-mutes/unmutes the bot.","params":[{"name":"selfMute","description":"Whether or not the bot should be self-muted","type":[[["boolean"]]]}],"returns":{"types":[[["boolean"]]],"description":"true if the voice state was successfully updated, otherwise false"},"meta":{"line":243,"file":"DisTubeVoice.ts","path":"src/core"}}],"meta":{"line":17,"file":"DisTubeVoice.ts","path":"src/core"}},{"name":"BaseManager","description":"Manages the collection of a data model.","extends":[[["DisTubeBase"]]],"access":"private","abstract":true,"props":[{"name":"size","description":"The size of the collection.","abstract":true,"type":[[["Discord","."],["Collection"]]],"meta":{"line":16,"file":"BaseManager.ts","path":"src/core/manager"}},{"name":"distube","description":"DisTube","type":[[["DisTube"]]],"meta":{"line":11,"file":"DisTubeBase.ts","path":"src/core"}},{"name":"queues","description":"The queue manager","readonly":true,"type":[[["QueueManager"]]],"meta":{"line":34,"file":"DisTubeBase.ts","path":"src/core"}},{"name":"voices","description":"The voice manager","readonly":true,"type":[[["DisTubeVoiceManager"]]],"meta":{"line":42,"file":"DisTubeBase.ts","path":"src/core"}},{"name":"client","description":"Discord.js client","readonly":true,"type":[[["Discord","."],["Client"]]],"meta":{"line":50,"file":"DisTubeBase.ts","path":"src/core"}},{"name":"options","description":"DisTube options","readonly":true,"type":[[["DisTubeOptions"]]],"meta":{"line":58,"file":"DisTubeBase.ts","path":"src/core"}},{"name":"handler","description":"DisTube handler","readonly":true,"type":[[["DisTubeHandler"]]],"meta":{"line":66,"file":"DisTubeBase.ts","path":"src/core"}}],"methods":[{"name":"emit","description":"Emit the {@link DisTube} of this base","inherits":"DisTubeBase#emit","inherited":true,"params":[{"name":"eventName","description":"Event name","type":[[["string"]]]},{"name":"args","description":"arguments","variable":true,"type":[[["any"]]]}],"returns":[[["boolean"]]],"meta":{"line":17,"file":"DisTubeBase.ts","path":"src/core"}},{"name":"emitError","description":"Emit error event","inherits":"DisTubeBase#emitError","inherited":true,"params":[{"name":"error","description":"error","type":[[["Error"]]]},{"name":"channel","description":"Text channel where the error is encountered.","optional":true,"type":[[["Discord","."],["BaseGuildTextChannel"]]]}],"meta":{"line":26,"file":"DisTubeBase.ts","path":"src/core"}}],"meta":{"line":4,"file":"BaseManager.ts","path":"src/core/manager"}},{"name":"DisTubeVoiceManager","description":"Manages voice connections for {@link DisTube}","extends":[[["BaseManager"]]],"props":[{"name":"collection","description":"Collection of {@link DisTubeVoice}.","type":[[["Discord","."],["Collection","<"],["string",", "],["DisTubeVoice",">"]]],"meta":{"line":20,"file":"DisTubeVoiceManager.ts","path":"src/core/manager"}},{"name":"size","description":"The size of the collection.","abstract":true,"type":[[["Discord","."],["Collection"]]],"meta":{"line":16,"file":"BaseManager.ts","path":"src/core/manager"}},{"name":"distube","description":"DisTube","type":[[["DisTube"]]],"meta":{"line":11,"file":"DisTubeBase.ts","path":"src/core"}},{"name":"queues","description":"The queue manager","readonly":true,"type":[[["QueueManager"]]],"meta":{"line":34,"file":"DisTubeBase.ts","path":"src/core"}},{"name":"voices","description":"The voice manager","readonly":true,"type":[[["DisTubeVoiceManager"]]],"meta":{"line":42,"file":"DisTubeBase.ts","path":"src/core"}},{"name":"client","description":"Discord.js client","readonly":true,"type":[[["Discord","."],["Client"]]],"meta":{"line":50,"file":"DisTubeBase.ts","path":"src/core"}},{"name":"options","description":"DisTube options","readonly":true,"type":[[["DisTubeOptions"]]],"meta":{"line":58,"file":"DisTubeBase.ts","path":"src/core"}},{"name":"handler","description":"DisTube handler","readonly":true,"type":[[["DisTubeHandler"]]],"meta":{"line":66,"file":"DisTubeBase.ts","path":"src/core"}}],"methods":[{"name":"get","description":"Get a {@link DisTubeVoice}.","params":[{"name":"guild","description":"The queue resolvable to resolve","type":[[["GuildIdResolvable"]]]}],"returns":{"types":[[["DisTubeVoice"]]],"nullable":true},"meta":{"line":13,"file":"DisTubeVoiceManager.ts","path":"src/core/manager"}},{"name":"create","description":"Create a {@link DisTubeVoice}","access":"private","params":[{"name":"channel","description":"A voice channel to join","type":[[["Discord","."],["BaseGuildVoiceChannel"]]]}],"returns":[[["DisTubeVoice"]]],"meta":{"line":25,"file":"DisTubeVoiceManager.ts","path":"src/core/manager"}},{"name":"join","description":"Join a voice channel","params":[{"name":"channel","description":"A voice channel to join","type":[[["Discord","."],["BaseGuildVoiceChannel"]]]}],"returns":[[["Promise","<"],["DisTubeVoice",">"]]],"meta":{"line":39,"file":"DisTubeVoiceManager.ts","path":"src/core/manager"}},{"name":"leave","description":"Leave the connected voice channel in a guild","params":[{"name":"guild","description":"Queue Resolvable","type":[[["GuildIdResolvable"]]]}],"meta":{"line":49,"file":"DisTubeVoiceManager.ts","path":"src/core/manager"}},{"name":"emit","description":"Emit the {@link DisTube} of this base","inherits":"DisTubeBase#emit","inherited":true,"params":[{"name":"eventName","description":"Event name","type":[[["string"]]]},{"name":"args","description":"arguments","variable":true,"type":[[["any"]]]}],"returns":[[["boolean"]]],"meta":{"line":17,"file":"DisTubeBase.ts","path":"src/core"}},{"name":"emitError","description":"Emit error event","inherits":"DisTubeBase#emitError","inherited":true,"params":[{"name":"error","description":"error","type":[[["Error"]]]},{"name":"channel","description":"Text channel where the error is encountered.","optional":true,"type":[[["Discord","."],["BaseGuildTextChannel"]]]}],"meta":{"line":26,"file":"DisTubeBase.ts","path":"src/core"}}],"meta":{"line":8,"file":"DisTubeVoiceManager.ts","path":"src/core/manager"}},{"name":"FilterManager","description":"Manage filters of a playing {@link Queue}","extends":[[["BaseManager"]]],"props":[{"name":"names","description":"Array of enabled filter name","readonly":true,"type":[[["Array","<"],["string",">"]]],"meta":{"line":114,"file":"FilterManager.ts","path":"src/core/manager"}},{"name":"size","description":"The size of the collection.","abstract":true,"type":[[["Discord","."],["Collection"]]],"meta":{"line":16,"file":"BaseManager.ts","path":"src/core/manager"}},{"name":"distube","description":"DisTube","type":[[["DisTube"]]],"meta":{"line":11,"file":"DisTubeBase.ts","path":"src/core"}},{"name":"queues","description":"The queue manager","readonly":true,"type":[[["QueueManager"]]],"meta":{"line":34,"file":"DisTubeBase.ts","path":"src/core"}},{"name":"voices","description":"The voice manager","readonly":true,"type":[[["DisTubeVoiceManager"]]],"meta":{"line":42,"file":"DisTubeBase.ts","path":"src/core"}},{"name":"client","description":"Discord.js client","readonly":true,"type":[[["Discord","."],["Client"]]],"meta":{"line":50,"file":"DisTubeBase.ts","path":"src/core"}},{"name":"options","description":"DisTube options","readonly":true,"type":[[["DisTubeOptions"]]],"meta":{"line":58,"file":"DisTubeBase.ts","path":"src/core"}},{"name":"handler","description":"DisTube handler","readonly":true,"type":[[["DisTubeHandler"]]],"meta":{"line":66,"file":"DisTubeBase.ts","path":"src/core"}}],"methods":[{"name":"add","description":"Enable a filter or multiple filters to the manager","params":[{"name":"filterOrFilters","description":"The filter or filters to enable","type":[[["FilterResolvable"]],[["Array","<"],["FilterResolvable",">"]]]},{"name":"override","description":"Wether or not override the applied filter with new filter value","optional":true,"default":false,"type":[[["boolean"]]]}],"returns":[[["FilterManager"]]],"meta":{"line":40,"file":"FilterManager.ts","path":"src/core/manager"}},{"name":"clear","description":"Clear enabled filters of the manager","returns":[[["FilterManager"]]],"meta":{"line":69,"file":"FilterManager.ts","path":"src/core/manager"}},{"name":"set","description":"Set the filters applied to the manager","params":[{"name":"filters","description":"The filters to apply","type":[[["Array","<"],["FilterResolvable",">"]]]}],"returns":[[["FilterManager"]]],"meta":{"line":77,"file":"FilterManager.ts","path":"src/core/manager"}},{"name":"remove","description":"Disable a filter or multiple filters","params":[{"name":"filterOrFilters","description":"The filter or filters to disable","type":[[["FilterResolvable"]],[["Array","<"],["FilterResolvable",">"]]]}],"returns":[[["FilterManager"]]],"meta":{"line":92,"file":"FilterManager.ts","path":"src/core/manager"}},{"name":"has","description":"Check whether a filter enabled or not","params":[{"name":"filter","description":"The filter to check","type":[[["FilterResolvable"]]]}],"returns":[[["boolean"]]],"meta":{"line":105,"file":"FilterManager.ts","path":"src/core/manager"}},{"name":"emit","description":"Emit the {@link DisTube} of this base","inherits":"DisTubeBase#emit","inherited":true,"params":[{"name":"eventName","description":"Event name","type":[[["string"]]]},{"name":"args","description":"arguments","variable":true,"type":[[["any"]]]}],"returns":[[["boolean"]]],"meta":{"line":17,"file":"DisTubeBase.ts","path":"src/core"}},{"name":"emitError","description":"Emit error event","inherits":"DisTubeBase#emitError","inherited":true,"params":[{"name":"error","description":"error","type":[[["Error"]]]},{"name":"channel","description":"Text channel where the error is encountered.","optional":true,"type":[[["Discord","."],["BaseGuildTextChannel"]]]}],"meta":{"line":26,"file":"DisTubeBase.ts","path":"src/core"}}],"meta":{"line":5,"file":"FilterManager.ts","path":"src/core/manager"}},{"name":"GuildIdManager","description":"Manages the collection of a data model paired with a guild id.","extends":[[["BaseManager"]]],"access":"private","abstract":true,"props":[{"name":"size","description":"The size of the collection.","abstract":true,"type":[[["Discord","."],["Collection"]]],"meta":{"line":16,"file":"BaseManager.ts","path":"src/core/manager"}},{"name":"distube","description":"DisTube","type":[[["DisTube"]]],"meta":{"line":11,"file":"DisTubeBase.ts","path":"src/core"}},{"name":"queues","description":"The queue manager","readonly":true,"type":[[["QueueManager"]]],"meta":{"line":34,"file":"DisTubeBase.ts","path":"src/core"}},{"name":"voices","description":"The voice manager","readonly":true,"type":[[["DisTubeVoiceManager"]]],"meta":{"line":42,"file":"DisTubeBase.ts","path":"src/core"}},{"name":"client","description":"Discord.js client","readonly":true,"type":[[["Discord","."],["Client"]]],"meta":{"line":50,"file":"DisTubeBase.ts","path":"src/core"}},{"name":"options","description":"DisTube options","readonly":true,"type":[[["DisTubeOptions"]]],"meta":{"line":58,"file":"DisTubeBase.ts","path":"src/core"}},{"name":"handler","description":"DisTube handler","readonly":true,"type":[[["DisTubeHandler"]]],"meta":{"line":66,"file":"DisTubeBase.ts","path":"src/core"}}],"methods":[{"name":"emit","description":"Emit the {@link DisTube} of this base","inherits":"DisTubeBase#emit","inherited":true,"params":[{"name":"eventName","description":"Event name","type":[[["string"]]]},{"name":"args","description":"arguments","variable":true,"type":[[["any"]]]}],"returns":[[["boolean"]]],"meta":{"line":17,"file":"DisTubeBase.ts","path":"src/core"}},{"name":"emitError","description":"Emit error event","inherits":"DisTubeBase#emitError","inherited":true,"params":[{"name":"error","description":"error","type":[[["Error"]]]},{"name":"channel","description":"Text channel where the error is encountered.","optional":true,"type":[[["Discord","."],["BaseGuildTextChannel"]]]}],"meta":{"line":26,"file":"DisTubeBase.ts","path":"src/core"}}],"meta":{"line":5,"file":"GuildIdManager.ts","path":"src/core/manager"}},{"name":"QueueManager","description":"Queue manager","extends":[[["GuildIdManager"]]],"props":[{"name":"collection","description":"Collection of {@link Queue}.","type":[[["Discord","."],["Collection","<"],["string",", "],["Queue",">"]]],"meta":{"line":11,"file":"QueueManager.ts","path":"src/core/manager"}},{"name":"size","description":"The size of the collection.","abstract":true,"type":[[["Discord","."],["Collection"]]],"meta":{"line":16,"file":"BaseManager.ts","path":"src/core/manager"}},{"name":"distube","description":"DisTube","type":[[["DisTube"]]],"meta":{"line":11,"file":"DisTubeBase.ts","path":"src/core"}},{"name":"queues","description":"The queue manager","readonly":true,"type":[[["QueueManager"]]],"meta":{"line":34,"file":"DisTubeBase.ts","path":"src/core"}},{"name":"voices","description":"The voice manager","readonly":true,"type":[[["DisTubeVoiceManager"]]],"meta":{"line":42,"file":"DisTubeBase.ts","path":"src/core"}},{"name":"client","description":"Discord.js client","readonly":true,"type":[[["Discord","."],["Client"]]],"meta":{"line":50,"file":"DisTubeBase.ts","path":"src/core"}},{"name":"options","description":"DisTube options","readonly":true,"type":[[["DisTubeOptions"]]],"meta":{"line":58,"file":"DisTubeBase.ts","path":"src/core"}},{"name":"handler","description":"DisTube handler","readonly":true,"type":[[["DisTubeHandler"]]],"meta":{"line":66,"file":"DisTubeBase.ts","path":"src/core"}}],"methods":[{"name":"create","description":"Create a {@link Queue}","access":"private","params":[{"name":"channel","description":"A voice channel","type":[[["Discord","."],["BaseGuildVoiceChannel"]]]},{"name":"song","description":"First song","type":[[["Song"]],[["Array","<"],["Song",">"]]]},{"name":"textChannel","description":"Default text channel","type":[[["Discord","."],["BaseGuildTextChannel"]]]}],"async":true,"returns":{"types":[[["Promise","<"],["Queue","|"],["true",">"]]],"description":"Returns `true` if encounter an error"},"meta":{"line":16,"file":"QueueManager.ts","path":"src/core/manager"}},{"name":"get","description":"Get a Queue from this QueueManager.","params":[{"name":"guild","description":"Resolvable thing from a guild","type":[[["GuildIdResolvable"]]]}],"returns":{"types":[[["Queue"]]],"nullable":true},"meta":{"line":44,"file":"QueueManager.ts","path":"src/core/manager"}},{"name":"createStream","description":"Create a ytdl stream","params":[{"name":"queue","description":"Queue","type":[[["Queue"]]]}],"returns":[[["DisTubeStream"]]],"meta":{"line":141,"file":"QueueManager.ts","path":"src/core/manager"}},{"name":"playSong","description":"Play a song on voice connection","access":"private","params":[{"name":"queue","description":"The guild queue","type":[[["Queue"]]]}],"async":true,"returns":{"types":[[["Promise","<"],["boolean",">"]]],"description":"error?"},"meta":{"line":155,"file":"QueueManager.ts","path":"src/core/manager"}},{"name":"emit","description":"Emit the {@link DisTube} of this base","inherits":"DisTubeBase#emit","inherited":true,"params":[{"name":"eventName","description":"Event name","type":[[["string"]]]},{"name":"args","description":"arguments","variable":true,"type":[[["any"]]]}],"returns":[[["boolean"]]],"meta":{"line":17,"file":"DisTubeBase.ts","path":"src/core"}},{"name":"emitError","description":"Emit error event","inherits":"DisTubeBase#emitError","inherited":true,"params":[{"name":"error","description":"error","type":[[["Error"]]]},{"name":"channel","description":"Text channel where the error is encountered.","optional":true,"type":[[["Discord","."],["BaseGuildTextChannel"]]]}],"meta":{"line":26,"file":"DisTubeBase.ts","path":"src/core"}}],"meta":{"line":6,"file":"QueueManager.ts","path":"src/core/manager"}},{"name":"CustomPlugin","description":"Custom Plugin","extends":[[["Plugin"]]],"abstract":true,"props":[{"name":"distube","description":"DisTube","type":[[["DisTube"]]],"meta":{"line":24,"file":"Plugin.ts","path":"src/struct"}},{"name":"type","description":"Type of the plugin","type":[[["PluginType"]]],"meta":{"line":30,"file":"Plugin.ts","path":"src/struct"}},{"name":"queues","description":"The queue manager","readonly":true,"type":[[["QueueManager"]]],"meta":{"line":52,"file":"Plugin.ts","path":"src/struct"}},{"name":"voices","description":"The voice manager","readonly":true,"type":[[["DisTubeVoiceManager"]]],"meta":{"line":60,"file":"Plugin.ts","path":"src/struct"}},{"name":"client","description":"Discord.js client","readonly":true,"type":[[["Discord","."],["Client"]]],"meta":{"line":68,"file":"Plugin.ts","path":"src/struct"}},{"name":"options","description":"DisTube options","readonly":true,"type":[[["DisTubeOptions"]]],"meta":{"line":76,"file":"Plugin.ts","path":"src/struct"}},{"name":"handler","description":"DisTube handler","readonly":true,"type":[[["DisTubeHandler"]]],"meta":{"line":84,"file":"Plugin.ts","path":"src/struct"}}],"methods":[{"name":"play","description":"This method will be executed if the url is validated.","abstract":true,"params":[{"name":"voiceChannel","description":"The voice channel will be joined","type":[[["Discord","."],["BaseGuildVoiceChannel"]]]},{"name":"song","description":"Validated `song`","type":[[["string"]]]},{"name":"options","description":"Optional options","optional":true,"type":[[["PlayOptions"]]]}],"returns":[[["Promise","<"],["void",">"]]],"meta":{"line":16,"file":"CustomPlugin.ts","path":"src/struct"}},{"name":"validate","description":"Check if the string is working with this plugin","params":[{"name":"string","description":"String need to validate","type":[[["string"]]]}],"returns":[[["boolean"]],[["Promise","<"],["boolean",">"]]],"meta":{"line":27,"file":"CustomPlugin.ts","path":"src/struct"}},{"name":"emit","description":"Emit an event to the {@link DisTube} class","inherits":"Plugin#emit","inherited":true,"params":[{"name":"eventName","description":"Event name","type":[[["string"]]]},{"name":"args","description":"arguments","variable":true,"type":[[["any"]]]}],"returns":[[["boolean"]]],"meta":{"line":35,"file":"Plugin.ts","path":"src/struct"}},{"name":"emitError","description":"Emit error event to the {@link DisTube} class","inherits":"Plugin#emitError","inherited":true,"params":[{"name":"error","description":"error","type":[[["Error"]]]},{"name":"channel","description":"Text channel where the error is encountered.","optional":true,"type":[[["Discord","."],["BaseGuildTextChannel"]]]}],"meta":{"line":44,"file":"Plugin.ts","path":"src/struct"}},{"name":"getStreamURL","description":"Get the stream url from {@link Song#url}. Returns {@link Song#url} by default.\nNot needed if the plugin plays song from YouTube.","inherits":"Plugin#getStreamURL","inherited":true,"params":[{"name":"url","description":"Input url","type":[[["string"]]]}],"returns":[[["string"]],[["Promise","<"],["string",">"]]],"meta":{"line":100,"file":"Plugin.ts","path":"src/struct"}},{"name":"getRelatedSongs","description":"Get related songs from a supported url. {@link Song#member} should be `undefined`.\nNot needed to add {@link Song#related} because it will be added with this function later.","inherits":"Plugin#getRelatedSongs","inherited":true,"params":[{"name":"_url","description":"Input url","type":[[["string"]]]}],"returns":[[["Array","<"],["Song",">"]],[["Promise","<"],["Array","<"],["Song",">>"]]],"meta":{"line":109,"file":"Plugin.ts","path":"src/struct"}}],"meta":{"line":6,"file":"CustomPlugin.ts","path":"src/struct"}},{"name":"ExtractorPlugin","description":"Extractor Plugin","extends":[[["Plugin"]]],"abstract":true,"props":[{"name":"distube","description":"DisTube","type":[[["DisTube"]]],"meta":{"line":24,"file":"Plugin.ts","path":"src/struct"}},{"name":"type","description":"Type of the plugin","type":[[["PluginType"]]],"meta":{"line":30,"file":"Plugin.ts","path":"src/struct"}},{"name":"queues","description":"The queue manager","readonly":true,"type":[[["QueueManager"]]],"meta":{"line":52,"file":"Plugin.ts","path":"src/struct"}},{"name":"voices","description":"The voice manager","readonly":true,"type":[[["DisTubeVoiceManager"]]],"meta":{"line":60,"file":"Plugin.ts","path":"src/struct"}},{"name":"client","description":"Discord.js client","readonly":true,"type":[[["Discord","."],["Client"]]],"meta":{"line":68,"file":"Plugin.ts","path":"src/struct"}},{"name":"options","description":"DisTube options","readonly":true,"type":[[["DisTubeOptions"]]],"meta":{"line":76,"file":"Plugin.ts","path":"src/struct"}},{"name":"handler","description":"DisTube handler","readonly":true,"type":[[["DisTubeHandler"]]],"meta":{"line":84,"file":"Plugin.ts","path":"src/struct"}}],"methods":[{"name":"resolve","description":"Resolve the validated url to a {@link Song} or a {@link Playlist}.","abstract":true,"params":[{"name":"url","description":"URL","type":[[["string"]]]},{"name":"options","description":"Optional options","optional":true,"type":[[["Object"]]]},{"name":"options.member","description":"Requested user","optional":true,"type":[[["Discord","."],["GuildMember"]]]},{"name":"options.metadata","description":"Metadata","optional":true,"type":[["*"]]}],"returns":[[["Song"]],[["Playlist"]],[["Promise","<"],["Song","|"],["Playlist",">"]]],"meta":{"line":19,"file":"ExtractorPlugin.ts","path":"src/struct"}},{"name":"validate","description":"Check if the url is working with this plugin","params":[{"name":"url","description":"Input url","type":[[["string"]]]}],"returns":[[["boolean"]],[["Promise","<"],["boolean",">"]]],"meta":{"line":32,"file":"ExtractorPlugin.ts","path":"src/struct"}},{"name":"emit","description":"Emit an event to the {@link DisTube} class","inherits":"Plugin#emit","inherited":true,"params":[{"name":"eventName","description":"Event name","type":[[["string"]]]},{"name":"args","description":"arguments","variable":true,"type":[[["any"]]]}],"returns":[[["boolean"]]],"meta":{"line":35,"file":"Plugin.ts","path":"src/struct"}},{"name":"emitError","description":"Emit error event to the {@link DisTube} class","inherits":"Plugin#emitError","inherited":true,"params":[{"name":"error","description":"error","type":[[["Error"]]]},{"name":"channel","description":"Text channel where the error is encountered.","optional":true,"type":[[["Discord","."],["BaseGuildTextChannel"]]]}],"meta":{"line":44,"file":"Plugin.ts","path":"src/struct"}},{"name":"getStreamURL","description":"Get the stream url from {@link Song#url}. Returns {@link Song#url} by default.\nNot needed if the plugin plays song from YouTube.","inherits":"Plugin#getStreamURL","inherited":true,"params":[{"name":"url","description":"Input url","type":[[["string"]]]}],"returns":[[["string"]],[["Promise","<"],["string",">"]]],"meta":{"line":100,"file":"Plugin.ts","path":"src/struct"}},{"name":"getRelatedSongs","description":"Get related songs from a supported url. {@link Song#member} should be `undefined`.\nNot needed to add {@link Song#related} because it will be added with this function later.","inherits":"Plugin#getRelatedSongs","inherited":true,"params":[{"name":"_url","description":"Input url","type":[[["string"]]]}],"returns":[[["Array","<"],["Song",">"]],[["Promise","<"],["Array","<"],["Song",">>"]]],"meta":{"line":109,"file":"Plugin.ts","path":"src/struct"}}],"meta":{"line":6,"file":"ExtractorPlugin.ts","path":"src/struct"}},{"name":"Playlist","description":"Class representing a playlist.","construct":{"name":"Playlist","description":"Create a playlist","params":[{"name":"playlist","description":"Playlist","type":[[["Array","<"],["Song",">"]],[["PlaylistInfo"]]]},{"name":"options","description":"Optional options","optional":true,"type":[[["Object"]]]},{"name":"options.member","description":"Requested user","optional":true,"type":[[["Discord","."],["GuildMember"]]]},{"name":"options.properties","description":"Custom properties","optional":true,"type":[[["Object"]]]},{"name":"options.metadata","description":"Playlist metadata","optional":true,"type":[[["T"]]]}]},"props":[{"name":"source","description":"The source of the playlist","type":[[["string"]]],"meta":{"line":48,"file":"Playlist.ts","path":"src/struct"}},{"name":"songs","description":"Playlist songs.","type":[[["Array","<"],["Song",">"]]],"meta":{"line":54,"file":"Playlist.ts","path":"src/struct"}},{"name":"name","description":"Playlist name.","type":[[["string"]]],"meta":{"line":59,"file":"Playlist.ts","path":"src/struct"}},{"name":"url","description":"Playlist URL.","type":[[["string"]]],"meta":{"line":79,"file":"Playlist.ts","path":"src/struct"}},{"name":"thumbnail","description":"Playlist thumbnail.","nullable":true,"type":[[["string"]]],"meta":{"line":85,"file":"Playlist.ts","path":"src/struct"}},{"name":"metadata","description":"Optional metadata that can be used to identify the playlist.","type":[[["T"]]],"meta":{"line":94,"file":"Playlist.ts","path":"src/struct"}},{"name":"duration","description":"Playlist duration in second.","type":[[["number"]]],"meta":{"line":101,"file":"Playlist.ts","path":"src/struct"}},{"name":"formattedDuration","description":"Formatted duration string `hh:mm:ss`.","type":[[["string"]]],"meta":{"line":109,"file":"Playlist.ts","path":"src/struct"}},{"name":"member","description":"User requested.","nullable":true,"type":[[["Discord","."],["GuildMember"]]],"meta":{"line":117,"file":"Playlist.ts","path":"src/struct"}},{"name":"user","description":"User requested.","nullable":true,"type":[[["Discord","."],["User"]]],"meta":{"line":131,"file":"Playlist.ts","path":"src/struct"}}],"meta":{"line":5,"file":"Playlist.ts","path":"src/struct"}},{"name":"Plugin","description":"DisTube Plugin","access":"private","abstract":true,"props":[{"name":"distube","description":"DisTube","type":[[["DisTube"]]],"meta":{"line":24,"file":"Plugin.ts","path":"src/struct"}},{"name":"type","description":"Type of the plugin","type":[[["PluginType"]]],"meta":{"line":30,"file":"Plugin.ts","path":"src/struct"}},{"name":"queues","description":"The queue manager","readonly":true,"type":[[["QueueManager"]]],"meta":{"line":52,"file":"Plugin.ts","path":"src/struct"}},{"name":"voices","description":"The voice manager","readonly":true,"type":[[["DisTubeVoiceManager"]]],"meta":{"line":60,"file":"Plugin.ts","path":"src/struct"}},{"name":"client","description":"Discord.js client","readonly":true,"type":[[["Discord","."],["Client"]]],"meta":{"line":68,"file":"Plugin.ts","path":"src/struct"}},{"name":"options","description":"DisTube options","readonly":true,"type":[[["DisTubeOptions"]]],"meta":{"line":76,"file":"Plugin.ts","path":"src/struct"}},{"name":"handler","description":"DisTube handler","readonly":true,"type":[[["DisTubeHandler"]]],"meta":{"line":84,"file":"Plugin.ts","path":"src/struct"}}],"methods":[{"name":"emit","description":"Emit an event to the {@link DisTube} class","params":[{"name":"eventName","description":"Event name","type":[[["string"]]]},{"name":"args","description":"arguments","variable":true,"type":[[["any"]]]}],"returns":[[["boolean"]]],"meta":{"line":35,"file":"Plugin.ts","path":"src/struct"}},{"name":"emitError","description":"Emit error event to the {@link DisTube} class","params":[{"name":"error","description":"error","type":[[["Error"]]]},{"name":"channel","description":"Text channel where the error is encountered.","optional":true,"type":[[["Discord","."],["BaseGuildTextChannel"]]]}],"meta":{"line":44,"file":"Plugin.ts","path":"src/struct"}},{"name":"validate","description":"Check if the string is working with this plugin","params":[{"name":"_string","description":"Input string","type":[[["string"]]]}],"returns":[[["boolean"]],[["Promise","<"],["boolean",">"]]],"meta":{"line":92,"file":"Plugin.ts","path":"src/struct"}},{"name":"getStreamURL","description":"Get the stream url from {@link Song#url}. Returns {@link Song#url} by default.\nNot needed if the plugin plays song from YouTube.","params":[{"name":"url","description":"Input url","type":[[["string"]]]}],"returns":[[["string"]],[["Promise","<"],["string",">"]]],"meta":{"line":100,"file":"Plugin.ts","path":"src/struct"}},{"name":"getRelatedSongs","description":"Get related songs from a supported url. {@link Song#member} should be `undefined`.\nNot needed to add {@link Song#related} because it will be added with this function later.","params":[{"name":"_url","description":"Input url","type":[[["string"]]]}],"returns":[[["Array","<"],["Song",">"]],[["Promise","<"],["Array","<"],["Song",">>"]]],"meta":{"line":109,"file":"Plugin.ts","path":"src/struct"}}],"meta":{"line":15,"file":"Plugin.ts","path":"src/struct"}},{"name":"Queue","description":"Represents a queue.","extends":[[["DisTubeBase"]]],"construct":{"name":"Queue","description":"Create a queue for the guild","params":[{"name":"distube","description":"DisTube","type":[[["DisTube"]]]},{"name":"voice","description":"Voice connection","type":[[["DisTubeVoice"]]]},{"name":"song","description":"First song(s)","type":[[["Song"]],[["Array","<"],["Song",">"]]]},{"name":"textChannel","description":"Default text channel","nullable":true,"type":[[["Discord","."],["BaseGuildTextChannel"]]]}]},"props":[{"name":"id","description":"Queue id (Guild id)","type":[[["Discord","."],["Snowflake"]]],"meta":{"line":42,"file":"Queue.ts","path":"src/struct"}},{"name":"volume","description":"Get or set the stream volume. Default value: `50`.","type":[[["number"]]],"meta":{"line":47,"file":"Queue.ts","path":"src/struct"}},{"name":"songs","description":"List of songs in the queue (The first one is the playing song)","type":[[["Array","<"],["Song",">"]]],"meta":{"line":52,"file":"Queue.ts","path":"src/struct"}},{"name":"previousSongs","description":"List of the previous songs.","type":[[["Array","<"],["Song",">"]]],"meta":{"line":57,"file":"Queue.ts","path":"src/struct"}},{"name":"stopped","description":"Whether stream is currently stopped.","access":"private","type":[[["boolean"]]],"meta":{"line":62,"file":"Queue.ts","path":"src/struct"}},{"name":"_next","description":"Whether or not the last song was skipped to next song.","access":"private","type":[[["boolean"]]],"meta":{"line":68,"file":"Queue.ts","path":"src/struct"}},{"name":"_prev","description":"Whether or not the last song was skipped to previous song.","access":"private","type":[[["boolean"]]],"meta":{"line":74,"file":"Queue.ts","path":"src/struct"}},{"name":"playing","description":"Whether or not the stream is currently playing.","type":[[["boolean"]]],"meta":{"line":80,"file":"Queue.ts","path":"src/struct"}},{"name":"paused","description":"Whether or not the stream is currently paused.","type":[[["boolean"]]],"meta":{"line":85,"file":"Queue.ts","path":"src/struct"}},{"name":"repeatMode","description":"Type of repeat mode (`0` is disabled, `1` is repeating a song, `2` is repeating all the queue).\nDefault value: `0` (disabled)","type":[[["RepeatMode"]]],"meta":{"line":90,"file":"Queue.ts","path":"src/struct"}},{"name":"autoplay","description":"Whether or not the autoplay mode is enabled.\nDefault value: `false`","type":[[["boolean"]]],"meta":{"line":96,"file":"Queue.ts","path":"src/struct"}},{"name":"beginTime","description":"What time in the song to begin (in seconds).","type":[[["number"]]],"meta":{"line":103,"file":"Queue.ts","path":"src/struct"}},{"name":"textChannel","description":"The text channel of the Queue. (Default: where the first command is called).","nullable":true,"type":[[["Discord","."],["TextChannel"]]],"meta":{"line":108,"file":"Queue.ts","path":"src/struct"}},{"name":"_emptyTimeout","description":"Timeout for checking empty channel","access":"private","type":[["*"]],"meta":{"line":113,"file":"Queue.ts","path":"src/struct"}},{"name":"_taskQueue","description":"Task queuing system","access":"private","type":[[["TaskQueue"]]],"meta":{"line":119,"file":"Queue.ts","path":"src/struct"}},{"name":"_listeners","description":"DisTubeVoice listener","access":"private","type":[[["Object"]]],"meta":{"line":125,"file":"Queue.ts","path":"src/struct"}},{"name":"clientMember","description":"The client user as a `GuildMember` of this queue's guild","nullable":true,"type":[[["Discord","."],["GuildMember"]]],"meta":{"line":132,"file":"Queue.ts","path":"src/struct"}},{"name":"filters","description":"The filter manager of the queue","readonly":true,"type":[[["FilterManager"]]],"meta":{"line":139,"file":"Queue.ts","path":"src/struct"}},{"name":"formattedDuration","description":"Formatted duration string.","readonly":true,"type":[[["string"]]],"meta":{"line":147,"file":"Queue.ts","path":"src/struct"}},{"name":"duration","description":"Queue's duration.","readonly":true,"type":[[["number"]]],"meta":{"line":155,"file":"Queue.ts","path":"src/struct"}},{"name":"currentTime","description":"What time in the song is playing (in seconds).","readonly":true,"type":[[["number"]]],"meta":{"line":163,"file":"Queue.ts","path":"src/struct"}},{"name":"formattedCurrentTime","description":"Formatted {@link Queue#currentTime} string.","readonly":true,"type":[[["string"]]],"meta":{"line":171,"file":"Queue.ts","path":"src/struct"}},{"name":"voiceChannel","description":"The voice channel playing in.","readonly":true,"type":[[["Discord","."],["VoiceChannel"]],[["Discord","."],["StageChannel"]],[["null"]]],"meta":{"line":179,"file":"Queue.ts","path":"src/struct"}},{"name":"distube","description":"DisTube","type":[[["DisTube"]]],"meta":{"line":11,"file":"DisTubeBase.ts","path":"src/core"}},{"name":"queues","description":"The queue manager","readonly":true,"type":[[["QueueManager"]]],"meta":{"line":34,"file":"DisTubeBase.ts","path":"src/core"}},{"name":"voices","description":"The voice manager","readonly":true,"type":[[["DisTubeVoiceManager"]]],"meta":{"line":42,"file":"DisTubeBase.ts","path":"src/core"}},{"name":"client","description":"Discord.js client","readonly":true,"type":[[["Discord","."],["Client"]]],"meta":{"line":50,"file":"DisTubeBase.ts","path":"src/core"}},{"name":"options","description":"DisTube options","readonly":true,"type":[[["DisTubeOptions"]]],"meta":{"line":58,"file":"DisTubeBase.ts","path":"src/core"}},{"name":"handler","description":"DisTube handler","readonly":true,"type":[[["DisTubeHandler"]]],"meta":{"line":66,"file":"DisTubeBase.ts","path":"src/core"}}],"methods":[{"name":"addToQueue","access":"private","params":[{"name":"song","description":"Song to add","type":[[["Song"]],[["Array","<"],["Song",">"]]]},{"name":"position","description":"Position to add, <= 0 to add to the end of the queue","optional":true,"default":0,"type":[[["number"]]]}],"returns":{"types":[[["Queue"]]],"description":"The guild queue"},"meta":{"line":193,"file":"Queue.ts","path":"src/struct"}},{"name":"pause","description":"Pause the guild stream","returns":{"types":[[["Queue"]]],"description":"The guild queue"},"meta":{"line":220,"file":"Queue.ts","path":"src/struct"}},{"name":"resume","description":"Resume the guild stream","returns":{"types":[[["Queue"]]],"description":"The guild queue"},"meta":{"line":231,"file":"Queue.ts","path":"src/struct"}},{"name":"setVolume","description":"Set the guild stream's volume","params":[{"name":"percent","description":"The percentage of volume you want to set","type":[[["number"]]]}],"returns":{"types":[[["Queue"]]],"description":"The guild queue"},"meta":{"line":242,"file":"Queue.ts","path":"src/struct"}},{"name":"skip","description":"Skip the playing song if there is a next song in the queue.\n<info>If {@link Queue#autoplay} is `true` and there is no up next song,\nDisTube will add and play a related song.</info>","async":true,"returns":{"types":[[["Promise","<"],["Song",">"]]],"description":"The song will skip to"},"meta":{"line":252,"file":"Queue.ts","path":"src/struct"}},{"name":"previous","description":"Play the previous song if exists","async":true,"returns":{"types":[[["Promise","<"],["Song",">"]]],"description":"The guild queue"},"meta":{"line":275,"file":"Queue.ts","path":"src/struct"}},{"name":"shuffle","description":"Shuffle the queue's songs","async":true,"returns":{"types":[[["Promise","<"],["Queue",">"]]],"description":"The guild queue"},"meta":{"line":296,"file":"Queue.ts","path":"src/struct"}},{"name":"jump","description":"Jump to the song position in the queue.\nThe next one is 1, 2,...\nThe previous one is -1, -2,...","params":[{"name":"position","description":"The song position to play","type":[[["number"]]]}],"async":true,"returns":{"types":[[["Promise","<"],["Song",">"]]],"description":"The new Song will be played"},"meta":{"line":315,"file":"Queue.ts","path":"src/struct"}},{"name":"setRepeatMode","description":"Set the repeat mode of the guild queue.\\\nToggle mode `(Disabled -> Song -> Queue -> Disabled ->...)` if `mode` is `undefined`","params":[{"name":"mode","description":"The repeat modes (toggle if `undefined`)","optional":true,"nullable":true,"type":[[["RepeatMode"]]]}],"returns":{"types":[[["RepeatMode"]]],"description":"The new repeat mode"},"meta":{"line":354,"file":"Queue.ts","path":"src/struct"}},{"name":"seek","description":"Set the playing time to another position","params":[{"name":"time","description":"Time in seconds","type":[[["number"]]]}],"returns":{"types":[[["Queue"]]],"description":"The guild queue"},"meta":{"line":369,"file":"Queue.ts","path":"src/struct"}},{"name":"addRelatedSong","description":"Add a related song of the playing song to the queue","async":true,"returns":{"types":[[["Promise","<"],["Song",">"]]],"description":"The added song"},"meta":{"line":381,"file":"Queue.ts","path":"src/struct"}},{"name":"stop","description":"Stop the guild stream and delete the queue","async":true,"meta":{"line":395,"file":"Queue.ts","path":"src/struct"}},{"name":"remove","description":"Remove the queue from the manager\n(This does not leave the voice channel even if {@link DisTubeOptions|DisTubeOptions.leaveOnStop} is enabled)","access":"private","meta":{"line":411,"file":"Queue.ts","path":"src/struct"}},{"name":"toggleAutoplay","description":"Toggle autoplay mode","returns":{"types":[[["boolean"]]],"description":"Autoplay mode state"},"meta":{"line":428,"file":"Queue.ts","path":"src/struct"}},{"name":"emit","description":"Emit the {@link DisTube} of this base","inherits":"DisTubeBase#emit","inherited":true,"params":[{"name":"eventName","description":"Event name","type":[[["string"]]]},{"name":"args","description":"arguments","variable":true,"type":[[["any"]]]}],"returns":[[["boolean"]]],"meta":{"line":17,"file":"DisTubeBase.ts","path":"src/core"}},{"name":"emitError","description":"Emit error event","inherits":"DisTubeBase#emitError","inherited":true,"params":[{"name":"error","description":"error","type":[[["Error"]]]},{"name":"channel","description":"Text channel where the error is encountered.","optional":true,"type":[[["Discord","."],["BaseGuildTextChannel"]]]}],"meta":{"line":26,"file":"DisTubeBase.ts","path":"src/core"}}],"meta":{"line":6,"file":"Queue.ts","path":"src/struct"}},{"name":"ISearchResult","description":"A abstract class representing a search result.","access":"private","abstract":true,"construct":{"name":"ISearchResult","description":"Create a search result","params":[{"name":"info","description":"ytsr result","type":[[["Object"]]]}]},"props":[{"name":"source","description":"The source of the search result","type":[[["\"youtube","\""]]],"meta":{"line":25,"file":"SearchResult.ts","path":"src/struct"}},{"name":"id","description":"YouTube video or playlist id","type":[[["string"]]],"meta":{"line":30,"file":"SearchResult.ts","path":"src/struct"}},{"name":"name","description":"Video or playlist title.","type":[[["string"]]],"meta":{"line":35,"file":"SearchResult.ts","path":"src/struct"}},{"name":"url","description":"Video or playlist URL.","type":[[["string"]]],"meta":{"line":40,"file":"SearchResult.ts","path":"src/struct"}},{"name":"uploader","description":"Video or playlist uploader","type":[[["Object"]]],"props":[{"name":"name","description":"Uploader name","nullable":true,"type":[[["string"]]]},{"name":"url","description":"Uploader url","nullable":true,"type":[[["string"]]]}],"meta":{"line":45,"file":"SearchResult.ts","path":"src/struct"}}],"meta":{"line":4,"file":"SearchResult.ts","path":"src/struct"}},{"name":"SearchResultVideo","description":"A class representing a video search result.","extends":[[["ISearchResult"]]],"props":[{"name":"type","description":"Type of SearchResult","type":[[["SearchResultType","."],["VIDEO"]]],"meta":{"line":72,"file":"SearchResult.ts","path":"src/struct"}},{"name":"views","description":"Video views count","type":[[["number"]]],"meta":{"line":77,"file":"SearchResult.ts","path":"src/struct"}},{"name":"isLive","description":"Indicates if the video is an active live.","type":[[["boolean"]]],"meta":{"line":82,"file":"SearchResult.ts","path":"src/struct"}},{"name":"duration","description":"Video duration.","type":[[["number"]]],"meta":{"line":87,"file":"SearchResult.ts","path":"src/struct"}},{"name":"formattedDuration","description":"Formatted duration string `hh:mm:ss` or `mm:ss`.","type":[[["string"]]],"meta":{"line":92,"file":"SearchResult.ts","path":"src/struct"}},{"name":"thumbnail","description":"Video thumbnail.","type":[[["string"]]],"meta":{"line":97,"file":"SearchResult.ts","path":"src/struct"}},{"name":"source","description":"The source of the search result","type":[[["\"youtube","\""]]],"meta":{"line":25,"file":"SearchResult.ts","path":"src/struct"}},{"name":"id","description":"YouTube video or playlist id","type":[[["string"]]],"meta":{"line":30,"file":"SearchResult.ts","path":"src/struct"}},{"name":"name","description":"Video or playlist title.","type":[[["string"]]],"meta":{"line":35,"file":"SearchResult.ts","path":"src/struct"}},{"name":"url","description":"Video or playlist URL.","type":[[["string"]]],"meta":{"line":40,"file":"SearchResult.ts","path":"src/struct"}},{"name":"uploader","description":"Video or playlist uploader","type":[[["Object"]]],"props":[{"name":"name","description":"Uploader name","nullable":true,"type":[[["string"]]]},{"name":"url","description":"Uploader url","nullable":true,"type":[[["string"]]]}],"meta":{"line":45,"file":"SearchResult.ts","path":"src/struct"}}],"meta":{"line":58,"file":"SearchResult.ts","path":"src/struct"}},{"name":"SearchResultPlaylist","description":"A class representing a playlist search result.","extends":[[["ISearchResult"]]],"props":[{"name":"type","description":"Type of SearchResult","type":[[["SearchResultType","."],["PLAYLIST"]]],"meta":{"line":125,"file":"SearchResult.ts","path":"src/struct"}},{"name":"length","description":"Length of the playlist","type":[[["number"]]],"meta":{"line":130,"file":"SearchResult.ts","path":"src/struct"}},{"name":"source","description":"The source of the search result","type":[[["\"youtube","\""]]],"meta":{"line":25,"file":"SearchResult.ts","path":"src/struct"}},{"name":"id","description":"YouTube video or playlist id","type":[[["string"]]],"meta":{"line":30,"file":"SearchResult.ts","path":"src/struct"}},{"name":"name","description":"Video or playlist title.","type":[[["string"]]],"meta":{"line":35,"file":"SearchResult.ts","path":"src/struct"}},{"name":"url","description":"Video or playlist URL.","type":[[["string"]]],"meta":{"line":40,"file":"SearchResult.ts","path":"src/struct"}},{"name":"uploader","description":"Video or playlist uploader","type":[[["Object"]]],"props":[{"name":"name","description":"Uploader name","nullable":true,"type":[[["string"]]]},{"name":"url","description":"Uploader url","nullable":true,"type":[[["string"]]]}],"meta":{"line":45,"file":"SearchResult.ts","path":"src/struct"}}],"meta":{"line":115,"file":"SearchResult.ts","path":"src/struct"}},{"name":"Song","description":"Class representing a song.\n\n<info>If {@link Song} is added from a YouTube {@link SearchResult} or {@link Playlist},\nsome info will be missing to save your resources. It will be filled when emitting {@link DisTube#playSong} event.\n\nMissing info: {@link Song#likes}, {@link Song#dislikes}, {@link Song#streamURL},\n{@link Song#related}, {@link Song#chapters}, {@link Song#age_restricted}</info>","construct":{"name":"Song","description":"Create a Song","params":[{"name":"info","description":"Raw info","type":[[["ytdl","."],["videoInfo"]],[["SearchResult"]],[["OtherSongInfo"]]]},{"name":"options","description":"Optional options","optional":true,"type":[[["Object"]]]},{"name":"options.member","description":"Requested user","optional":true,"type":[[["Discord","."],["GuildMember"]]]},{"name":"options.source","description":"Song source","optional":true,"default":"\"youtube\"","type":[[["string"]]]},{"name":"options.metadata","description":"Song metadata","optional":true,"type":[[["T"]]]}]},"props":[{"name":"source","description":"The source of the song","type":[[["string"]]],"meta":{"line":66,"file":"Song.ts","path":"src/struct"}},{"name":"metadata","description":"Optional metadata that can be used to identify the song. This is attached by the {@link DisTube#play} method.","type":[[["T"]]],"meta":{"line":71,"file":"Song.ts","path":"src/struct"}},{"name":"formats","description":"Stream formats (Available if the song is from YouTube and playing)","access":"private","nullable":true,"type":[[["Array","<"],["ytdl","."],["videoFormat",">"]]],"meta":{"line":88,"file":"Song.ts","path":"src/struct"}},{"name":"id","description":"YouTube video id","nullable":true,"type":[[["string"]]],"meta":{"line":105,"file":"Song.ts","path":"src/struct"}},{"name":"name","description":"Song name.","nullable":true,"type":[[["string"]]],"meta":{"line":110,"file":"Song.ts","path":"src/struct"}},{"name":"isLive","description":"Indicates if the video is an active live.","type":[[["boolean"]]],"meta":{"line":115,"file":"Song.ts","path":"src/struct"}},{"name":"duration","description":"Song duration.","type":[[["number"]]],"meta":{"line":120,"file":"Song.ts","path":"src/struct"}},{"name":"formattedDuration","description":"Formatted duration string (`hh:mm:ss`, `mm:ss` or `Live`).","nullable":true,"type":[[["string"]]],"meta":{"line":125,"file":"Song.ts","path":"src/struct"}},{"name":"url","description":"Song URL.","type":[[["string"]]],"meta":{"line":130,"file":"Song.ts","path":"src/struct"}},{"name":"streamURL","description":"Stream / Download URL (Available if the song is playing)","nullable":true,"type":[[["string"]]],"meta":{"line":135,"file":"Song.ts","path":"src/struct"}},{"name":"thumbnail","description":"Song thumbnail.","nullable":true,"type":[[["string"]]],"meta":{"line":140,"file":"Song.ts","path":"src/struct"}},{"name":"related","description":"Related songs (without {@link Song#related} properties)","type":[[["Array","<"],["Song",">"]]],"meta":{"line":148,"file":"Song.ts","path":"src/struct"}},{"name":"views","description":"Song views count","type":[[["number"]]],"meta":{"line":155,"file":"Song.ts","path":"src/struct"}},{"name":"likes","description":"Song like count","type":[[["number"]]],"meta":{"line":160,"file":"Song.ts","path":"src/struct"}},{"name":"dislikes","description":"Song dislike count","type":[[["number"]]],"meta":{"line":165,"file":"Song.ts","path":"src/struct"}},{"name":"uploader","description":"Song uploader","type":[[["Object"]]],"props":[{"name":"name","description":"Uploader name","nullable":true,"type":[[["string"]]]},{"name":"url","description":"Uploader url","nullable":true,"type":[[["string"]]]}],"meta":{"line":170,"file":"Song.ts","path":"src/struct"}},{"name":"age_restricted","description":"Whether or not an age-restricted content","type":[[["boolean"]]],"meta":{"line":180,"file":"Song.ts","path":"src/struct"}},{"name":"chapters","description":"Chapters information (YouTube only)","type":[[["Array","<"],["Chapter",">"]]],"meta":{"line":190,"file":"Song.ts","path":"src/struct"}},{"name":"reposts","description":"Song repost count","type":[[["number"]]],"meta":{"line":195,"file":"Song.ts","path":"src/struct"}},{"name":"playlist","description":"The playlist added this song","nullable":true,"type":[[["Playlist"]]],"meta":{"line":237,"file":"Song.ts","path":"src/struct"}},{"name":"member","description":"User requested.","nullable":true,"type":[[["Discord","."],["GuildMember"]]],"meta":{"line":251,"file":"Song.ts","path":"src/struct"}},{"name":"user","description":"User requested.","nullable":true,"type":[[["Discord","."],["User"]]],"meta":{"line":263,"file":"Song.ts","path":"src/struct"}}],"methods":[{"name":"_patchOther","description":"Patch data from other source","access":"private","params":[{"name":"info","description":"Video info","type":[[["OtherSongInfo"]]]}],"meta":{"line":202,"file":"Song.ts","path":"src/struct"}}],"meta":{"line":7,"file":"Song.ts","path":"src/struct"}}],"interfaces":[],"typedefs":[{"name":"defaultFilters","description":"Default DisTube audio filters.","type":[[["Object"]]],"props":[{"name":"3d","description":"3d","type":[[["string"]]]},{"name":"bassboost","description":"bassboost","type":[[["string"]]]},{"name":"echo","description":"echo","type":[[["string"]]]},{"name":"karaoke","description":"karaoke","type":[[["string"]]]},{"name":"nightcore","description":"nightcore","type":[[["string"]]]},{"name":"vaporwave","description":"vaporwave","type":[[["string"]]]},{"name":"flanger","description":"flanger","type":[[["string"]]]},{"name":"gate","description":"gate","type":[[["string"]]]},{"name":"haas","description":"haas","type":[[["string"]]]},{"name":"reverse","description":"reverse","type":[[["string"]]]},{"name":"surround","description":"surround","type":[[["string"]]]},{"name":"mcompand","description":"mcompand","type":[[["string"]]]},{"name":"phaser","description":"phaser","type":[[["string"]]]},{"name":"tremolo","description":"tremolo","type":[[["string"]]]},{"name":"earwax","description":"earwax","type":[[["string"]]]}],"meta":{"line":4,"file":"constant.ts","path":"src"}},{"name":"SearchResult","description":"A video or playlist search result","type":[[["SearchResultVideo"]],[["SearchResultPlaylist"]]],"meta":{"line":109,"file":"SearchResult.ts","path":"src/struct"}},{"name":"Chapter","type":[[["Object"]]],"props":[{"name":"title","description":"Chapter title","type":[[["string"]]]},{"name":"start_time","description":"Chapter start time in seconds","type":[[["number"]]]}],"meta":{"line":185,"file":"Song.ts","path":"src/struct"}},{"name":"Filter","description":"An FFmpeg audio filter object\n```\n{\n name: \"bassboost\",\n value: \"bass=g=10\"\n}\n```","type":[[["Object"]]],"props":[{"name":"name","description":"Name of the filter","type":[[["string"]]]},{"name":"value","description":"FFmpeg audio filter(s)","type":[[["string"]]]}],"meta":{"line":45,"file":"type.ts","path":"src"}},{"name":"FilterResolvable","description":"Data that resolves to give an FFmpeg audio filter. This can be:\n- A name of a default filters or custom filters (`string`)\n- A {@link Filter} object","see":["{@link defaultFilters}","{@link DisTubeOptions|DisTubeOptions.customFilters}"],"type":[[["string"]],[["Filter"]]],"meta":{"line":62,"file":"type.ts","path":"src"}},{"name":"Filters","description":"FFmpeg Filters\n```\n{\n \"Filter Name\": \"Filter Value\",\n \"bassboost\": \"bass=g=10\"\n}\n```","see":["{@link defaultFilters}"],"type":[[["Object","<"],["string",", "],["string",">"]]],"meta":{"line":72,"file":"type.ts","path":"src"}},{"name":"DisTubeOptions","description":"DisTube options.","type":[[["Object"]]],"props":[{"name":"plugins","description":"DisTube plugins.","optional":true,"type":[[["Array","<"],["CustomPlugin","|"],["ExtractorPlugin",">"]]]},{"name":"emitNewSongOnly","description":"Whether or not emitting {@link DisTube#event:playSong} event\nwhen looping a song or next song is the same as the previous one","optional":true,"default":false,"type":[[["boolean"]]]},{"name":"leaveOnEmpty","description":"Whether or not leaving voice channel\nif the voice channel is empty after {@link DisTubeOptions}.emptyCooldown seconds.","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"leaveOnFinish","description":"Whether or not leaving voice channel when the queue ends.","optional":true,"default":false,"type":[[["boolean"]]]},{"name":"leaveOnStop","description":"Whether or not leaving voice channel after using {@link DisTube#stop} function.","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"savePreviousSongs","description":"Whether or not saving the previous songs of the queue\nand enable {@link DisTube#previous} method","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"searchSongs","description":"Limit of search results emits in {@link DisTube#event:searchResult} event\nwhen {@link DisTube#play} method executed. If `searchSongs <= 1`, play the first result","optional":true,"default":0,"type":[[["number"]]]},{"name":"youtubeCookie","description":"YouTube cookies. Read how to get it in\n{@link https://github.com/fent/node-ytdl-core/blob/997efdd5dd9063363f6ef668bb364e83970756e7/example/cookies.js#L6-L12|YTDL's Example}","optional":true,"type":[[["string"]]]},{"name":"youtubeIdentityToken","description":"If not given; ytdl-core will try to find it.\nYou can find this by going to a video's watch page; viewing the source; and searching for \"ID_TOKEN\".","optional":true,"type":[[["string"]]]},{"name":"customFilters","description":"Override {@link defaultFilters} or add more ffmpeg filters.\nExample=`{ \"Filter name\"=\"Filter value\"; \"8d\"=\"apulsator=hz=0.075\" }`","optional":true,"type":[[["Filters"]]]},{"name":"ytdlOptions","description":"`ytdl-core` get info options","optional":true,"type":[[["ytdl","."],["getInfoOptions"]]]},{"name":"searchCooldown","description":"Built-in search cooldown in seconds (When searchSongs is bigger than 0)","optional":true,"default":60,"type":[[["number"]]]},{"name":"emptyCooldown","description":"Built-in leave on empty cooldown in seconds (When leaveOnEmpty is true)","optional":true,"default":60,"type":[[["number"]]]},{"name":"nsfw","description":"Whether or not playing age-restricted content\nand disabling safe search in non-NSFW channel.","optional":true,"default":false,"type":[[["boolean"]]]},{"name":"emitAddListWhenCreatingQueue","description":"Whether or not emitting `addList` event when creating a new Queue","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"emitAddSongWhenCreatingQueue","description":"Whether or not emitting `addSong` event when creating a new Queue","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"joinNewVoiceChannel","description":"Whether or not joining the new voice channel\nwhen using {@link DisTube#play} method","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"streamType","description":"Decide the {@link DisTubeStream#type} will be used\n(Not the same as {@link DisTubeStream#type})","optional":true,"default":"StreamType.OPUS","type":[[["StreamType"]]]},{"name":"directLink","description":"Whether or not play direct link of the song","optional":true,"default":true,"type":[[["boolean"]]]}],"meta":{"line":85,"file":"type.ts","path":"src"}},{"name":"GuildIdResolvable","description":"Data that can be resolved to give a guild id string. This can be:\n- A guild id string | a guild {@link https://discord.js.org/#/docs/main/stable/class/Snowflake|Snowflake}\n- A {@link https://discord.js.org/#/docs/main/stable/class/Guild|Guild}\n- A {@link https://discord.js.org/#/docs/main/stable/class/Message|Message}\n- A {@link https://discord.js.org/#/docs/main/stable/class/BaseGuildVoiceChannel|BaseGuildVoiceChannel}\n- A {@link https://discord.js.org/#/docs/main/stable/class/BaseGuildTextChannel|BaseGuildTextChannel}\n- A {@link https://discord.js.org/#/docs/main/stable/class/VoiceState|VoiceState}\n- A {@link https://discord.js.org/#/docs/main/stable/class/GuildMember|GuildMember}\n- A {@link https://discord.js.org/#/docs/main/stable/class/Interaction|Interaction}\n- A {@link DisTubeVoice}\n- A {@link Queue}","type":[[["Discord","."],["Snowflake"]],[["Discord","."],["Guild"]],[["Discord","."],["Message"]],[["Discord","."],["BaseGuildVoiceChannel"]],[["Discord","."],["BaseGuildTextChannel"]],[["Discord","."],["VoiceState"]],[["Discord","."],["GuildMember"]],[["Discord","."],["Interaction"]],[["DisTubeVoice"]],[["Queue"]],[["string"]]],"meta":{"line":140,"file":"type.ts","path":"src"}},{"name":"PlayHandlerOptions","type":[[["Object"]]],"props":[{"name":"options.textChannel","description":"The default text channel of the queue","optional":true,"type":[[["Discord","."],["BaseGuildTextChannel"]]]},{"name":"options.skip","description":"Skip the playing song (if exists) and play the added playlist instantly","optional":true,"default":false,"type":[[["boolean"]]]},{"name":"options.position","description":"Position of the song/playlist to add to the queue,\n<= 0 to add to the end of the queue.","optional":true,"default":0,"type":[[["number"]]]}],"meta":{"line":227,"file":"type.ts","path":"src"}},{"name":"PlayOptions","type":[[["Object"]]],"props":[{"name":"member","description":"Requested user (default is your bot)","optional":true,"type":[[["Discord","."],["GuildMember"]]]},{"name":"textChannel","description":"Default {@link Queue#textChannel}","optional":true,"type":[[["Discord","."],["BaseGuildTextChannel"]]]},{"name":"skip","description":"Skip the playing song (if exists) and play the added song/playlist if `position` is 1.\nIf `position` is defined and not equal to 1, it will skip to the next song instead of the added song","optional":true,"default":false,"type":[[["boolean"]]]},{"name":"position","description":"Position of the song/playlist to add to the queue,\n<= 0 to add to the end of the queue.","optional":true,"default":0,"type":[[["number"]]]},{"name":"message","description":"Called message (For built-in search events. If this is a {@link https://developer.mozilla.org/en-US/docs/Glossary/Falsy|falsy value}, it will play the first result instead)","optional":true,"type":[[["Discord","."],["Message"]]]},{"name":"metadata","description":"Optional metadata that can be attached to the song/playlist will be played,\nThis is useful for identification purposes when the song/playlist is passed around in events.\nSee {@link Song#metadata} or {@link Playlist#metadata}","optional":true,"type":[["*"]]}],"meta":{"line":240,"file":"type.ts","path":"src"}},{"name":"ResolveOptions","type":[[["Object"]]],"props":[{"name":"member","description":"Requested user","optional":true,"type":[[["Discord","."],["GuildMember"]]]},{"name":"metadata","description":"Metadata","optional":true,"type":[["*"]]}],"meta":{"line":258,"file":"type.ts","path":"src"}},{"name":"ResolvePlaylistOptions","type":[[["ResolveOptions"]]],"props":[{"name":"source","description":"Source of the playlist","optional":true,"type":[[["string"]]]}],"meta":{"line":268,"file":"type.ts","path":"src"}},{"name":"CustomPlaylistOptions","type":[[["Object"]]],"props":[{"name":"member","description":"A guild member creating the playlist","optional":true,"type":[[["Discord","."],["GuildMember"]]]},{"name":"properties","description":"Additional properties such as `name`","optional":true,"type":[[["Object"]]]},{"name":"parallel","description":"Whether or not fetch the songs in parallel","optional":true,"default":true,"type":[[["boolean"]]]},{"name":"metadata","description":"Metadata","optional":true,"type":[["*"]]}],"meta":{"line":276,"file":"type.ts","path":"src"}},{"name":"RepeatMode","description":"The repeat mode of a {@link Queue}\n* `DISABLED` = 0\n* `SONG` = 1\n* `QUEUE` = 2","type":[[["number"]]],"meta":{"line":290,"file":"type.ts","path":"src"}},{"name":"PluginType","description":"All available plugin types:\n* `CUSTOM` = `\"custom\"`: {@link CustomPlugin}\n* `EXTRACTOR` = `\"extractor\"`: {@link ExtractorPlugin}","type":[[["\"custom","\""]],[["\"extractor","\""]]],"meta":{"line":303,"file":"type.ts","path":"src"}},{"name":"SearchResultType","description":"Search result types:\n* `VIDEO` = `\"video\"`\n* `PLAYLIST` = `\"playlist\"`","type":[[["\"video","\""]],[["\"playlist","\""]]],"meta":{"line":314,"file":"type.ts","path":"src"}},{"name":"StreamType","description":"Stream types:\n* `OPUS` = `0` (Better quality, use more resources - **Recommended**)\n* `RAW` = `1` (Better performance, use less resources)","type":[[["number"]]],"meta":{"line":325,"file":"type.ts","path":"src"}},{"name":"Events","type":[[["Object"]]],"props":[{"name":"ERROR","description":"error","type":[[["string"]]]},{"name":"ADD_LIST","description":"addList","type":[[["string"]]]},{"name":"ADD_SONG","description":"addSong","type":[[["string"]]]},{"name":"PLAY_SONG","description":"playSong","type":[[["string"]]]},{"name":"FINISH_SONG","description":"finishSong","type":[[["string"]]]},{"name":"EMPTY","description":"empty","type":[[["string"]]]},{"name":"FINISH","description":"finish","type":[[["string"]]]},{"name":"INIT_QUEUE","description":"initQueue","type":[[["string"]]]},{"name":"NO_RELATED","description":"noRelated","type":[[["string"]]]},{"name":"DISCONNECT","description":"disconnect","type":[[["string"]]]},{"name":"DELETE_QUEUE","description":"deleteQueue","type":[[["string"]]]},{"name":"SEARCH_CANCEL","description":"searchCancel","type":[[["string"]]]},{"name":"SEARCH_NO_RESULT","description":"searchNoResult","type":[[["string"]]]},{"name":"SEARCH_DONE","description":"searchDone","type":[[["string"]]]},{"name":"SEARCH_INVALID_ANSWER","description":"searchInvalidAnswer","type":[[["string"]]]},{"name":"SEARCH_RESULT","description":"searchResult","type":[[["string"]]]}],"meta":{"line":337,"file":"type.ts","path":"src"}}],"externals":[]}