質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Discord

Discordは、ゲーマー向けのボイスチャットアプリです。チャット・通話がブラウザ上で利用可能で、個人専用サーバーも開設できます。通話中でも音楽を流したり、PC画面を共有できるなど多機能な点が特徴です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

解決済

Discord.pyでボイスチャンネルにYoutubeの音源を流したい

Zora
Zora

総合スコア20

Discord

Discordは、ゲーマー向けのボイスチャットアプリです。チャット・通話がブラウザ上で利用可能で、個人専用サーバーも開設できます。通話中でも音楽を流したり、PC画面を共有できるなど多機能な点が特徴です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

1回答

0評価

0クリップ

216閲覧

投稿2022/05/02 11:17

前提

Discord.pyでYoutubeの音源を流すBOTを作っています。
他のコードなどはありません。

実現したいこと

DiscordのボイスチャンネルでYoutubeの音源を流す

発生している問題・エラーメッセージ

error

ERROR: ffprobe/avprobe and ffmpeg/avconv not found. Please install one. Ignoring exception in command play: Traceback (most recent call last): File "/home/runner/ZoraBOT/venv/lib/python3.8/site-packages/youtube_dl/YoutubeDL.py", line 2115, in post_process files_to_delete, info = pp.run(info) File "/home/runner/ZoraBOT/venv/lib/python3.8/site-packages/youtube_dl/postprocessor/ffmpeg.py", line 275, in run filecodec = self.get_audio_codec(path) File "/home/runner/ZoraBOT/venv/lib/python3.8/site-packages/youtube_dl/postprocessor/ffmpeg.py", line 166, in get_audio_codec raise PostProcessingError('ffprobe/avprobe and ffmpeg/avconv not found. Please install one.') youtube_dl.utils.PostProcessingError: ffprobe/avprobe and ffmpeg/avconv not found. Please install one. During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/home/runner/ZoraBOT/venv/lib/python3.8/site-packages/discord/ext/commands/core.py", line 85, in wrapped ret = await coro(*args, **kwargs) File "main.py", line 32, in play ydl.download([url]) File "/home/runner/ZoraBOT/venv/lib/python3.8/site-packages/youtube_dl/YoutubeDL.py", line 2068, in download res = self.extract_info( File "/home/runner/ZoraBOT/venv/lib/python3.8/site-packages/youtube_dl/YoutubeDL.py", line 808, in extract_info return self.__extract_info(url, ie, download, extra_info, process) File "/home/runner/ZoraBOT/venv/lib/python3.8/site-packages/youtube_dl/YoutubeDL.py", line 815, in wrapper return func(self, *args, **kwargs) File "/home/runner/ZoraBOT/venv/lib/python3.8/site-packages/youtube_dl/YoutubeDL.py", line 847, in __extract_info return self.process_ie_result(ie_result, download, extra_info) File "/home/runner/ZoraBOT/venv/lib/python3.8/site-packages/youtube_dl/YoutubeDL.py", line 881, in process_ie_result return self.process_video_result(ie_result, download=download) File "/home/runner/ZoraBOT/venv/lib/python3.8/site-packages/youtube_dl/YoutubeDL.py", line 1692, in process_video_result self.process_info(new_info) File "/home/runner/ZoraBOT/venv/lib/python3.8/site-packages/youtube_dl/YoutubeDL.py", line 2050, in process_info self.post_process(filename, info_dict) File "/home/runner/ZoraBOT/venv/lib/python3.8/site-packages/youtube_dl/YoutubeDL.py", line 2117, in post_process self.report_error(e.msg) File "/home/runner/ZoraBOT/venv/lib/python3.8/site-packages/youtube_dl/YoutubeDL.py", line 628, in report_error self.trouble(error_message, tb) File "/home/runner/ZoraBOT/venv/lib/python3.8/site-packages/youtube_dl/YoutubeDL.py", line 598, in trouble raise DownloadError(message, exc_info) youtube_dl.utils.DownloadError: ERROR: ffprobe/avprobe and ffmpeg/avconv not found. Please install one. The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/runner/ZoraBOT/venv/lib/python3.8/site-packages/discord/ext/commands/bot.py", line 939, in invoke await ctx.command.invoke(ctx) File "/home/runner/ZoraBOT/venv/lib/python3.8/site-packages/discord/ext/commands/core.py", line 863, in invoke await injected(*ctx.args, **ctx.kwargs) File "/home/runner/ZoraBOT/venv/lib/python3.8/site-packages/discord/ext/commands/core.py", line 94, in wrapped raise CommandInvokeError(exc) from exc discord.ext.commands.errors.CommandInvokeError: Command raised an exception: DownloadError: ERROR: ffprobe/avprobe and ffmpeg/avconv not found. Please install one.

該当のソースコード

py

import discord from discord.ext import commands import youtube_dl import os import ffmpeg client = commands.Bot(command_prefix="!") @client.command() async def play(ctx, url : str): song_there = os.path.isfile("song.mp3") try: if song_there: os.remove("song.mp3") except PermissionError: await ctx.send("Wait for the current playing music to end or use the 'stop' command") return voiceChannel = discord.utils.get(ctx.guild.voice_channels, name='General') await voiceChannel.connect() voice = discord.utils.get(client.voice_clients, guild=ctx.guild) ydl_opts = { 'format': 'bestaudio/best', 'postprocessors': [{ 'key': 'FFmpegExtractAudio', 'preferredcodec': 'mp3', 'preferredquality': '192', }], } with youtube_dl.YoutubeDL(ydl_opts) as ydl: ydl.download([url]) for file in os.listdir("./"): if file.endswith(".mp3"): os.rename(file, "song.mp3") voice.play(discord.FFmpegPCMAudio("song.mp3")) @client.command() async def leave(ctx): voice = discord.utils.get(client.voice_clients, guild=ctx.guild) if voice.is_connected(): await voice.disconnect() else: await ctx.send("The bot is not connected to a voice channel.") @client.command() async def pause(ctx): voice = discord.utils.get(client.voice_clients, guild=ctx.guild) if voice.is_playing(): voice.pause() else: await ctx.send("Currently no audio is playing.") @client.command() async def resume(ctx): voice = discord.utils.get(client.voice_clients, guild=ctx.guild) if voice.is_paused(): voice.resume() else: await ctx.send("The audio is not paused.") @client.command() async def stop(ctx): voice = discord.utils.get(client.voice_clients, guild=ctx.guild) voice.stop() client.run("TOKEN")

試したこと

エラーメッセージなどを調べ、その対処法を色々試した

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Discord

Discordは、ゲーマー向けのボイスチャットアプリです。チャット・通話がブラウザ上で利用可能で、個人専用サーバーも開設できます。通話中でも音楽を流したり、PC画面を共有できるなど多機能な点が特徴です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。