【问题标题】:youtube-mp3.org api not working properly, only downloads cached videosyoutube-mp3.org api 无法正常工作,仅下载缓存的视频
【发布时间】:2012-01-06 19:13:48
【问题描述】:

以前我可以通过 youtube-mp3.org 将 YouTube 视频下载为 mp3 格式:

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

然后它返回了视频 ID,他们开始在他们的服务器上转换视频。然后此请求将返回一个 JSON 字符串,其中包含有关视频和当前转换状态的信息:

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>

现在第一个请求总是什么都不返回。第二个和第三个请求只有在请求的视频缓存在他们的服务器上(如流行音乐视频)时才会成功。如果不是这种情况,那么第二个请求将返回 nil,因此第三个请求无法启动,因为第二个请求中缺少 hvalue。任何人都可以帮助我让网站开始转换,我只是不知道第一个 URL 有什么问题。谢谢

【问题讨论】:

  • 听起来你应该联系来自 youtube-mp3.org 的那些人。
  • @Till 我做了,但他们还没有回答。你有什么想法,或者你能帮我解决这个问题吗?
  • 抱歉不知道。由于他们的服务似乎违反了 YouTube 的使用 terms,我想他们不能期待太多。

标签: ios download youtube mp3 httprequest


【解决方案1】:

我刚刚测试过。对于第一个请求,您需要发送一个标头:

Accept-Location: *

否则,它将返回 500(内部服务器错误)。但是有了这个标头,它会返回一个 youtube 视频 id 的字符串,您可以使用第二个 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();

顺便说一句,您可以在浏览器的网络 (Chrome) 调试选项卡中跟踪标题。

问候

【讨论】:

  • 太棒了!现在可以了!添加标题并设置用户代理很重要。我首先只添加了标题,但它仍然不起作用。然后设置UA它工作!干杯
猜你喜欢
  • 2020-09-17
  • 1970-01-01
  • 2021-11-05
  • 2015-12-05
  • 2013-11-28
  • 2011-09-15
  • 1970-01-01
  • 2011-02-10
  • 2012-12-21
相关资源
最近更新 更多