2

合格すると

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);
        }

コメントにより編集
指定されたURLからビデオストリームを抽出するためのユニバーサルアルゴリズムはありますか?Youtubeはほんの一例です。

4

2 に答える 2

2

コメントで述べたように、WEBPAGE(URLから取得するもの)は、ある種のストリーミングによってアクセスされるメディア用のPLAYERコンポーネントを運ぶものです。

したがって、最初にWebページを解析して、ストリームURLがどこかにあるかどうかを確認する必要があります。そうでない場合は、ビデオのロード/再生を試みるプロセスから最近開いた接続を判別し、その接続からデータをキャプチャするために、ある種のネットワークパケットキャプチャが必要になります。

トリッキーなもの。

YouTubeの場合:

YouTubeからビデオをダウンロードする

于 2012-07-28T23:32:49.447 に答える
2

コードはおそらく適切ですが、使用しているURLはWebページ用であり、ビデオファイル自体ではありません。

レンダリングされたhtmlソースを確認します(ページを右クリックして[ソースの表示])。どこかにURLがあります。

また、YouTubeリンクからHTMLをトラバースして、コード内のソースURLを見つけることもできます。

于 2012-07-28T22:29:20.557 に答える