刚刚调查了写博的朋友们,没有人用 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 | 下回不定时推出
[…] 系列 | 上回 | 来自 appinn.com | 欢迎加入 AutoHotKey Google Group | 下回:AHK 快餐店 – AHK + 迅雷快车,轻松下载QQ 音乐 (6 votes, average: 1.5 out of 5)Tags: AHK, 取色, 系统, 编辑器 1,131 views 用 […]
嗯,我就是你调查的一个,哇哈哈,另外一直不怎么折腾ahk。。。
赞一个!嘻嘻,以前一直懒得用QQ音乐~现在得用用了~
这样都行,太神奇了。。。
酷毙了…神奇啊…
不用qq音乐, 不过支持ahk~
我用QQ音乐的。对我有用。谢谢了。
新年快乐啊。青蛙男。
抗议~~楼上
小众不止有青蛙男,还有火山男,冰山男捏~
很强大,我经常使用 QQ Music
新年快乐!
8 0 0 B U Wish U B Happy in 008!!
仔细一看,似乎是今年第一个评论……
在新的一年里继续加油啊!
好方法,但就是不用它。
对于一些只能在qq音乐里找到的歌,我一般的方法就是:
先清空ie缓存文件夹,试听一次,再在缓存文件夹里按大小排序,找到后复制出来就行了。
好方法,虽然我也不用qqmusic
真巧。。我真在想怎么解决这问题呢。。。这是我最喜欢的一篇ahk的文章。
QQ音乐貌似挺全?
是很全……
浪费时间哦, 音乐哪下到哦.. BLOG界面有问题
回复窗 左边最边上只能看到半个中文字.
终于有人提出和我一样的问题了……
不过为什么当我想提这个问题的时候,不光回复左边显示不全,而且还找不到提交按钮呢?
s是啊,在IE中就这样,Opera正常!不过不能输入电子邮件。
提个问题:QQ音乐提供的歌曲音质并不好(通常是64K的),干嘛要这么费力。。。。能下歌曲的地方多了。。。。
@CosTean,烦请你看看第一段再留言好吗?
不错不错~
不过个人不用qq音乐,所以这个功能就用不上了……
为什么我点击“下载脚本”的两个链接都跳到了论坛批量下载附件的页面去了?真奇怪哦。
已经好了
听过的歌系统临时文件里面都有..那格式一般都不识别 不过千千静听可以识别播放 然后就在TTplayer的列表里直接转换为MP3格式就都有了…
我下载你提供的AHK脚本,那个QQMusicData\Temp\UserList*.tmp 文件复制出来,但没有AHK生成的MusicURL.lst这个文件呢?是那里出错了,可以回复我吗?我是新手,来学习了!
很可能你没有修改代码中的:
E:\桌面\temp\UserList.tmp
请修改为你要的地址。
E:\桌面\temp\MusicURL.lst
也是
修改的代码如下,都改了,有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
你给的这句错了,
if (StrLen(URL)0)
应该是:
if (StrLen(URL)0)
请仔细检查代码,有注释也不会占用多少空间哪,为什么要去掉注释呢?反而就会产生奇怪的故障。
如果 UserList.tmp 复制不出来,请再一次上传列表,再下载列表。一定要出现是否合并列表的对话框才会成功。
你说那句原是对括号的,发表出去可能给过滤掉了,
后来我复制你这网页上的代码去试就可以了,
你那个Box.net里面的提供下载的代码好像不太行,
只能复制UserList.tmp出来,但没有MusicURL.lst导出。
你有空检查下.
谢谢你的代码,学习了.
话说~ 我都直接去 缓存 里面找~~~~
虽然 改名字有点麻烦。。。0 0|||
实在是太好了,谢谢你的代码
好像是QQsoso里的歌哦