Discord.py голосовой бот youtube_dl делает недействительной ошибку - PullRequest
0 голосов
/ 18 апреля 2019

Создание голосового бота с разногласиями по Python с использованием youtube_dl с использованием этого кода для команды воспроизведения:

@bot.command(pass_context=True, brief="This will play a song 'play [url]'", aliases=['pl'])
async def play(ctx, url:str):
    server = ctx.message.server
    voice_client = bot.voice_client_in(server)
    player = await voice_client.create_ytdl_player(url, after=lambda: check_queue(server.id))
    players[server.id] = player
    player.start()

После запуска команды в Discord песня будет воспроизводиться, но через некоторое время, если ссылка является YouTube.видео песня остановится, и я получаю эту ошибку:

[tls @ 000001b884817cc0] Error in the pull function.
[matroska,webm @ 000001b88417a180] Read error
[tls @ 000001b884817cc0] The specified session has been invalidated for some reason.
    Last message repeated 1 times

Я провел некоторое исследование, и я думаю, что это потому, что срок действия ссылки на YouTube истекает.Спасибо за любую помощь!

1 Ответ

0 голосов
/ 18 апреля 2019

Вы можете добавить '-reconnect 1 -reconnect_streamed 1 -reconnect_delay_max 5' как часть before_options.

@bot.command(pass_context=True, brief="This will play a song 'play [url]'", aliases=['pl'])
async def play(ctx, url:str):
    server = ctx.message.server
    voice_client = bot.voice_client_in(server)
    player = await voice_client.create_ytdl_player(url, after=lambda: check_queue(server.id), before_options='-reconnect 1 -reconnect_streamed 1 -reconnect_delay_max 5')
    players[server.id] = player
    player.start()
...