Initial commit

This commit is contained in:
ale 2020-12-28 18:55:06 +01:00
commit a6b2f0d541
3 changed files with 66 additions and 0 deletions

26
README.md Normal file
View File

@ -0,0 +1,26 @@
# grumble-youtube
## Install
`npm i` or `yarn`
## Usage
```
$ MUMBLE_SERVER=server.domain.com node index.js
```
## Play
```
Write in grumble: play <youtube-link>
Example:
play https://www.youtube.com/watch?v=XXXXXXX
You can use other links sites such as youtube-dl software
```
## License
### MIT

27
index.js Normal file
View File

@ -0,0 +1,27 @@
const { NodeGrumble, Events, MessageType } = require('node-grumble'),
ytdl = require('ytdl-core'),
ytdlcore = require('youtube-dl'),
grumble = NodeGrumble.create({
url: String(process.env.MUMBLE_SERVER),
name: String('grumble-youtube'),
}),
volume = 0.6
console.log('Connecting');
(async () => {
grumble.on(Events.Connected, () => {
console.log('Connected to ' + process.env.MUMBLE_SERVER)
})
const connection = await grumble.connect()
grumble.on(MessageType.TextMessage, message => {
const msg = message.message.replace(/<[^>]*>?/gm, '')
if (msg.split(' ')[0] === 'play' && msg.split(' ').length === 2) {
if (msg.split(' ')[1].match(/^https?:\/\/www\.youtube\.com\/watch\?v=/i)) {
connection.playFile(ytdl(msg.split(' ')[1], { filter: 'audioonly' }), volume)
} else if (msg.split(' ')[1].match(/^https?:\/\//i)) {
connection.playFile(ytdlcore(msg.split(' ')[1], ['-x']), volume)
}
connection.sendTextMessage('Playing... ' + msg.split(' ')[1])
}
})
})()

13
package.json Normal file
View File

@ -0,0 +1,13 @@
{
"name": "grumble-youtube",
"version": "1.0.0",
"description": "Play audio in Grumble",
"main": "index.js",
"author": "ale",
"license": "MIT",
"dependencies": {
"node-grumble": "latest",
"youtube-dl": "latest",
"ytdl-core": "latest"
}
}