1. Trouble_SUM

    Posted

    Trouble_SUM
Changes in title
+【Linux】 Discord Musicbotの導入
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,230 @@
+Discordのボイスチャンネルに任意の音楽を流せるMusicbotなるものを教えてもらったので導入してみたいと思います。
+
+とはいえ、自分がプログラムを起動してる間(つまりPCをつけっぱなしにしてる間)しかオンラインになっていないのは嫌なので、ちょっと前に契約した[Time4VPS](https://www.time4vps.eu/)のVPSにぶち込んで遊んでみようと思います。
+
+月額250円くらいでした。一年契約ならもうちょっと安い
+<font color="lightgray">サーバがリトアニアにあるらしく、めちゃめちゃ速度が遅いのであまりオススメはしません。</font>
+
+>[Discord 音楽botの作り方 SexualRhinoceros/MusicBot](http://takeshi.kill.jp/post-2254/)
+
+こちらの記事を参考にさせていただきました。
+
+
+#まずはLinuxのバージョンを確認
+僕が使っているVPSのOSは"CentOS 7.2"です
+
+バージョンの確認方法は
+
+```.sh
+$ cat /etc/redhat-release
+```
+
+#Musicbotを落とそう
+[開発者のGithub](https://github.com/Just-Some-Bots/MusicBot)からCloneします。
+
+
+まずは必要なパッケージをインストール
+
+[開発者のwiki](https://github.com/Just-Some-Bots/MusicBot/wiki)にはCentOS用のチュートリアルがなかったのでUbuntuの記事を参考に色々入れてみることにします。
+
+```.sh
+$ sudo yum -y install git gcc gcc-c++ kernel-devel libffi-devel
+```
+
+さらに
+>CentOS7にyumでffmpegをインストール
+http://vild.hatenablog.com/entry/2015/09/29/125940
+
+を参考にffmpegをインストールしました
+
+あとは適当なユーザとディレクトリを作ってそこに落としてあげましょう
+
+```.sh
+
+$ sudo useradd -m musicbot
+$ sudo passwd musicbot
+#ここでパスワード入力を促されるので適当に決める
+
+$ su - musicbot
+#パスワードを入力する
+
+$ mkdir github
+$ cd github
+$ git clone https://github.com/Just-Some-Bots/MusicBot
+```
+
+でとりあえずOK
+
+それからMusicbotにはPython3.5以降が必要です。<font color="lightgray">(CentOS7のデフォルトは2.x系列)</font>
+>CentOS7にpython3系のインストール
+http://daichan.club/python/916
+
+こちらの記事がわかりやすいのでペペっといれておきましょう。
+
+#botを作成しよう
+Webブラウザを開いて[開発者ページ](https://discordapp.com/developers/applications/me)に飛び
+![](https://i.gyazo.com/8d29c2140a409ec32277fa0d0329c97d.png)
+New Appをクリック
+
+![](https://i.gyazo.com/40d77d8f9b97470ef85dc4ca81972754.png)
+こんな感じで適当に設定しましょう
+終わったらCreate Appをクリック
+
+![](https://i.gyazo.com/75087f0ceb1b5970478295ad45ea1f96.png)
+まずは青で囲ったところからCreate a Bot Userをクリック
+追加する?と聞かれるのでYes,do it!と答えてあげましょう
+
+![](https://i.gyazo.com/ebeb02ace13f48c5c98d86c91846bef9.png)
+終わったらオレンジで囲ったTokenのclick to revealをクリックすると出てくる文字列をコピーしておきましょう
+<font color="red">(上にあるClient Secretと間違えないように!)</font>
+
+#ここからがちょっとめんどくさい
+ターミナルに戻って<font color="lightgray">(殆どの人はmusicbotユーザでgithubディレクトリだよね?)</font>
+
+```.sh
+$ vim ./MusicBot/config/example_options.ini
+```
+
+で編集画面に入ります
+
+>[Credentials]
+; Put your token here. Not "secret". The secret is not the token.
+Token = bot_token
+
+という部分があるのでbot_tokenの部分をオレンジで囲った部分からコピーした文字列に置き換えましょう。
+
+```
+/Token
+2wdw
+```
+でbot_tokenを削除できます
+(僕はTeratermを使ってssh接続していたのでaで挿入モードに入ってマウス左クリックでペーストしちゃいました)
+
+次にDiscordを開いて
+ユーザ設定->テーマと進み開発者モードにチェックを入れます。
+![](https://i.gyazo.com/eaed78da199cd6f6c4a03fae294105ce.png)
+
+完了を押してテキストチャンネルなどに表示されている自分のアイコンを右クリックすると"IDをコピー"ができます。
+![](https://i.gyazo.com/1e515eda407c970820329920238e161b.png)
+
+コピーしたIDを先程開いたexample_options.iniの
+>[Permissions]
+; This number should be your id. It gives you full permissions. You do not put the bot's id here. That's silly.
+; If you don't know how to get this, scroll up a bit and read the part that says "HOW TO GET VARIOUS IDS"
+; If you can't do that for some reason, join the help server (invite in the readme) and type this in chat: !id
+; If you still don't understand, watch this https://streamable.com/4w8e and may your respective deity have mercy on your soul.
+; I don't want any more "how do I get the OwnerID" questions.
+OwnerID = 000000000000000000
+
+で000000000000000000と表示されている部分と置き換えます
+
+終わったら
+
+```
+:wq
+```
+
+で保存して終了
+
+
+ブラウザで開いていた開発者ページに戻り、赤で塗りつぶしてある文字列を選択してコピーします。
+![](https://i.gyazo.com/ba5a1cbde862c7e85b828ee4bbaffc35.png)
+
+Webブラウザで新しいタブを開き
+>https\://discordapp.com/oauth2/authorize?&client_id=<font color="red">000000000000000000</font>&scope=bot&permissions=0
+
+のようにコピーしたClientIDを加えたURLのページを開くと、
+![](https://i.gyazo.com/93697dcc235e74901e2290f053ec6c9a.png)
+このようなページが出てくるので、任意のサーバーを選択し"Botを追加します"にチェックを入れて認証をクリック
+
+![](https://i.gyazo.com/6a4e691892ede3b466f84061c45bc749.png)
+Discordでサーバーを確認するとちゃんと追加されていました。
+
+#botを起動しよう
+ターミナルに戻ります。<font color="lightgray">(musicbotユーザの状態として話を進めます。)</font>
+
+Musicbotディレクトリ内にあるrunbot.pyを起動すると動いてくれるみたいです。
+
+```.sh
+$ python --version
+```
+でバージョンが3.5.1以上になっていることを確認したら
+
+```.sh
+$ cd ~/github/Musicbot
+$ python run.py
+```
+
+ダーッと文字列が流れたあとに
+>Ok lets hope it worked
+
+となると思います。やったね
+さあ実行だ!と思って
+
+```.sh
+$ python run.py
+```
+
+と打ったら怒られました。
+
+>Connecting...
+An error has occured:
+ Problem: Bot cannot login, bad credentials.
+ Solution: Fix your Email or Password or Token in the options file. Remember that each field should be on their own line.
+
+だそうです。
+そういえば編集してたのがexample_options.iniってことはoptions.iniじゃないとダメなんじゃないのか~~~~~?????
+
+```.sh
+$ cd config
+#MusicBot/configディレクトリに移動する
+
+$ mv options.ini options_backup0104.ini
+#一応バックアップを取る
+
+$ cp example_options.ini options.ini
+
+$ cd ..
+#MusicBotディレクトリに戻る
+```
+
+で、もっかい
+
+```.sh
+python run.py
+```
+
+![](https://i.gyazo.com/0c19bbac5ac14c7741b096aa950ac9cd.png)
+
+オ!今度はうまくいきました
+
+とはいえターミナルをずっと占拠されるのも困るのでscreenコマンドで実行してもらいましょう
+
+実行中のMusicbotの終わらせ方がわかんなかったのでCtrl-Cでコマンドを終了
+
+```.sh
+$ sudo yum install -y screen
+$ screen -S musicbot
+$ python run.py
+```
+で実行したらCtrl-A DでScreenを抜けます。
+
+Musicbotのスクリーンに戻るには
+
+```.sh
+$ screen -r musicbot
+```
+
+というわけで終了!
+サーバーを再起動したときにpython3.5でrun.pyを実行するようなシェルスクリプトを書いておけばいい感じになると思います。
+
+Musicbotのいるサーバーで
+
+```
+!summon
+```
+とメッセージを送ると流してくれます!
+
+#ちなみに結果は
+そこそこいい感じで流してくれました!と言いたいところですがときどき音声が途切れます。
+こればっかりは通信の問題なのでちゃんと日本のVPSを借りて使いましょうネ。