Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
<?php
ini_set( 'display_errors', '1' );
function get_megaupload_premium_link( $megaupload_link, $cookie = 'cookie da sua conta premium' ) {
$ch = curl_init();
curl_setopt( $ch, CURLOPT_URL, $megaupload_link );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT'] );
curl_setopt( $ch, CURLOPT_COOKIE, 'user=' . $cookie );
$dom = new DOMDocument;
@$dom->loadHTML( curl_exec( $ch ) );
$xpath = new DOMXPath( $dom );
return $xpath->query( "//div[@class='down_ad_bg1']//div[@class='down_ad_pad1']//a[@class='down_ad_butt1']" )->item(0)->getAttribute( 'href' );
}
echo get_megaupload_premium_link( 'http://www.megaupload.com/?d=6WNZOP70', 'cookie da sua conta premium' );
São dois parâmetros básicos. O 1º é o endereço do arquivo do megaupload, o segundo o valor do cookie "user" criado pelo megaupload.com.
Abraços!
PS: O segundo parâmetro é opcional, uma vez que você define ele diretamente onde a função é criada, não precisa colocar ao usar a função.
Ele obtem o endereço premium de download do megaupload, a partir do link normal (megaupload.com/?d=xxxxx). O pessoal costuma utilizar isso para gerar links premium sem precisar passar o login e senha da conta para alguem.
Atualização! Versão 0.2
Changelog:
- Adição de uma documentação bem básica.
<?php
/**
* Obtém a URI de download direto e premium do megaupload,
* a partir do endereço normal de um arquivo.
*
* @author André D. Molin <andre@admolin.com - @andredal>
* @version 0.2
* @link http-~~-//admolin.com/
*
* @param string $megaupload_link A URL normal do megaupload.com.
* @param string $pass Caso o arquivo tenha senha, informe-a aqui ou passe o valor 'null' caso não.
* @param string $cookie O valor do cookie com índice 'user' criado pelo megaupload.com.
* @return string A URI de download direto e premium.
*/
function get_megaupload_premium_link( $megaupload_link, $pass = null, $cookie = 'cookie da sua conta premium' ) {
if ( parse_url( $megaupload_link, PHP_URL_HOST ) != 'www.megaupload.com' ) {
return 'Você deve inserir uma URL do megaupload.com.';
}
$ch = curl_init();
curl_setopt( $ch, CURLOPT_URL, $megaupload_link );
curl_setopt( $ch, CURLOPT_HEADER, false );
curl_setopt( $ch, CURLOPT_AUTOREFERER, true );
curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, true );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT'] );
curl_setopt( $ch, CURLOPT_COOKIE, 'user=' . $cookie );
if ( !is_null( $pass ) ) {
curl_setopt( $ch, CURLOPT_POST, true );
curl_setopt( $ch, CURLOPT_POSTFIELDS, 'filepassword=' . $pass );
}
$dom = new DOMDocument;
@$dom->loadHTML( curl_exec( $ch ) );
$xpath = new DOMXPath( $dom );
$query = $xpath->query( "//div[@class='down_ad_bg1']//div[@class='down_ad_pad1']//a[@class='down_ad_butt1']" )->item( 0 );
return is_object( $query ) ? $query->getAttribute( 'href' ) : 'Não foi possível encontrar o link premium :(.';
}
Exemplo de uso:
echo get_megaupload_premium_link( 'http-~~-//www.megaupload.com/?d=XXXXXXXX', 'senha-do-arquivo', 'cookie-da-conta-premium' );
Caro amigo,
Executei esse scrip pra simples verificação, será que ele ainda funciona? Aqui ele apresentou erro na linha 20.
Fatal error: Call to undefined function curl_init() in C:\...\...\...\...\xampp\htdocs\1\1.php on line 20
Não tens a biblioteca cURL habilitada no teu PHP.
A função continua funcionando (01/07/2011). Uma pessoa relatou que parou de funcionar, mas está ok, testei.
Poderia ter uma explicação de como pegar o cookie da conta premium para quem não sabe.
Acesse o site do megaupload. Em seguida, cole isso na barra de endereços:
javascript:void( alert( document.cookie ) );
Dê enter. Você irá ver vários cookies, o correto é o 'user'. Ele vai estar mais ou menos assim:
; user=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX;
O xxxxxx é o cookie.
Só uma observação:
Você colocou o $pass como segundo parâmetro e o $cokie como terceiro. Assim, você obriga o agente que chamará a função a passar um segundo parâmetro NULL caso o arquivo não tenha senha.
Se você inverter estes parâmetros ($cokie antes de $pass), você poderá passar apenas 2 parâmetros e não passar o terceiro quando não houver senha no arquivo.
O cookie da conta muda somente se você renova a sessão. Portanto, é um valor que muda muito pouco.
Pensando nisso eu deixo o cookie sempre como valor padrão dentro da função, assim eu passo somente o link do arquivo na função, e caso tenha senha, eu passo ela também.
Tipo assim:
function get_megaupload_premium_link( $megaupload_link, $pass = null, $cookie = 'XYZTTTTTTTTOAOOA6767AHIOSDHH5566' ) {
A função fica dessa maneira. Na hora de utilizar, só passo o link do arquivo:
echo get_megaupload_premium_link( 'http://www.megaupload.com/?d=00000000' );
E quando o arquivo tem senha:
echo get_megaupload_premium_link( 'http://www.megaupload.com/?d=00000000', '123456' );
Dessa maneira não preciso ficar passando o cookie na chamada da função :).
Entendi, faz sentido.
Olá, André.
Não entendi muito bem a funcionalidade da função, mas se ele pega o link direto/premium de um arquivo, não é possível fazer download do mesmo? Se for, isso não é "ilegal"?
Abraços! ;)
>
Olá, André.
Não entendi muito bem a funcionalidade da função, mas se ele pega o link direto/premium de um arquivo, não é possível fazer download do mesmo? Se for, isso não é "ilegal"?
Abraços! ;)
"Ilegal" não é pelo fato de que você precisa de uma conta válida para usar no Script. Ou seja, tenho uma conta Megaupload e quero ajudar um amigo que está baixando 40GB de filmes educativos, mas não quero passar minha senha para ele. Abro a porta 80 do meu modem, coloco esse script aí com a identificação da minha conta e deixo ele ir gerando os links premium e baixando 'em meu nome' sem ter minha senha. Tudo que ele precisa é o link comum do arquivo.
De certa forma, dizem que compartilhar conta pode resultar na perda dos benefícios. Particularmente, já li os Termos de Serviço da Megaupload 5 vezes do cabeçalho ao rodapé e nunca achei a expressão direta: "É proibido duas pessoas usarem a mesma conta."
Isso está, em tese, implícito quando eles dizem que você pode autorizar terceiros a usar seus benefícios para beneficiar a você mesmo ( seusfuncionários, por exemplo).
Mas então, Deleu, em suma, eu não consigo baixar nada sem ter uma conta, certo?
Abraço!
>
Mas então, Deleu, em suma, eu não consigo baixar nada sem ter uma conta, certo?
Abraço!
Depende do que você quer dizer com "Eu".
Eu tenho uma conta, mas meu irmão não tem. Ele consegue baixar em meu nome se eu gerar um link para ele.
Ou seja, ELE (usuário do Script) não conesguiria baixar nada se EU (dono do Script) não tivesse uma conta.
Guilherme, o requisito desse código é ter conta premium no megaupload. Uma das utilidades possíveis desse código foi descrita pelo Deleu, ou seja, deixar alguem baixar na sua conta sem passar o login e senha diretamente a pessoa.
A outra é criar um controle de arquivos baixados pela conta, pois dessa maneira você salvar cada download no banco de dados e ter um relatório.
Enfim, dá para fazer o que quiser, porém você TEM que ter uma conta premium :).
Ainda ta funcionando? Cabei de testar e aqui não está.
Pode verificar?
Grato.
@edit
>
Nós monitoramos automaticamente toda a atividade da conta a fim de detectar e desabilitar contas irregulares. Certifique-se de que a sua conta não caia nas mãos de terceiros - não a compartilhe com ninguém, nem mesmo com alguém em quem você confia. A equipe do Megaupload nunca perguntará a sua senha. Ao acessar a sua conta, verifique se você realmente está no endereço www.megaupload.com e não em algum site de phishing. Não adquira contas de um revendedor não-autorizado ou de sites de leilão on-line - eles podem ser mais baratos, mas não durarão muito e você terá que adquirir uma nova conta. Nossos revendedores autorizados apenas venderão vouchers - nunca aceite uma conta com senha. Dependendo do cartão de crédito que o revendedor ilegal utilizou para estabelecer a sua conta, você poderá também estar sujeito a investigação criminal.
Pessoas que moram juntas poderão compartilhar uma única conta.
?? Vocês estavam falando que o mega nunca falou que não podia compartilhar o premium '-' acho que isso prova o contrário. Vocês podem perder a conta premium lol.
Sou usuário Megaupload Premium desde Novembro do ano passado. Somos um grupo de estudantes que já variou entre 3 a 7 integrantes. Nunca tivemos problemas. Nosso único medo é se as contas vitalícias receberem maior fiscalização, porque estamos planejando comprar uma este ano.
Quanto ao script, eu uso e está funcionando corretamente.
O script está funcionando.
Tem como adaptar esse script pra Fileserve e Hotfile com conta premium?
Tem sim, só que tem que fazer um estudo de como funciona esses sites, se eles precisam de um token para validar o download, um cookie, onde o link premium está dentro do HTML, se tem que fazer 2 passos para chegar ao link premium.
Ou seja, não é uma adaptação tão simples assim, o que você pode reaproveitar é o cURL que pega o HTML do link, a lógica do DomXPath e acho que só.
André, sou cabaço em php poderia me explicar para que serve e o que faz este code? valew!