如何直接从 youtube url 获取视频 url?

How to get direct url of video from youtube url?

我正在 Discord.JS 中创建一个机器人(它是 Node.JS 的一个库),我想向它添加一个音乐模块。 Discord.JS可以在语音频道播放.wav、.mp4等格式的视频。我想增加一种可能性,让用户只需输入视频的 YouTube url 即可播放。是否有可能通过 API 或任何其他方式从 YouTube url 获取视频的 url?

您可以使用 FFMPEG 下载视频然后播放该文件

你过去可以很容易地用 youtube.com/get_video?video_id=... 得到它,但那是 5 多年前的事了,现在我认为它使用了一些奇怪的流东西。

我认为 Youtube 的官方 API 不允许您下载视频或获得 URL。此外,您或许应该看看 YouTube TOS

的第 5B 节

You shall not download any Content unless you see a “download” or similar link displayed by YouTube on the Service for that Content.

但无论如何,我知道的一种方法是 youtube-dl, but I'm pretty sure it's only for python. There seem to be a few node wrappers online though (ex.)

我还找到了一个 node.js youtube 下载器,ytdl。上次更新是 9 天前,所以它应该可以在当前系统上正常工作。您应该可以使用 -o filename--output filename 下载它,或 --print-url 获取直接视频 url.