2013-12-15 12 views
5

Korzystam z http://www.youtube-mp3.org/, aby uzyskać linki do pobierania utworów mp3 dla projektu "radia internetowego" (pobierz strumień plików i wypisz go). Ostatnio wydawało się, że http://www.youtube-mp3.org/ zmienił swój przepływ pracy. Do tej pory udało mi się uzyskać właściwy format adresu URL:Link do pobierania z Youtube z http://www.youtube-mp3.org/

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

Podczas gdy r = datownik zrobiłem timestamp siebie jako epoki. To działało dobrze bez przyrostka .1527580295. Niestety, wydaje się, że jest to potrzebne, ponieważ łącze bez sufiksu przekierowuje z powrotem do witryny konwersji.

Do chwili obecnej algorithim zostało wymienione:

Youtube mp3 org linq acquiring explained

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

Czy ktoś wie w jaki sposób uzyskać część przyrostka?

// Hej, Nie jestem facetem programowania w Internecie ... ale jest to coś, co z pewnością przeoczyłem. Dzięki!

Dodałem to do mojego małego C# API.

<!-- 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; 
    } 

Działa świetnie;)

+0

Cześć. Nie mogłem tego zrobić. Czy możesz udostępnić, skąd masz dokumentację nowego połączenia API? Co wyślesz do GetCCSufix jako parametr? Mój wynik jest; 'r = 1388806010725.1561527943?', który jest czasem VideoID i Unix jako parametrem metody GetCCSufix. Ale działa tylko * niektóre * razy w serwisie. Większość otrzymam pustą stronę. – Nasenbaer

+0

Mam na myśli, używam czasu Java, a nie Unix. Myślę, że jest inny problem w tej usłudze. Błąd pustej strony występuje tylko w przypadku mniej oglądanych filmów. Ale bezpośrednio na stronie działa zawsze. – Nasenbaer

+0

Hej, Przepraszamy za wielkie opóźnienie w przepływie -> Nowy rok wolny, chyba. Odpowiem, kiedy wrócę do domu. – okipol

Odpowiedz

5

nie wiem co to przyrostek razie, ale czytając klienta javascript plik youtube-mp3.org można dowiedzieć się, jak go wygenerować.

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; 
} 

Wygenerowany mediów URL:

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

z

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

To jest niesamowite! Spędziłem na tym tygodnie! Dziękuję bardzo! – Xander

+5

Mój przyjaciel ten adres URL jest przestarzały. Nowy argument został dodany na końcu adresu URL. Zaktualizuj swoją odpowiedź. – OmerFaruk

+0

@ Raphaël Czy mógłbyś zaktualizować swoją odpowiedź na nową wersję API? – DVassilev

Powiązane problemy