2017-08-12 243 views
0

我在Discord.JS中创建了一个bot(它是Node.JS的一个库),我想为它添加一个音乐模块。 Discord.JS可以播放语音通道中的.wav,.mp4等格式的视频。我想为用户添加一个可能性,只需键入视频的YouTube网址即可播放它。是否有可能通过API或任何其他方式从YouTube网址获取视频网址?如何从YouTube网址直接获取视频网址?

+0

你调查了什么? –

+0

@Jeroen Heier我从@Poootaatoooo - https://github.com/fent/node-ytdl-core(ytdl是命令行,一个是脚本)找到了一位来自同一作者的库,可以用于此目的。 它可以这样使用: 'const audio_stream = ytdl(“https://www.youtube.com/watch?v=some_id”); voice_handler = voice_connection.playStream(audio_stream);' – Jqmey

+0

[使用Youtube API播放音频]的可能重复(https://stackoverflow.com/questions/36377590/using-youtube-api-to-play-just-udio ) –

回答

0

你曾经是能够得到它与youtube.com/get_video?video_id=...很容易,但是这就像5+年前,现在我觉得它使用了一些奇怪的东西流。

我不认为Youtube的官方API可以让你下载视频或获取URL。同样,除非你看到一个“下载”或类似链接由YouTube的服务为内容显示你应该看一看的YouTube TOS

您不得下载任何内容部分5B。

但无论如何,我知道的一种方法是youtube-dl,但我敢肯定它只适用于python。虽然(ex.

我也发现了一个node.js youtube下载器,ytdl。最近更新是9天前,所以它应该可以正常工作与当前系统。你应该可以使用-o filename--output filename下载它,或--print-url获得一个直接的视频网址。

0

你可以使用FFMPEG下载视频,然后播放文件

+0

示例:用户输入YouTube网址(https://www.youtube.com/watch?v=somevideo),我想从中获取视频网址(https://www.youtube.com/videos/some_video.mp4 )。 – Jqmey