ydl erroring on download only getting partial download and an error on ydl.download([url])

Viewed 25

building an audio stream bot command for my custom discord bot but it keep throwing errors on ydl.download([url]) and only fetches a partial download assuming it disconnects from server before finishing download i'm not sure how to fix this error or if its just a syntax thing

import discord
import aiohttp
import random
import youtube_dl
import os
from discord.ext import commands

@bot.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 current audion to finish or use the 'stop' command")
        return

    voiceChannel = discord.utils.get(ctx.guild.voice_channels, name='moosic')
    voice = discord.utils.get(bot.voice_clients, guild=ctx.guild)
    if voice is None or not voice.is_connected():
        await voiceChannel.connect()
    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"))
0 Answers
Related