当我通过
作为参数,下载 HTML 代码而不是视频。
public void StreamDownload(Uri currentUrl)
{
int dataLength;
int bytesRead;
WebRequest req = WebRequest.Create(currentUrl);
WebResponse response = req.GetResponse();
string oFileName = System.IO.Path.GetFileName(URLBox.Text);
oFileName = AdditionalFunctions.CorrectFname(oFileName); //this function replaces forbidden characters with '♥'.
Stream dataStream = response.GetResponseStream();
byte [] buffer = new byte[1024];
FileStream oFile = new FileStream(oFileName,FileMode.Append);
dataLength = (int)response.ContentLength;
do
{
bytesRead = dataStream.Read(buffer, 0, buffer.Length);
oFile.Write(buffer, 0, bytesRead);
}
while (bytesRead != 0);
}
根据评论进行编辑
是否存在从指定 URL 中提取视频流的通用算法? YouTube 只是一个例子。
最佳答案
正如我在评论中所说:网页(您从 URL 中获得的内容)是带有媒体播放器组件的东西,可以通过某种流式传输方式从其访问该媒体。
因此,首先,您必须解析网页以查找您的流 URL 是否存在。如果不是,则需要某种网络数据包捕获来确定尝试加载/播放视频的进程最近打开了哪个连接,然后从该连接捕获数据。
棘手的事情。
对于 YouTube:
关于c# - 捕获网络响应流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11704996/