/ / Link de download do Youtube em http://www.youtube-mp3.org/ - api, youtube, download, mp3

Link de download do Youtube em http://www.youtube-mp3.org/ - api, youtube, download, mp3

Eu tenho usado o http://www.youtube-mp3.org/ para obter links de download de músicas mp3 para um projeto de "rádio na Internet" (baixar o fluxo de arquivo e gerá-lo). Ultimamente o http://www.youtube-mp3.org/ parecia ter mudado o fluxo de trabalho. Até agora, consegui obter o formato adequado do url:

http://www.youtube-mp3.org/get?ab=128&video_id=KMU0tzLwhbE&h=5671e7d33d4eccb5b89ea8f54d9911d4&r=1387110278658.1527580295

Considerando que r = timestamp Eu mesmo fiz o timestamp comoépoca. Isso funcionou bem sem o sufixo .1527580295. Infelizmente, isso parece ser necessário, pois o link sem o sufixo redireciona de volta para o site de conversão.

Até agora, o algoritmo era como mencionado:

Explicação da aquisição do Youtube mp3 org linq

http://www.youtube-mp3.org/api/itemInfo/?video_id=#{video_id}&ac=www&r=#{Time.now.to_i}

Alguém sabe como obter a parte do sufixo?

//Ei, Não sou muito de programação web ... mas isso é algo que certamente esqueci. Obrigado!

Adicionei isso à minha pequena API C #.

  <!-- language: c# -->
const int AM = 65521;
int GetCCSufix(string a)
{
int c = 1, b = 0, d, e;
var chars = a.ToCharArray();
for(e =0; e< chars.Length; e ++)
{
d = chars[e];
c = (c + d) % AM;
b = (b + c) % AM;
}
return b << 16 | c;
}

Funciona bem ;)

Respostas:

5 para resposta № 1

Não sei o que esse sufixo significa, mas lendo o arquivo javascript do cliente em youtube-mp3.org, você pode aprender como gerá-lo.

var __AM=65521; // the largest prime less than 2^16...
function cc(a){
var c = 1, b = 0, d, e;
for(e = 0; e < a.length; e++){
d = a.charCodeAt(e);
c = (c+d)%__AM;
b = (b+c)%__AM;
}
return b<<16|c;
}

O URL de mídia gerado é:

"http://www.youtube-mp3.org/get?ab=128&video_id="+video_id+"&h="+info.h+"&r="+timeNow+"."+cc(video_id+timeNow)

com

var timeNow = Date.now().toString();