Youtube下载链接来自http://www.youtube-mp3.org/

oki*_*pol 5 youtube api mp3 download

我一直在使用http://www.youtube-mp3.org/来获取"互联网广播"项目(下载文件流并输出)的mp3歌曲的下载链接.最近http://www.youtube-mp3.org/似乎改变了它的工作流程.直到现在我能够获得正确的网址格式:

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

而r =时间戳我把自己的时间戳作为时代.这没有.1527580295后缀,效果很好.不幸的是,这似乎是必需的,因为没有后缀的链接会重定向回转换站点.

到目前为止,算法如上所述:

Youtube mp3 org linq获得解释

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

有没有人知道如何获得后缀部分?

//嘿,我不是一个网络编程人员...但这是我肯定忽略的.谢谢!

将其添加到我的小型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;
    }
Run Code Online (Sandbox Code Playgroud)

效果很好;)

Rap*_*aël 5

我不知道这个后缀是什么意思,但是从youtube-mp3.org读取客户端javascript文件,你可以学习如何生成它.

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;
}
Run Code Online (Sandbox Code Playgroud)

生成的媒体URL是:

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

var timeNow = Date.now().toString();
Run Code Online (Sandbox Code Playgroud)

  • 我的朋友这个网址已被弃用.在网址末尾添加了一个新参数.请更新你的答案. (5认同)