2012-01-06 6 views
0

は、以前私はこの方法を使用youtube-mp3.org経由でmp3としてYouTubeの動画をダウンロードすることができました彼らは彼らのサーバー上でビデオの変換を開始しました。そして、この要求は、映像に関する情報と現在の変換ステータスをJSON文字列を返します:youtube-mp3.org APIが正常に動作していない、唯一のダウンロードは、キャッシュされた動画

http://www.youtube-mp3.org/api/itemInfo/?video_id=<VIDEOID>&adloc= 

statusの値が「提供」されるまで要求を繰り返した後、私は、その後の値を取ることによって最後のリクエストを開始しました前のリクエストからのJSONレスポンスのキーhを入力すると、mp3ファイルがダウンロードされます。

http://www.youtube-mp3.org/get?video_id=<VIDEOID>&h=<JSON string value for h> 

ここで、最初の要求は常に何も返しません。 2番目と3番目のリクエストは、要求されたビデオが(人気のあるミュージックビデオなどの)サーバーにキャッシュされている場合にのみ成功します。そうでなければ、2番目の要求はnilを返し、2番目の要求からのhの値がないために3番目の要求を開始できません。誰も私がちょうど何を知っていない最初のURLで間違っている必要があるコンバージョンを開始するには、ウェブサイトを取得すると私を助けることができます。おかげで

+0

youtube-mp3.orgからそれらの人々に連絡する必要があるかのように聞こえます。 – Till

+0

@私はやったが、まだ答えなかった。あなたはアイデアを持っていますか、それとも私が問題を手伝ってくれますか? – JonasG

+0

ごめんなさい。彼らのサービスはYouTubeの使用[terms](http://www.youtube.com/t/terms)に違反しているように見えるので、私はそれらから期待できるものはあまりないと思う。 – Till

答えて

1

私はそれをテストしました。最初のリクエストでは、

のヘッダを送信する必要があります。それ以外の場合は、500(内部サーバエラー)が返されます。しかし、そのヘッダーでは、youtubeの動画IDの文字列が返され、2番目のAPIを使用して進捗状況を確認できます。ここで

は、私がテストに使用C#のコードです:

HttpWebRequest wr = (HttpWebRequest)WebRequest.Create("FIRST_API_URL"); 
wr.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.75 Safari/535.7"; 
wr.Headers.Add("Accept-Location", "*"); 
string res = (new StreamReader(wr.GetResponse().GetResponseStream())).ReadToEnd(); 

ところで、あなたはブラウザのネットワーク(クローム)デバッグ]タブのヘッダーを追跡することができます。

みなさん

+0

恐ろしい!それは今働きます!ヘッダーを追加し、ユーザーエージェントを設定することが重要です。私は最初にヘッダーを追加しただけで、まだ動作しませんでした。その後、UAを設定した後はうまくいった!乾杯 – JonasG

関連する問題