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 | 下回不定时推出
Tag: AHK, 下载, 音乐 6,244 Views


[回复]
[回复]
[回复]
[回复]
血饕餮 reply on 十二月 31st, 2007,23:14:
[回复]
新年快乐啊。青蛙男。
[回复]
小众不止有青蛙男,还有火山男,冰山男捏~
[回复]
[回复]
8 0 0 B U Wish U B Happy in 008!!
[回复]
在新的一年里继续加油啊!
[回复]
[回复]
先清空ie缓存文件夹,试听一次,再在缓存文件夹里按大小排序,找到后复制出来就行了。
[回复]
[回复]
[回复]
[回复]
[回复]
回复窗 左边最边上只能看到半个中文字.
[回复]
不过为什么当我想提这个问题的时候,不光回复左边显示不全,而且还找不到提交按钮呢?
[回复]
李二嫂的猪 reply on 一月 2nd, 2008,10:59:
[回复]
CosTean reply on 一月 2nd, 2008,16:06:
[回复]
[回复]
sfufoet reply on 一月 2nd, 2008,17:53:
不过个人不用qq音乐,所以这个功能就用不上了……
[回复]
[回复]
[回复]
scavin reply on 一月 5th, 2008,20:35:
[回复]
[回复]
E:\桌面\temp\UserList.tmp
请修改为你要的地址。
E:\桌面\temp\MusicURL.lst
也是
[回复]
sfufoet reply on 三月 25th, 2008,07:29:
#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
[回复]
zw reply on 三月 26th, 2008,00:12:
if (StrLen(URL)0)
应该是:
if (StrLen(URL)0)
请仔细检查代码,有注释也不会占用多少空间哪,为什么要去掉注释呢?反而就会产生奇怪的故障。
如果 UserList.tmp 复制不出来,请再一次上传列表,再下载列表。一定要出现是否合并列表的对话框才会成功。
[回复]
sfufoet reply on 三月 26th, 2008,09:01:
后来我复制你这网页上的代码去试就可以了,
你那个Box.net里面的提供下载的代码好像不太行,
只能复制UserList.tmp出来,但没有MusicURL.lst导出。
你有空检查下.
谢谢你的代码,学习了.
[回复]
虽然 改名字有点麻烦。。。0 0|||
[回复]
[回复]