2007.12.31 by sfufoet

AHK 快餐店 – AHK + 迅雷快车,轻松下载 QQ 音乐

34

AHK 快餐店   AHK + 迅雷快车,轻松下载 QQ 音乐[图] | 小众软件
刚刚调查了写博的朋友们,没有人用 QQ Music。意料之中。他们不用,不代表广大的 QQ 用户不用。相信很多用 QQ Music 的朋友不想浪费 RMB 去下载 QQ 音乐吧?下载音乐的办法何其多,为什么要下载 QQ 音乐?说难听点叫钻牛角尖,说好听点,叫另辟蹊径。本文仅仅出于学习 AHK 脚本的目的,来实现下载 QQ 音乐。

我们先来看看网上流传的办法是怎么做的,

1、找到 QQ 目录下的 qqmusicdata 文件夹里的以你的 QQ 命名的文件夹,找到 PlayList.Dat 用记事本打开。用记事本打开就可以看到真实的下载地址。[via] 这个文件已经不存在。

2、先清空 QQ 目录下的 qqmusicdata\Temp,然后在 QQ 音乐的界面上,点击“同步→上传列表”,这时候,qqmusicdata\Temp 会多出两个后缀名为 .tmp 的文件,用记事本打开就可以看到真实的下载地址。[via 《电脑爱好者》2007.24] 这两个文件会出现,不过是在“下载列表”的时候出现,而且一眨眼工夫,QQ 音乐就秒杀了它们。

从第二种办法来看,只要能在 QQ 音乐秒杀掉 .tmp 文件之前,复制出来不久 ok 了?哦也,我们先来看 AHK 代码:

#Persistent
settimer,copy,1
return
; 小提示,如果你看不懂这些代码请回头看看 AHK 快餐店系列文章

copy:
FileCopy,D:\QQ\QQMusicData\Temp\UserList*.tmp, E:\桌面\temp, 1
; 请注意修改 QQ 的路径。后面的 E:\桌面\temp 是文件复制到哪里去。1,代表覆盖同名文件,反之就是 0。
IfExist E:\桌面\temp\UserList.tmp
; E:\桌面\temp\UserList.tmp 这个文件名可能是 UserList7.tmp 之类的。
{
    settimer,copy, off
    ; 关闭计时器
    Loop
    {
        FileReadLine, line, E:\桌面\temp\UserList.tmp, %A_Index%
        ; 读取文件的每一行,放到变量 line 里面
        if ErrorLevel
            break
        ; 如果找不到文件的话,跳出循环。
        RegExMatch(line, “http://(.*).wma”,URL)
        ; 利用正则表达式提取 line 中的地址。提取后的地址放在 URL 中。
        if (StrLen(URL)<>0)
            URLs=%URLs%%URL%`n
        ; 如果 URL 的长度不等于 0 ,说明找到地址了,加上一个回车(`n)并把 每一个 URL 合并到 URLs 里面
    }
    FileAppend , %URLs%, E:\桌面\temp\MusicURL.lst
    ; 把 URLs 的值写到 MusicURL.lst 里面
}
return

脚本下载:Box.net | Google Group

下面是详细的操作步骤:

1、打开 QQmusic,运行上面的脚本,随便删除掉一首歌,然后点击“同步→下载列表”。这时候 QQ music 会问:“下载列表会将服务器上的列表添加到本地列表,是否添加?”当然是选“是”,这时候又会有另外一个对话框,选择“合并”。

只要点击了“合并”,QQMusicData\Temp 立刻就会出现 UserList*.tmp 文件。我们的 AHK 可是以每秒 1000 次的速度检测 UserList*.tmp 文件是否存在,存在立刻复制出来。

2、运行迅雷或者快车,然后点击“文件→导入下载列表”。导入 AHK 生成的 E:\桌面\temp\MusicURL.lst 。剩下的不用多说。

3、打开千千静听,把下载到歌曲添加进去列表,选中刚刚添加的文件,右键“重命名文件→歌曲名 – 歌手.扩展名”。这样就可以把下载到的歌曲的名字由一堆数字重命名为直观的名字。

AHK 系列 | 上回 | 来自 appinn.com | 欢迎加入 AutoHotKey Google Group | 下回不定时推出

25 Comments:

  1. 1. 漫步 # 2007/12/31 14:58

    嗯,我就是你调查的一个,哇哈哈,另外一直不怎么折腾ahk。。。

    回复

  2. 2. UZ # 2007/12/31 17:40

    赞一个!嘻嘻,以前一直懒得用QQ音乐~现在得用用了~

    回复

  3. 3. scavin # 2007/12/31 18:18

    这样都行,太神奇了。。。

    回复

    血饕餮 # 2007/12/31 23:14

    酷毙了…神奇啊…

    回复

  4. 4. 3m # 2007/12/31 18:32

    不用qq音乐, 不过支持ahk~

    回复

  5. 5. xxxl # 2007/12/31 22:46

    我用QQ音乐的。对我有用。谢谢了。
    新年快乐啊。青蛙男。

    回复

  6. 6. sfufoet # 2007/12/31 22:49

    抗议~~楼上

    小众不止有青蛙男,还有火山男,冰山男捏~

    回复

  7. 7. Andor # 2007/12/31 23:28

    很强大,我经常使用 QQ Music

    回复

  8. 8. 八百步 # 2008/01/01 00:29

    新年快乐!
    8 0 0 B U Wish U B Happy in 008!!

    回复

  9. 9. 八百步 # 2008/01/01 00:30

    仔细一看,似乎是今年第一个评论……
    在新的一年里继续加油啊!

    回复

  10. 10. poboat # 2008/01/01 08:28

    好方法,但就是不用它。

    回复

  11. 11. 李代桃 # 2008/01/01 09:19

    对于一些只能在qq音乐里找到的歌,我一般的方法就是:
    先清空ie缓存文件夹,试听一次,再在缓存文件夹里按大小排序,找到后复制出来就行了。

    回复

  12. 12. 思凡 # 2008/01/01 10:48

    好方法,虽然我也不用qqmusic

    回复

  13. 13. 10yes # 2008/01/01 12:15

    真巧。。我真在想怎么解决这问题呢。。。这是我最喜欢的一篇ahk的文章。

    回复

  14. 14. 胡子 # 2008/01/01 14:02

    QQ音乐貌似挺全?

    回复

  15. 15. UZ # 2008/01/01 20:34

    是很全……

    回复

  16. 16. 大漠 # 2008/01/02 10:33

    浪费时间哦, 音乐哪下到哦.. BLOG界面有问题
    回复窗 左边最边上只能看到半个中文字.

    回复

    李二嫂的猪 # 2008/01/02 10:59

    终于有人提出和我一样的问题了……
    不过为什么当我想提这个问题的时候,不光回复左边显示不全,而且还找不到提交按钮呢?

    回复

    CosTean # 2008/01/02 16:06

    s是啊,在IE中就这样,Opera正常!不过不能输入电子邮件。

    回复

  17. 17. CosTean # 2008/01/02 16:05

    提个问题:QQ音乐提供的歌曲音质并不好(通常是64K的),干嘛要这么费力。。。。能下歌曲的地方多了。。。。

    回复

    sfufoet # 2008/01/02 17:53

    @CosTean,烦请你看看第一段再留言好吗?

    回复

  18. 18. licookie # 2008/01/03 12:01

    不错不错~
    不过个人不用qq音乐,所以这个功能就用不上了……

    回复

  19. 19. 咖啡小冰 # 2008/01/05 11:19

    为什么我点击“下载脚本”的两个链接都跳到了论坛批量下载附件的页面去了?真奇怪哦。

    回复

    scavin # 2008/01/05 20:35

    已经好了

    回复

  20. 20. noiz # 2008/03/18 13:59

    听过的歌系统临时文件里面都有..那格式一般都不识别 不过千千静听可以识别播放 然后就在TTplayer的列表里直接转换为MP3格式就都有了…

    回复

  21. 21. zw # 2008/03/25 00:20

    我下载你提供的AHK脚本,那个QQMusicData\Temp\UserList*.tmp 文件复制出来,但没有AHK生成的MusicURL.lst这个文件呢?是那里出错了,可以回复我吗?我是新手,来学习了!

    回复

    sfufoet # 2008/03/25 07:29

    很可能你没有修改代码中的:

    E:\桌面\temp\UserList.tmp

    请修改为你要的地址。

    E:\桌面\temp\MusicURL.lst

    也是

    回复

    zw # 2008/03/26 00:12

    修改的代码如下,都改了,有D:\Temp\UserList.tmp这个文件复制出来,就是没有D:\Temp\MusicURL.lst这个文件生成,不知那里出错,请提示.

    #Persistent
    settimer,copy,1
    return

    copy:
    FileCopy,D:\Program Files\Tencent\music\QQMusicData\Temp\UserList*.tmp, D:\Temp, 1
    IfExist D:\Temp\UserList.tmp
    {
    settimer,copy, off
    Loop
    {
    FileReadLine, line, D:\Temp\UserList.tmp, %A_Index%
    if ErrorLevel
    break
    RegExMatch(strSongGUID, “http://(.*).wma”,URL)
    if (StrLen(URL)0)
    URLs=%URLs%%URL%`n
    }
    FileAppend , %URLs%, D:\Temp\MusicURL.lst
    }
    return

    回复

    sfufoet # 2008/03/26 09:01

    你给的这句错了,
    if (StrLen(URL)0)
    应该是:
    if (StrLen(URL)0)

    请仔细检查代码,有注释也不会占用多少空间哪,为什么要去掉注释呢?反而就会产生奇怪的故障。

    如果 UserList.tmp 复制不出来,请再一次上传列表,再下载列表。一定要出现是否合并列表的对话框才会成功。

    回复

  22. 22. zw # 2008/03/27 20:16

    你说那句原是对括号的,发表出去可能给过滤掉了,

    后来我复制你这网页上的代码去试就可以了,

    你那个Box.net里面的提供下载的代码好像不太行,

    只能复制UserList.tmp出来,但没有MusicURL.lst导出。

    你有空检查下.

    谢谢你的代码,学习了.

    回复

  23. 23. id # 2008/05/07 18:58

    话说~ 我都直接去 缓存 里面找~~~~

    虽然 改名字有点麻烦。。。0 0|||

    回复

  24. 24. Stin # 2008/09/20 12:12

    实在是太好了,谢谢你的代码

    回复

  25. 25. PCbird # 2008/11/30 01:37

    好像是QQsoso里的歌哦

    回复

输入昵称与邮箱就可以评论

称呼*

邮箱*

网址