切換
舊版
前往
大廳
主題

【Discord BOT】Windows上自架簡易點歌機器人教學

Yuzuki Yuki | 2018-03-16 04:59:24 | 巴幣 312 | 人氣 49260

【Discord BOT】Windows上自架簡易點歌機器人教學
 
一、前言
        是從Youtube抓歌來放的機器人,篇幅有點長,圖多www
採用的是https://github.com/Just-Some-Bots/MusicBot這篇的機器人,其實不會講太多複雜的設定,就依原文翻譯並佐以圖片說明,雖然不難,但是如果你對電腦基礎觀念都有問題的請趕快上一頁,這裡不適合你;如果是住外面宿舍,網路業者設有防火牆等問題我沒辦法幫你處理;如果野心很大想玩得很專業的…抱歉我是臭NOOB,如果寫的不對還請多多糾正。
        以下文章接是在64位元的Windows 10下進行,其他版本Windows應該也是一樣,不會差太多。
 


二、前置硬體準備
1. 一台能長時間開機的Windows PC
    (目前架在I7-3770上)
2.穩定的網路
 


三、軟體下載及安裝
        會用到Notepad++、Python 3.5.4、Git for Windows三款軟體,等等依序下載安裝

1. Notepad++ (文字編輯器,其他地方也很好用)
 
下載點(2018.10.16):
中間一些條款請點選同意,到此介面稍作停留,先找到Localization這項,點開後找Chinese (Traditional)安裝繁中介面,如果覺得無所謂也可以直接跳過。

 
下一步後三個選項,前兩個不必勾選,第三個是增加捷徑到桌面,要勾不勾自行決定。

 
安裝完成後直接關掉開啟的視窗即可。
 
2. Python 3.7.0 (之前建議安裝的3.5目前版本沒什麼毛病,不過建議有空還是更新到3.7保險)
 
 
點開後的頁面請注意下面兩項需要勾選
【Install launcher for all users (recommended)】
【Add Python 3.5 to PATH】
確認有打勾勾後按下有盾牌的Install Now等待安裝完畢即可

 
3. Git for Windows (之後下載及更新的工具,安裝最新版即可)
 
 
一樣請先下一部大法,點到這個頁面暫停一下,
確認勾選為【Use Git from the Windows CommandPrompt】

 
下一步不用更改,下一步到此畫面請注意一下,
確認勾選為【Checkout Windows-style, commitUnix-style endings】

 
下一步後確認勾選為【Use MinTTY (the default terminalMSYS2)】

 
之後下一步也不用更改,安裝完畢後一樣關閉視窗即可
 
 
 
四、機器人下載
在你的電腦找個好位置準備當機器人的家,
因為線上音樂的快取會下載到同一個位置,儲存空間需要足夠,
我以我的使用者文件夾為例,
找個空白的地方點右鍵,選【Git Bash here】,
此時會打開一個黑色的指令視窗,請複製括弧內的文字
【git clone https://github.com/Just-Some-Bots/MusicBot.git MusicBot -b master】,
並於指令視窗中貼上(黑視窗右鍵,選Paste),然後用力按下鍵盤上的enter鍵執行。



 
完成後,會在剛剛右鍵的位置得到一個叫”MusicBot”的資料夾機器人相關的文件都會在裡面,等等在說明怎麼設定運作,另外,黑視窗直接關閉即可。
 
 
 
五、機器人連結DISCORD帳戶、伺服器設定
首先,打開並且登入你的DISCORD程式在”使用者設定” > ”外觀” 選項底部
開啟【開發者模式】

 
開啟後,順便點發藍光的Discord API或這邊(也可從官網最下方"開發人員"下面的"應用程式"進入),會開啟網頁,在頁面點選"Create an application"
 
下一個頁面,請幫你的機器人取個名字,也可以順便加一張大頭貼,這邊設定等等會直接繼承到之後步驟,記得在彈出提示中選擇"Save Changes"
(BTW.取叫MusicBOT之類的Discord會說同名的太多不准你建立)
 
之後點選左側欄位SETTINGS下的"Bot",在頁面BUILD-A-BOT下點選【Add Bot】然後選【Yes, do it!】確認
 
接著在變大的頁面裡點選Click to Reveal Token或是直接點下方的Copy,複製下這一排大小寫英文混雜數字的亂碼,請記住有這東西,馬上就會用到
 
網頁先別關,回到剛剛下載好的機器人資料夾,打開他,裡面有一個叫”config”的資料夾,點進去可以找到一個叫【example_options.ini】的檔案,對他右鍵複製,然後貼上一個複本在旁邊,把複本名稱改成【options.ini】;之後對【options.ini】這個檔案右鍵選取”Edit with Notepad++”開啟

 
開啟後我們先找到Token =bot_token 這一項,回到剛剛網頁,把那排亂碼複製並貼在bot_token的位置;之後下面一點有一個OwnerID = auto,請打開Discord的桌面程式,在你的伺服器對話或成員隨便找一個有你的名字的地方按下右鍵,選取【複製ID】,把複製下來的東西貼在auto的位置,兩樣完成後如下方第二張圖,文字檔就可以先存檔(Ctrl+S或點選上方比較大片的單片藍色磁片,存完書籤上的紅色磁片也會變為藍色),但先別急著關,還有一些東西你說不定會用到。


 
在文字檔可以找到一個選項是CommandPrefix= ! 這個是下指令時的字首,如果驚嘆號已經有其他機器人在用可自行改成米字號或百分比等符號;
BindToChannels = 可以在後方加入文字頻道的ID(像複製擁有者ID一樣對文字頻道右鍵),讓機器人只接收那個頻道所下的指令;
AutojoinChannels = 則是在後方加入語音頻道的ID,讓機器人綁定一個指定的語音頻道,機器人開機時就會直接加入。
其他選項都有英文介紹,如果有興趣幽冥暗月大大有更詳細介紹,請移駕這裡
,本文就不多談。
 
 

六、就差最後一點了(自動撥放、邀請進入伺服器)
在開始執行程式前還可以再設定一點東西,還記得config資料夾裡有個_autoplaylist.txt嗎?你可以參考他的格式新增一個autoplaylist.txt文字檔,去做閒置時自動撥放的清單,想試試效果就直接建立複本改名稱也是可以。
 
再邀請近伺服器前,先更新youtube的下載器及機器人的相關套件,請回到上一層MusicBot資料夾,執行” update.bat”,結束後關閉指令視窗即可。
 
希望你網頁還沒關閉,在剛剛機器人網頁裡左側欄進入” OAuth2”頁面,在SCOPES下勾選”bot”,並在後面出現的下半區勾選”Administrator”後複製中間的網址,貼到瀏覽器的新分頁並前往,選擇欲加入的伺服器,確認後即完成機器人加入。
 
最後最後,在MusicBot資料夾執行” run.bat”即可運行機器人,黑色視窗請不要關。

 
 
 
七、指令、維護及更新
常用指令如下(打在文字頻道,字首請自行更換)
撥放音樂:%play https://youtu.be/OOOOOXXXXX
跳過音樂:%skip
查詢現在播放:%np
檢視播放清單:%queue
機器人重新開機:%restart
機器人關機:%shutdown
讓機器人傳回youtube清單所有歌曲連結給建立者:%pldump <URL>
 
維護主要是Youtube下載器更新速度很快,而且不會提醒,雖然不一定每次都要更新才能用,但久了用舊的下載器會出問題,請先將機器人關機(直接關掉視窗也沒差),運行”update.bat”,也會順便更新機器人程式。
 
複數機器人架設方式很簡單,先直接把MusicBot資料夾改其它名稱,然後從上面開始的下載開始重複一遍就行。
 
其他有使用上的問題請參考作者網站
 
----------------------------------------------------------------------------------------
9/06
鑒於問題裡常看到很多帶答案問問題,就不一一回覆
如果遇到我不回覆你的問題
那可以上這個網站,把錯誤報表貼上去
裡面的機器人會告訴你問題在哪裡w

10/15
有巴友反映無法撥放清單
解決方法如下((有點懷疑是作者BUG啦
config資料夾的permissions.ini開啟後
把[Default]下面"Extractors = "後面的全部刪除後儲存重開即可

1/3
因工作繁忙,關閉回覆,有問題請自行爬文。

創作回應

洨布丁
不好意思打擾一下
我設定好了 也正常啟用
但是發現 歌單替換了 但是還是在播同樣的音樂
還有指令沒辦法使用O_O
2018-11-09 19:13:34
Yuzuki Yuki
跳過指令是用投票跟比例來決定是否能跳過
options 大概在75行那邊可以改
SkipRequired = 1
SkipRatio = 0
這樣一人就能決定是否Skip掉當前歌曲
2018-11-10 00:42:01
Yuzuki Yuki
無法播YT歌單
permissions裡
把[Default]下面"Extractors = "後面的全部刪除後儲存重開即可

2018-11-10 00:43:01
啊傑
[INFO] launcher: Starting sanity checks
[INFO] launcher: Checking for Python 3.5+
[INFO] launcher: Checking console encoding
[INFO] launcher: Setting console encoding to UTF-8
[INFO] launcher: Ensuring we're in the right environment
[CRITICAL] launcher: Bot wasn't installed using Git. Reinstall using http://bit.ly/musicbotdocs.
Press enter to continue . . .

如何解決?
2018-11-30 21:58:40
Yuzuki Yuki
[INFO]啟動器:啟動完整性檢查
[INFO]啟動器:檢查Python 3.5+
[INFO]啟動器:檢查控制台編碼
[INFO]啟動器:將控制台編碼設置為UTF-8
[INFO]發射器:確保我們處於合適的環境中
[CRITICAL]啟動器:未使用Git安裝Bot。 使用bit.ly/musicbotdocs重新安裝。
按Enter繼續。。。
2018-12-01 10:00:10
X~Chi-Square
[ERROR] launcher: Error starting bot
Traceback (most recent call last):
File "run.py", line 368, in main
m = MusicBot()
File "E:\MusicBot\musicbot\bot.py", line 71, in __init__
self.config = Config(config_file)
File "E:\MusicBot\musicbot\config.py", line 83, in __init__
self.run_checks()
File "E:\MusicBot\musicbot\config.py", line 187, in run_checks
self.bound_channels = set(int(item) for item in self.bound_channels)
File "E:\MusicBot\musicbot\config.py", line 187, in <genexpr>
self.bound_channels = set(int(item) for item in self.bound_channels)
ValueError: invalid literal for int() with base 10: 'general'

[INFO] launcher: All done.
第一天有成功 地2天就登不進去了 請大大幫忙Q__Q (感謝
2018-12-12 00:52:31
X~Chi-Square
我知道哪裡錯了 感謝
2018-12-12 07:24:27
羽殤
想請問一下 如果要更改機器人的指令要去哪改
想把一些指令改短一點
2018-12-23 13:38:17

更多創作