0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Discord.pyでBOTを作ってて行き詰まったところ

Last updated at Posted at 2026-01-13

Gemini3Proが出てAIエージェントの新時代が到来したと思う今日この頃
新しくDiscordでAIエージェントBOTを作ろうかなと思った時に行き詰まったところがあったので備忘録的にまとめます
これから僕と同じようにDiscordで自作のBOTを作ろうと考えてる人の参考になれば幸いです

ボイスチャンネルからBOTが勝手に退出してしまう

結論から言うとDiscord.pyの公式リポジトリを見に行けばリファレンスは載っていました

ちゃんと呼んでる人はとても偉いです

僕は読まずに過去の知見で手探りに実装した悪い子です

とりあえず...

Botに@メンションしたら、メンションしたユーザーの居るボイスチャンネルに接続するような実装をしていました

on_message.py
async def on_message(self, message: discord.Message):
# ボットがメンションされたかチェック
    if self.bot.user.mentioned_in(message):

# ユーザーがVCにいる場合
        if user_in_voice:
            await asyncio.sleep(2)
            if message.guild.voice_client:
                if message.guild.voice_client.channel != message.author.voice.channel:
                    await message.guild.voice_client.move_to(message.author.voice.channel)
            else:
                await message.author.voice.channel.connect()
            return

よし、これで呼んだらボイスチャンネルに来てくれるかな〜とワクワクでメンションしてみたところ...

キタ━━━━(゚∀゚)━━━━!!
スクリーンショット 2026-01-14 0.44.34.png

と思ったらしばらくすると勝手に退出してしまいました涙
BOTのコンソールを見てみると次のようなログが連続して流れていました

Unclosed connection
client_connection: Connection<ConnectionKey(host= ...

なんだこれ昔作った時はこんなことなかったぞ🤔
と思ってログの内容からライブラリの互換性やプロキシ設定、BOTのパーミッションの設定ミスかなといろいろ設定し直してみたのですが治らず...

と調べていると過去おんなじエラーに遭遇しているユーザーを発見👀

どうやらボイスチャンネルへの接続が不安定になる不具合があったらしく、Discord.pyにissueが上がっていました
ふむふむ...と読み進めつつ公式リポジトリを見に行ってみるとREADMEに次のような記載がありました
スクリーンショット 2026-01-14 0.55.04.png

ボイスチャンネルを利用するためにdiscord.py[voice]というのを入れなければいけなかったみたいです!
PyNaClのインストールも一緒にしました👉

$ pip i -U "discord.py[voice]"
$ pip i -U pynacl

両方ともインストールしてからBOTを再起動させたら無事解決✨

あとがき

テキストチャンネルのみで運用していると気づきにくいところなので不具合に気付くのが遅れてしまいました
幸い追加でインストールするだけで問題が解決したのでよかったです
皆さんの助けになりますよーに

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?