2016-07-20 10 views
0

, например: https://developer.apple.com/devcenter/download.action?path=/videos/wwdc_2010__hd/session_122__accessibility_on_iphone_os.movКак загрузить видеоролик WWDC 2010 теперь с помощью curl или wget?

, когда я вхожу

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.

ответ

0

Файл mov, который вы получаете, является только ссылочным файлом, который используется для выбора файлов для подключения к сети.

Вы можете попробовать mplayer <url> -dumpstream -dumpfile <filename>, если у вас есть mplayer.

Вы также можете открыть файл и найти имя файла в правильном реальном файле.

Также вы можете написать сценарий для анализа файла ссылки. Вот функция, я написал в Perl для разбора мов реф файла:

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; 

}

+0

спасибо очень много. Я запускаю скрипт, который вы вводите здесь. Появляется сообщение об ошибке «Невозможно найти метод объекта» получить «через пакет», любые советы? – seguedestination

+0

Вам необходимо установить LWP, попробуйте следующее на терминале 'cpan install LWP HTTP :: Request' –

 Смежные вопросы

  • Нет связанных вопросов^_^