TimothyQiu's Blog

keep it simple stupid

虾米音乐试听下载器

分类:技术

最近做视频需要从虾米上找些音乐做 BGM 用,无奈从虾米上下音乐是要花「米」这种虚拟货币的。所幸的是试听是完整的,而且就我的耳朵而言听不出这个「试听」的音质有什么变化,加上最近在学 Python,就写了这么一个东西。

原理依旧简单:歌曲和专辑都有 ID(从 URL 上看得出来),试听播放器根据 ID 拼接地址得到一个 XML 播放列表文件。而这个播放列表就是需要在试听播放器里添加的播放列表。其中表示位置的 location 字段是被加密过的,类似于

6hAFat2221F19E4pt%fm%FF%6%78853t23i21528579_3pF..F98F2E%136%%xn4275%15%2.32ie%%912_E57m

仔细观察,或者对照实际 URL 可以看出可以将这一串字符写作如下形式:

6
hAFat2221F19E4p
t%fm%FF%6%78853
t23i21528579_3
pF..F98F2E%136
%%xn4275%15%2.
32ie%%912_E57m

其中第一个「6」表示将后面的内容折成六行。如此处理后的内容,就成为了前几天特别流行的藏头了。

http%3A%2F%2Ff3.xiami.net%2F4%2F192%2F58792%2F511682%2F%5E1_177%5E9891%5E8_3274536.mp3

进行 unquote 后变成

http://f3.xiami.net/4/192/58792/511682/^1_177^9891^8_3274536.mp3

继而将 ^ 替换为 0 就是最终的 URL 了!

GitHub Repo: https://github.com/timothyqiu/xiami-downloader

Python

已有 6 条评论 »

  1. 这么高端, 话说 URL 里面居然还有 ^ 字符..

    1. 要把 ^ 替换成 0 的……也算加密手段吧,免得被人一眼看出来……=3=

  2. tokki tokki

    小兴奋了一下 结果下载下来的歌都是96kbps 128lbps的 我想应该加一个功能 下载专辑的话 把专辑按照文件夹分类会不会好一点

    1. 建议不错哈~另外这个下载的是歌曲试听,不是要花米才能下的东西,所以音质要差点……

  3. tokki tokki

    再给你提个建议 把专辑封面选个大一些的图吧 现在加的这个图太小了 放在ipod里面看着都是模糊的 别说放电脑里了
    虾米每张专辑都有大图的 400x400-。- 直接从页面把图抓下来被

    加油

  4. r906 r906

    配合iTunes Match,,,神脚本,,,目前最高效正版AAC的方法了,,拜过

添加新评论 »