用 C# 代码生成直接的 YouTube 视频链接(就像 VLC 一样)

我正在尝试创建一个方法,会传入一个标准的 YouTube 链接(例如 https://youtu.be/.......),并返回直接的视频播放链接,就像 VLC 一样。

在 VLC 中,这是通过 luac 或 lua 代码来实现的(https://github.com/videolan/vlc/blob/master/share/lua/playlist/youtube.lua)。还有一个原因是 VLC 只以 640x368 分辨率播放??

我尝试查看代码本身,但我对 lua 一无所知,所以我完全不理解它,甚至连注释都看不懂。是否有一个资源可以告诉我这是如何完成的?据我了解,lua 代码运行一些来自网站本身的脚本来生成这个链接?还有很多解密?

现在,我不反对使用 LibVLC 生成链接,但正如我上面提到的,它只能以 640x368 的分辨率工作,这让我不明白为什么。如果它可以使用最佳可用质量工作,那就是我将使用的(可能是可以选择分辨率的)。

此外,我不关心 YouTube 对此的政策,所以不要告诉我“这违反了 YouTube 的 TOS,请不要这样做”,这只是一个个人项目。我知道 YouTube 非常反对这样做,因为甚至 Discord 上的 Rythm 机器人也被迫停止运行....

因此,简而言之,我想要的是:找到获取视频资源直接链接的方法,无论是通过从网站生成还是通过从 HTML 中提取。我知道链接将是临时的,我只需要它短暂使用即可。

原文链接 https://stackoverflow.com/questions/70631731

点赞
stackoverflow用户4064749
stackoverflow用户4064749

``` Core.Initialize();

使用 LibVLC 实例化:

using(var libVLC = new LibVLC()) { var media = new Media(libVLC, "https://www.youtube.com/watch?v=dQw4w9WgXcQ", FromType.FromLocation); await media.Parse(MediaParseOptions.ParseNetwork); using (var mp = new MediaPlayer(media.SubItems.First())) { var r = mp.Play(); Console.ReadKey(); } }

media.SubItems.First()中将包含你所需的内容。

至于分辨率,我认为 LibVLC 无法做到。

但如果你不需要播放视频而只是需要视频链接,我建议看看 https://github.com/Tyrrrz/YoutubeExplode

2022-01-12 05:47:53