dポイントプレゼントキャンペーン実施中!

VB.NETに限ったことではないのかなとも思うのですが、
VB.NETのDownloadFileでYoutubeから10メガバイト位の動画ファイルを
ダウンロードしてきたのですが、
同じファイルを再度ダウンロードするとファイルのサイズが
1キロバイトくらい少なかったり多かったりする場合があるのですが、
これはどんな原因が考えられるでしょうか?
動画ファイルはどちらも一見同じように再生できるのですが、
どちらが正しいのかなと思いまして、
何かお分かりになりましたら、教えて頂けると助かります。
よろしくお願い致します。

A 回答 (2件)

#1です。


補足要求。

25MBクラスだと、再現しない状況でしょうか?
(俺の検証が意味のないことであれば、10MBクラスを探して再検証してみるつもりです)

この回答への補足

詳しいご回答と検証までして頂いてありがとうございます。
容量が微妙に違うファイルですが、
特定のファイルの場合になるということはないようです。
容量は数メガバイトのものや、10メガバイト以上のものなど
で発生しますので、容量もあまり関係ないようです。
一覧から連続にダウンロードするプログラムで、
同じ一覧を実行した場合に、ダウンロード済みのファイルとの
同一性をファイル名と容量で判断するようにしているのですが、
一度実行した一覧なので、全部ダウンロード済みで、
全てスキップするはずなのですが、容量が一致しないために、
いくつかダウンロードを始めてしまいます。

同一のビデオファイルであるということを調べるのに、
容量とファイル名で判断するのが一番確実かなと思ってこの方法にしてみたのですが、
(youtubeの仕様変更や偶然の一致などで2つが合致することはないと思ったので)
ビデオ固有の文字列を記録しておくなどした方が良いかも知れないですね。

補足日時:2007/06/21 21:19
    • good
    • 0

(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/302 …
検証の都合上,以下のDownloadDataAsyncは用いていません。
http://dobon.net/vb/dotnet/internet/downloadfile …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!