在 C# 代码中生成直接视频 youtube 链接(就像 VLC 一样)
Generating direct video youtube links in C# code (like VLC does)
我正在尝试创建一种方法,将通过标准的 youtube link(例如 https://youtu.be/.......)并且 return 直接播放视频 link,只是就像 VLC 一样。
在 VLC 中,这是通过 luac 或 lua 代码 (https://github.com/videolan/vlc/blob/master/share/lua/playlist/youtube.lua) 完成的也出于某种原因,VLC 只能以 640x368 分辨率播放??
我尝试查看代码本身,但我对 lua 一无所知,所以我根本不理解它,即使有注释。有没有我可以阅读的关于如何完成的资源?据我了解,lua 代码从网站本身运行一些脚本来生成这个?还有很多解扰??
现在我不反对使用 LibVLC 生成 link,但正如我上面提到的,它只适用于 640x368,我不明白为什么。如果它以可用的最佳质量工作,那么这就是我会使用的(可能具有选择分辨率的能力??)
我也不太关心 youtube 的政策,所以不要告诉我“这违反了 youtube 的服务条款,不要这样做” 这只是一个个人项目。我知道 youtube 非常反对这个,因为即使是 discord 上的 rythm bot 也不得不停止运行....
所以,简而言之,我正在寻找的是:一种直接 link 获取视频资源的方法,无论是从网站生成还是从 HTML 抓取.我知道 link 是临时的,我只需要一小段时间。
Core.Initialize();
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
我正在尝试创建一种方法,将通过标准的 youtube link(例如 https://youtu.be/.......)并且 return 直接播放视频 link,只是就像 VLC 一样。
在 VLC 中,这是通过 luac 或 lua 代码 (https://github.com/videolan/vlc/blob/master/share/lua/playlist/youtube.lua) 完成的也出于某种原因,VLC 只能以 640x368 分辨率播放??
我尝试查看代码本身,但我对 lua 一无所知,所以我根本不理解它,即使有注释。有没有我可以阅读的关于如何完成的资源?据我了解,lua 代码从网站本身运行一些脚本来生成这个?还有很多解扰??
现在我不反对使用 LibVLC 生成 link,但正如我上面提到的,它只适用于 640x368,我不明白为什么。如果它以可用的最佳质量工作,那么这就是我会使用的(可能具有选择分辨率的能力??)
我也不太关心 youtube 的政策,所以不要告诉我“这违反了 youtube 的服务条款,不要这样做” 这只是一个个人项目。我知道 youtube 非常反对这个,因为即使是 discord 上的 rythm bot 也不得不停止运行....
所以,简而言之,我正在寻找的是:一种直接 link 获取视频资源的方法,无论是从网站生成还是从 HTML 抓取.我知道 link 是临时的,我只需要一小段时间。
Core.Initialize();
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