2016-07-20 5 views
0

par exemple: https://developer.apple.com/devcenter/download.action?path=/videos/wwdc_2010__hd/session_122__accessibility_on_iphone_os.movcomment télécharger la vidéo WWDC 2010 maintenant par curl ou wget?

quand je rentre

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

ou

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

deux échoué, que télécharger un fichier 333KB.

Répondre

0

Le fichier mov que vous obtenez est seulement un fichier de référence qui est utilisé pour sélectionner de corriger les fichiers pour votre connexion réseau.

Vous pouvez essayer mplayer <url> -dumpstream -dumpfile <filename> si vous avez un mplayer.

Vous pouvez également ouvrir le fichier et trouver le nom de fichier dans le fichier réel correct.

Vous pouvez également écrire un script pour analyser le fichier de référence. Voici une fonction que j'ai écrit en Perl pour analyser un fichier ref mov:

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

merci beaucoup. Je cours le script que vous tapez ici. Un message d'erreur est sorti "Impossible de trouver la méthode de l'objet" obtenir "via package", un conseil? – seguedestination

+0

Vous devez installer LWP essayez ceci sur un terminal 'cpan install LWP HTTP :: Request' –