2017-08-19 37 views
0

所以,我的问题是如何将变量url设置为某人在yt后键入的内容?例如,!YT [youtbube链接]使URL = [Youtube链接]如何让我的不和谐机器人播放来自YouTube的音频

这是我此刻的代码和任何帮助表示赞赏,感谢:)

@client.command(pass_context=True) 
async def yt(ctx): 
    url = 'https://www.youtube.com/watch?v=rPOUewuNKFE' 

    author = ctx.message.author 
    voice_channel = author.voice_channel 
    vc = await client.join_voice_channel(voice_channel) 

    player = await vc.create_ytdl_player(url) 
    player.start() 
+0

什么是不工作在此代码(固定缩进后)? –

+0

代码没有任何问题,我只是不知道如何让它播放某人放置的链接!yt,我只是把我的代码放在这样人们可以看到我的东西。 – OhFlummery

回答

0

我假设你已经知道这一点,但有些机器人可以为你做到这一点。如果你不知道,你可以给它一个来自YouTube的链接,并确保bot与你在语音频道中。我不确定你是否试图让它在多个语音频道中播放不同的链接。我非常怀疑机器人可以通过多个语音通道播放不同的歌曲,因为它必须与您在语音通道中播放。

+0

是啊,我知道有些机器人可以做到这一点,但我想让我的机器人做到这一点:P – OhFlummery

+0

这很有道理。我想过试图制作我自己的机器人。我只在周末打球,所以这对我没有好处。 – Daniel

0
@client.command(pass_context=True) 
    async def yt(ctx): 
     url = ctx.message.content 
     url = url.strip('!yt ') 

     author = ctx.message.author 
     voice_channel = author.voice_channel 
     vc = await client.join_voice_channel(voice_channel) 

     player = await vc.create_ytdl_player(url) 
     player.start() 
1

其实很简单。只需将其添加为该函数的参数即可。

@client.command(pass_context=True) 
async def yt(ctx, url): 

    author = ctx.message.author 
    voice_channel = author.voice_channel 
    vc = await client.join_voice_channel(voice_channel) 

    player = await vc.create_ytdl_player(url) 
    player.start() 

如果你愿意,你也可以指定使用标准功能注释(async def yt(ctx, url: str):)的参数的类型,但由于默认的是将它们传递作为字符串反正它不会是非常有用的。

+0

或者,您可以使用'yt(ctx,*,url)'而不是'yt(ctx,url)',这样它就会将其余的消息接收到url中。 – squaswin

+0

格式良好的Youtube网址从来没有空格,然而,这个程序不能播放多个由空格隔开的网址,所以我看不到需要这样做。 – randomdude999

相关问题