0

例如:https ://developer.apple.com/devcenter/download.action?path=/videos/wwdc_2010__hd/session_122__accessibility_on_iphone_os.mov

当我进入

curl https://developer.apple.com/devcenter/download.action?path=/videos/wwdc_2010__hd/session_122__accessibility_on_iphone_os.mov > ~/Desktop/122.mov

或者

wget https://developer.apple.com/devcenter/download.action?path=/videos/wwdc_2010__hd/session_122__accessibility_on_iphone_os.mov > ~/Desktop/122.mov

都失败了,只下载了一个 333KB 的文件。

4

1 回答 1

0

您获得的 mov 文件只是一个参考文件,用于为您的网络连接选择更正文件。

mplayer <url> -dumpstream -dumpfile <filename>有mplayer的可以试试。

您还可以打开文件并找到正确的真实文件的文件名。

您也可以编写一些脚本来解析参考文件。这是我在 perl 中编写的用于解析 mov ref 文件的函数:

sub parseMov
{
    $uri = $_[0];
    $result_uri = "";
    @arr_uris = ();

    my $content = get $uri;

    $content =~ "/[^[:print:]]//g";

    @arr_movs = split("rmdr", $content);

    foreach (@arr_movs)
    {   
       @arr_parts = split("url", $_);
       my $file = $arr_parts[-1];

       if (index($file, ".mov") != -1 || index($file, ".3gp") != -1 || index($file, ".m4v") != -1) 
       {
           #remove first char
           $file = trim($file);
           $file = substr($file,4);
           push( @arr_uris, $file);
       }
   }

   #determine basePath
   my @pathComponents = split("/", $uri);
   $basePath = $uri;
   $basePath =~ s/$pathComponents[-1]//;

   my $biggestSize = 0;

   #get biggest file
   foreach (@arr_uris)
   {
       $uri_item = "$basePath$_";

       my $size = getFilesize($uri_item);

       if ($size > $biggestSize)
       {
          $finalURL = $uri_item;
          $biggestSize = $size;
       }

   }

   #remove %00 and %10 chars
   $finalURL =~ s/\x10//;
   $finalURL =~ s/\x00*//g;

   return $finalURL;

}

于 2016-07-20T11:34:06.843 回答