2017-08-12 245 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