【问题标题】:Capturing the web response stream捕获 Web 响应流
【发布时间】:2012-07-27 03:31:27
【问题描述】:

当我通过时

http://www.youtube.com/watch?v=Zi8vJ_lMxQI

作为参数,下载的是 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);
        }

因 cmets 而编辑
是否有从指定 URL 提取视频流的通用算法? Youtube 只是一个例子。

【问题讨论】:

  • 您正在使用的网址 网址到 html 页面。当然会被下载。
  • 您的错误只是认为资源是视频文件。如果你浏览它,你最终会看到一个网页,而不仅仅是一个视频。
  • 我认为“如何获取 YouTube 视频的 url”这个问题与编程无关。

标签: c# url stream


【解决方案1】:

正如我在评论中所说:WEBPAGE(您从您的 URL 获得的内容)是带有 PLAYER 组件的媒体,该媒体将通过某种流媒体访问该组件。

首先,您必须解析网页以查找您的流 URL 是否存在于某处。如果不是,则需要某种网络数据包捕获来确定最近从尝试加载/播放视频的进程打开了哪个连接,然后从该连接捕获数据。

棘手的东西。

对于 YouTube:

Downloading video from YouTube

【讨论】:

    【解决方案2】:

    您的代码可能不错,但您使用的 url 用于网页而不是视频文件本身。

    检查呈现的 html 源代码(右键单击页面和“查看源代码”)。你应该在那里找到网址。

    您还可以从您的 youtube-link 遍历 html 以在您的代码中找到源 url。

    【讨论】:

    • 输入“s.ytimg.com/yt/swfbin/watch_as3-vflCKdyvw.swf”后有一个空的视频帧。
    • 这似乎是评论,而不是答案。
    • @kowalt 也许这就是链接:<link itemprop="embedURL" href="http://www.youtube.com/v/Zi8vJ_lMxQI?version=3&autohide=1"> ?
    • @L.B 当然这是一个答案。我不只是评论他的问题,而是试图给出答案(告诉他该怎么做)。这怎么可能不是答案?即使是错的,它仍然是一个答案。
    • @L.B 我想和你争论真的不知道。如果你不觉得它有用,对你不利。让我们希望有些人确实觉得它有用。
    猜你喜欢
    • 1970-01-01
    • 2018-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-30
    相关资源
    最近更新 更多