- ベストアンサー
ダウンロードしたファイルの容量が微妙に違うのですが
VB.NETに限ったことではないのかなとも思うのですが、 VB.NETのDownloadFileでYoutubeから10メガバイト位の動画ファイルを ダウンロードしてきたのですが、 同じファイルを再度ダウンロードするとファイルのサイズが 1キロバイトくらい少なかったり多かったりする場合があるのですが、 これはどんな原因が考えられるでしょうか? 動画ファイルはどちらも一見同じように再生できるのですが、 どちらが正しいのかなと思いまして、 何かお分かりになりましたら、教えて頂けると助かります。 よろしくお願い致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
#1です。 補足要求。 25MBクラスだと、再現しない状況でしょうか? (俺の検証が意味のないことであれば、10MBクラスを探して再検証してみるつもりです)
その他の回答 (1)
- himajin100000
- ベストアンサー率54% (1660/3060)
(URLは隠すが)ある動画について,試しにkissyoutube.comを利用してURLを得た後,VB.NETで作成した非常にシンプルなプログラムを用いて二回ダウンロードを行った。 尚、一回ごとに、ダウンロードされたファイルは別なフォルダに移動し、最後にサイズの比較をしたら,以下の通り,全く差は見られなかった。もちろん、この二つの動画は再生可能だった。 20MBもあったことに驚いたので 「検証に用いる動画選択を間違ったな」と後悔した。 サイズ: 26,235,541byte ディスク上: 26,238,976byte サイズ:26,235,541byte ディスク上: 26,238,976 byte Imports System Imports System.Net Public Class WebClientGet1 Shared Sub Main() Dim wc As WebClient = New WebClient() wc.DownloadFile( _ "http://****.ash.youtube.com/get_video?video_id=******", _ "C:\hoge.flv") End Sub End Class http://www.atmarkit.co.jp/fdotnet/dotnettips/302wcget/wcget.html 検証の都合上,以下のDownloadDataAsyncは用いていません。 http://dobon.net/vb/dotnet/internet/downloadfile.html
補足
詳しいご回答と検証までして頂いてありがとうございます。 容量が微妙に違うファイルですが、 特定のファイルの場合になるということはないようです。 容量は数メガバイトのものや、10メガバイト以上のものなど で発生しますので、容量もあまり関係ないようです。 一覧から連続にダウンロードするプログラムで、 同じ一覧を実行した場合に、ダウンロード済みのファイルとの 同一性をファイル名と容量で判断するようにしているのですが、 一度実行した一覧なので、全部ダウンロード済みで、 全てスキップするはずなのですが、容量が一致しないために、 いくつかダウンロードを始めてしまいます。 同一のビデオファイルであるということを調べるのに、 容量とファイル名で判断するのが一番確実かなと思ってこの方法にしてみたのですが、 (youtubeの仕様変更や偶然の一致などで2つが合致することはないと思ったので) ビデオ固有の文字列を記録しておくなどした方が良いかも知れないですね。