Eu quero dizer que finalmente consegui baixá-lo do wget apesar do cabeçalho Access-Control-Allow-Origin.
#!/bin/bash
link="http://api.video.mail.ru/videos/mail/carpath1a/_myvideo/289.json"
name="BlaBlaBla"
mr480=$(printf "%s\n" "tmpvar=\$(wget -qO- --save-cookies=cookies \"\$link\" | perl -ne 's:.*\"key\"\:\"(.*?)\".*\"(http.*?)\".*:\\t\: && print') ; linktemp=\$(echo \"\$tmpvar\"|grep 480p|awk '{print \}') ; wget --retry-connrefused --waitretry=1 --read-timeout=20 --timeout=15 -t 10 --continue -nv --show-progress --load-cookies=cookies \"\$linktemp\" -O \$name-480 ; while [[ \$? = 8 ]];do wget --retry-connrefused --waitretry=1 --read-timeout=20 --timeout=15 -t 10 --continue -nv --show-progress --load-cookies=cookies \"\$linktemp\" -O \$name-480 ;done")
eval "$mr480"
rm cookies
Após 2-10 vezes repetir via loop, inicia o download. Eu não conseguia entender por que ele envia 503 ou 403, mas eu sei que esses dois erros de tipo retornam com o código 8
, então usei while loop. OBSERVAÇÃO: não use &&
em vez de ;
, porque se você usar &&
, ele não será executado em loop, por isso falhará e terminará o script.