如何从c#中的embed url获取视频文件流

时间:2016-07-06 10:42:43

标签: c# win-universal-app httpclient embed

我尝试了以下代码,但视频没有播放。

var httpClient = new HttpClient();
var data = await httpClient.GetByteArrayAsync(new Uri("http://www.youtube.com/embed/iRFE-sKOp4I"));
var file = await KnownFolders.MusicLibrary.CreateFileAsync("myfile.mp4", CreationCollisionOption.ReplaceExisting);
var targetStream = await file.OpenAsync(FileAccessMode.ReadWrite);
await targetStream.AsStreamForWrite().WriteAsync(data, 0, data.Length);
await targetStream.FlushAsync();
targetStream.Dispose();

任何人请帮我解决如何保存下载的问题.thankyou

1 个答案:

答案 0 :(得分:1)

我同意@x ...,如果您想从Youtube下载视频,则需要安装YoutubeExtractor

  

但是使用相同的代码我无法下载不同的网站视频。

我使用视频下载uri" http://video.ch9.ms/ch9/9b56/4f2d0b4d-ea37-4525-8833-128ad6e69b56/uwp01SeriesIntro.mp4"测试了您的代码,它运行正常。

  

其实我想下载openload.co/embed/EHmDelqNx94视频有没有可能..

我刚看了一下这个视频,我发现这是一个名为openload的网页,这个网络服务免费无限制地共享,但您需要使用它的develop Api。要下载,您可以参考下载APIs here

  

点击播放按钮后出现视频网址,有没有办法通过httpclient或任何其他客户端处理点击事件

从本网站的官方文件中,我发现了这个:

  

使用下载票获取下载链接。

您可以参考Download Link

<强>更新

  

我试过openload api,但是当获取下载链接时显示验证码错误,你可以帮我这个吗

我刚刚复制了您的问题,这是因为您的下载源不是公共来源,需要进行身份验证。当您获得Download Ticket下载时,虽然Api表示不需要API-LoginAPI-Key,但您需要使用完整路径https://api.openload.co/1/file/dlticket?file={file}&login={login}&key={key}来获取经过身份验证的票证,然后您可以使用此票证获取下载URL。