Download do Wget 403 Forbidden ou 503 serviço unavaible

2

Antes de tudo, preciso dizer que há muitas dúvidas sobre esse erro, mas quase tentei tudo, mas ainda sim.

url="https://cdn59.my.mail.ru/hv/55045204.mp4?sign=2cca46c09181dc952b3140f2ea3852d90cc2a19a&slave[]=s%3Ahttp%3A%2F%2F127.0.0.1%3A5010%2F55045204- hv.mp4 & p = f & expire_at = 1438858800 & tátil = 1436155554 & região = 76 "

Quando eu uso wget $url , isso me dá o serviço de erro 503 Unavaible.

Então adicionei meu agente de usuário como wget -U 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.76 Safari/537.36' $url

AGORA. Isso me dá 403 Erro Proibido. Eu também tentei header or --no-check-certificate e suas combinações, mas ainda tenho alguns erros irritantes. (a URL tem alguns metacharecters, então usei aspas simples ou duble).

É interessante que eu possa fazer o download de todos os navegadores, como o Firefox, o Chrome, etc.

O que pode haver problema com meu link?

NOTA: Eu sempre atualizo o URL via o recebimento do arquivo json do wget ou do navegador. Este é o referer json url videoapi.my.mail.ru/videos/mail/pasha.44444/video/_myvideo/397.json

    
por makgun 06.08.2015 / 10:21

2 respostas

1

Você precisa fazer o login no serviço e as informações da sessão provavelmente são armazenadas em um cookie. Quando você usa o wget, você não está fornecendo (ou adquirindo e usando) o cookie necessário para ter as informações da sessão.

Algo ao longo das linhas da resposta no stackoverflow pode ajudar.

    
por 06.08.2015 / 10:29
0

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.

    
por 18.08.2015 / 23:10

Tags