Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对于YouTube html5视频,C#Package Tyrrz/YoutubeExplode返回错误403,但对于flash视频,则不返回错误403_C#_.net_Html_Flash_Youtube - Fatal编程技术网

对于YouTube html5视频,C#Package Tyrrz/YoutubeExplode返回错误403,但对于flash视频,则不返回错误403

对于YouTube html5视频,C#Package Tyrrz/YoutubeExplode返回错误403,但对于flash视频,则不返回错误403,c#,.net,html,flash,youtube,C#,.net,Html,Flash,Youtube,我正在尝试使用Tyrrz的软件包在.NET中提取YouTube视频。我的程序昨天运行良好,我能够下载flash和html5视频的音频和视频流。但今天,当我尝试使用该软件包提取html5视频时,它退出时出现错误响应状态代码不表示成功:403(禁止)。我用于获取视频流的代码是: var youtube = new YoutubeClient(); var video = await youtube.GetVideoInfoAsync("GemKqzILV4w"); //YouTube ID for

我正在尝试使用Tyrrz的软件包在.NET中提取YouTube视频。我的程序昨天运行良好,我能够下载flash和html5视频的音频和视频流。但今天,当我尝试使用该软件包提取html5视频时,它退出时出现错误
响应状态代码不表示成功:403(禁止)。
我用于获取视频流的代码是:

var youtube = new YoutubeClient();
var video = await youtube.GetVideoInfoAsync("GemKqzILV4w"); //YouTube ID for random video
var stream = video.MixedStreams.OrderBy(s => s.VideoQuality).Last();
await youtube.DownloadMediaStreamAsync(stream, "C:\\Videos\\vid.mp4");

我的理论是YouTube以某种方式阻止了我对html视频的请求,但我不确定如何解决这个问题。是否有某种方法可以使用包中的YoutubeClient()发送头?其他人是否有使用此软件包的经验?我已经尝试过YoutubeExtractor和libvideo以及几乎所有其他C#软件包来实现这类功能,但到目前为止,YoutubeExplode是唯一一个可以与html5视频配合使用的软件包。非常感谢您对这个问题的任何帮助或可行的解决方案。

首先,您真的应该向他们的github问题追踪者询问特定于项目的问题。我通常在同一天内回复每一个问题

第二,你说的“适用于html5视频,但不适用于flash视频”是什么意思?据我所知,Youtube不再提供flash视频。通常403错误代码意味着流的签名没有(正确)被破译。在写这篇文章时,所有的测试都通过了,我能够正确地获得视频信息,并使用演示应用程序从你文章中的视频下载流。 也就是说,Youtube提供特定于区域的响应,因此可能是由于某些原因,没有正确处理提供给您的响应。
您能否在上提出问题,以便我们讨论可能出现的问题并修复此潜在错误?

首先,您确实应该在他们的github问题跟踪程序上询问特定于项目的问题。我通常在同一天内回复每一个问题

第二,你说的“适用于html5视频,但不适用于flash视频”是什么意思?据我所知,Youtube不再提供flash视频。通常403错误代码意味着流的签名没有(正确)被破译。在写这篇文章时,所有的测试都通过了,我能够正确地获得视频信息,并使用演示应用程序从你文章中的视频下载流。 也就是说,Youtube提供特定于区域的响应,因此可能是由于某些原因,没有正确处理提供给您的响应。
您能否在上提出问题,以便我们讨论可能出现的问题并修复此潜在错误?

YoutubeExplode是否从任何网站捕获视频?如果只有Youtube,它如何区分FLV文件(Flash)和其他格式,如WebM(谷歌)和MP4(MPEG)?我的意思是它不应该给出FLV,但不应该给出MP4。此外,Youtube主要保存MP4、WebM和M4A文件,因此我不知道这些FLV文件是如何/从何处获得的。确保你问的是正确的事情有没有办法检查
(s=>s.VideoQuality).Last()的值?最好不是高清的,因为你链接的最大视频大小是360p。也许这就是为什么找不到高分辨率??如果情况变得更糟。。。只需编写自己的代码来加载视频页面的html(如
String
),然后从中提取直接链接。查找
“adaptive_fmts”
,在解析HTML实体和文本的UTF编码后,您可以从那里获得直接链接(例如,每个
%26
在最终直接链接中变成
&
,等等)。YoutubeExplode是否从任何网站捕获视频?如果只有Youtube,它如何区分FLV文件(Flash)和其他格式,如WebM(谷歌)和MP4(MPEG)?我的意思是它不应该给出FLV,但不应该给出MP4。此外,Youtube主要保存MP4、WebM和M4A文件,因此我不知道这些FLV文件是如何/从何处获得的。确保你问的是正确的事情有没有办法检查
(s=>s.VideoQuality).Last()的值?最好不是高清的,因为你链接的最大视频大小是360p。也许这就是为什么找不到高分辨率??如果情况变得更糟。。。只需编写自己的代码来加载视频页面的html(如
String
),然后从中提取直接链接。查找
“adaptive_fmts”
,在解析HTML实体和文本的UTF编码后,您可以从中获得直接链接(例如,每个
%26
在最终直接链接中变为
&
,等等)