youtube-mp3.org api工作不正常,只能下载caching的video

以前,我可以通过youtube-mp3.org将YouTubevideo下载为mp3。使用此方法:

http://www.youtube-mp3.org/api/pushItem/?item=http%3A//www.youtube.com/watch%3Fv%3D<VIDEOID>&xy=_ 

然后它返回videoID,他们开始转换他们的服务器上的video。 然后,这个请求将返回一个JSONstring,其中包含有关video和当前转换状态的信息:

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

重复请求直到status值为'serving'后,我通过从前一个请求的JSON响应中获取key的值来启动最后一个请求,这会下载一个mp3文件。

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

现在第一个请求总是没有返回。 如果请求的videocaching在服务器上(如stream行音乐video),则第二个和第三个请求只能成功。 如果不是这种情况,那么第二个请求将返回nil,所以第三个请求不能被启动,因为第二个请求中缺lessh值。 有没有人可以帮助我得到的网站开始转换的东西需要错误的第一个url,我只是不知道什么。 谢谢

我只是testing它。 对于第一个请求,你需要发送一个头:

 Accept-Location: * 

否则,它将返回一个500(内部服务器错误)。 但是有了这个头文件,它会返回一个YouTubevideoID的string,你可以使用第二个API来检查进度。

这里是我用于testing的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(); 

顺便说一句,你可以跟踪浏览器的networking(Chrome)debugging选项卡中的标题。

问候