LoginSignup
3
2

[22日目] YouTubeも流せるDiscord 音楽Botを自分でホストする

Posted at

こんにちは、なりかくんと申します。
この記事はなりかくん Advent Calender 2023の22日目の記事です。

最近、YouTubeを再生できるDiscord 音楽Botがほぼ無くなってきましたよね。そこで、自分でBotをホストして自分専用音楽Discord Botを作っていこうと思います。

VPSを使う

今回は、24時間使えるようにVPSを使って音楽Botをホストしていきます。使うVPSは、私一押しVPSである「ConoHa VPS」を使います。

今回は、一人(一つのサーバー)だけで使う予定なのでUbuntu 22.04の2C1Gで作っていきます。
image.png

今回使うプログラム

今回は、GitHub上で見つけた1.7k Star ・ 2k Forksを獲得しているOSSのEvoBotというのを使っていこうと思います。
このBotを選んだ理由は、YouTubeに対応している点と日本語に対応している点、構築が簡単な点等です。

セットアップをしていく

VPSが構築出来たら、Tera TermなどでサーバーにSSH接続します。(rootではダメだろっ!っていう意見は受け付けないので、ダメだと感じた方はしっかり別ユーザーを作ってやってください。)
接続したら、Node.jsと常時起動するためのpm2をインストールします。

この二つのインストールは、以前私が紹介したこのコードで一発インストールします。

curl -sSL https://gist.githubusercontent.com/narikakun/d50ba6efd739a1fb3d08e46fa0b0077b/raw/d94cff02e57523839b78a1cff760044d077200db/install-node-lts-pm2.sh | sh

v20.xx.xxと出てきたらインストール完了です!

image.png

Node.jsとpm2をインストール出来たら、EvoBotをクローンします。

git clone https://github.com/eritislami/evobot.git

image.png

クローン出来たら、evobotのディレクトリに移動します。

cd evobot

移動したら、ライブラリをインストールします。

npm install

image.png

設定する

ここでは事前にDiscord BotのToken取得とメッセージインテントを有効にしていることを前提に話を進めます。

Discord Botの設定はこちらを参考にしてみてください。

Bot作成方法

インテント有効方法(記事の一部にあります。)

まずサーバー上でイグザンプル設定ファイル config.json.example を本物設定ファイルとしてコピーします。

cp config.json.example config.json

次にvimコマンドで config.json を編集します。

vim config.json

image.png

TOKENにDiscord BotのToken、LOCALEをjaにします。
設定したら保存してvimを閉じます。

次に、このプログラムはTypeScriptで書かれてるので仕上げにpm2でTypeScriptで動かせるように以下のコマンドを入力しておきます。

cd  node_modules/.bin
pm2 install typescript
cd ..
cd ..

いよいよ起動

では起動してみましょう。以下のコマンドで起動します。

pm2 start npm  -- run start

以下のコマンドでログを見れます。

pm2 logs 0

起動したときにBotの名前が出てきたら起動成功です。

image.png

確認してみる

実際にBotが動いているか確認してみます。/play コマンドで再生してみます。しっかり再生できました。

image.png

後、初期ボリュームはクソでかいのでconfig.jsonのDEFAULT_VOLUMEで変えるか /volume コマンドで変更してから流した方がよさそうです。
私の場合、ボリュームは10がおすすめです。

取扱説明書を日本語化してここに置いておきます。

  • 🎶 YouTubeの音楽をURLから再生する
    /play https://www.youtube.com/watch?v=GLvohMXgcBo

  • 🔎 YouTubeの音楽を検索クエリ経由で再生する
    /play under the bridge red hot chili peppers

  • 🔎 再生する音楽を検索して選択する
    /search Pearl Jam

  • 📃 YouTubeのプレイリストをURLから再生する
    /playlist https://www.youtube.com/watch?v=YlUKcNNmywk&list=PL5RNCwK3GIO13SR_o57bGJCEmqFAwq82c

  • 🔎 YouTubeのプレイリストを検索クエリ経由で再生する
    /playlist linkin park meteora

  • 現在再生中 (/nowplaying)

  • キューシステム (/queue)

  • ループ / リピート (/loop)

  • シャッフル (/shuffle)

  • 音量制御 (/volume)

  • 歌詞 (/lyrics)

  • 一時停止 (/pause)

  • 再開 (/resume)

  • スキップ (/skip)

  • キュー内の曲番号までスキップ (/skipto)

  • キュー内の曲を移動 (/move)

  • キューから曲番号を削除 (/remove)

  • Discord APIへのpingを表示 (/ping)

  • ボットの稼働時間を表示 (/uptime)

  • ボットメッセージの削除を切り替える (/pruning)

  • ヘルプ (/help)

  • リアクション経由のメディアコントロール

最後に

Discordで楽しい音楽ライフを!!
最後までお読みいただきありがとうございました。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2