const ytdl = require("ytdl-core")
const voice = require("@discordjs/voice")
+const youtubeSearchApi = require("youtube-search-api")
module.exports = {
play: {
- func: (msg, url) => {
+ func: async (msg, urlArr) => {
+ let url = urlArr.join(" ")
+
+ try {
+ new URL(url)
+ } catch {
+ url = "https://youtube.com/watch?v=" + (await youtubeSearchApi.GetListByKeyword(url, false, 1)).items[0].id
+ }
+
const channel = msg.member.voice.channel
if (! channel)
})
const player = voice.createAudioPlayer()
- player.play(voice.createAudioResource(ytdl(url.join(" "), {filter: "audioonly"}), {inputType: voice.StreamType.Arbitrary}))
+ player.play(voice.createAudioResource(ytdl(url, {filter: "audioonly"}), {inputType: voice.StreamType.Arbitrary}))
conn.subscribe(player)
}
}
"pseudo-random": "^0.6.0",
"sha1": "^1.1.1",
"sodium": "^3.0.2",
+ "youtube-search-api": "^1.1.0",
"ytdl-core": "^4.11.0"
}
},
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
"integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
},
+ "node_modules/axios": {
+ "version": "0.21.4",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz",
+ "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==",
+ "dependencies": {
+ "follow-redirects": "^1.14.0"
+ }
+ },
"node_modules/boolbase": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
},
+ "node_modules/follow-redirects": {
+ "version": "1.14.9",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz",
+ "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://github.com/sponsors/RubenVerborgh"
+ }
+ ],
+ "engines": {
+ "node": ">=4.0"
+ },
+ "peerDependenciesMeta": {
+ "debug": {
+ "optional": true
+ }
+ }
+ },
"node_modules/form-data": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
}
}
},
+ "node_modules/youtube-search-api": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/youtube-search-api/-/youtube-search-api-1.1.0.tgz",
+ "integrity": "sha512-mzaCMzwJIPw1NaW+HanK9WnXcds5aWSA1zdp73gXeoUjkP19rVtjFmdZLvz0abHq/WhpbesNZRVRgJs+H/j8mA==",
+ "dependencies": {
+ "axios": "^0.21.0"
+ }
+ },
"node_modules/ytdl-core": {
"version": "4.11.0",
"resolved": "https://registry.npmjs.org/ytdl-core/-/ytdl-core-4.11.0.tgz",
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
"integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
},
+ "axios": {
+ "version": "0.21.4",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz",
+ "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==",
+ "requires": {
+ "follow-redirects": "^1.14.0"
+ }
+ },
"boolbase": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
},
+ "follow-redirects": {
+ "version": "1.14.9",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz",
+ "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w=="
+ },
"form-data": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
"integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==",
"requires": {}
},
+ "youtube-search-api": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/youtube-search-api/-/youtube-search-api-1.1.0.tgz",
+ "integrity": "sha512-mzaCMzwJIPw1NaW+HanK9WnXcds5aWSA1zdp73gXeoUjkP19rVtjFmdZLvz0abHq/WhpbesNZRVRgJs+H/j8mA==",
+ "requires": {
+ "axios": "^0.21.0"
+ }
+ },
"ytdl-core": {
"version": "4.11.0",
"resolved": "https://registry.npmjs.org/ytdl-core/-/ytdl-core-4.11.0.tgz",