×用微信扫描并分享

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

34
1 Star2 Stars3 Stars4 Stars5 Stars(快来投票)
Loading...


刚刚调查了写博的朋友们,没有人用 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 | 下回不定时推出

×用微信扫描并分享

已有 34 条评论, 我要留言

  1. […] 系列 | 上回 | 来自 appinn.com | 欢迎加入 AutoHotKey Google Group | 下回:AHK 快餐店 – AHK + 迅雷快车,轻松下载QQ 音乐 (6 votes, average: 1.5 out of 5)Tags: AHK, 取色, 系统, 编辑器 1,131 views 用 […]

  2. 漫步说道:

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

  3. UZ说道:

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

  4. scavin说道:

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

  5. 3m说道:

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

  6. xxxl说道:

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

  7. sfufoet说道:

    抗议~~楼上

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

  8. Andor说道:

    很强大,我经常使用 QQ Music

  9. 八百步说道:

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

  10. 八百步说道:

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

  11. poboat说道:

    好方法,但就是不用它。

  12. 李代桃说道:

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

  13. 思凡说道:

    好方法,虽然我也不用qqmusic

  14. 10yes说道:

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

  15. 胡子说道:

    QQ音乐貌似挺全?

  16. UZ说道:

    是很全……

  17. 大漠说道:

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

    • 李二嫂的猪说道:

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

    • CosTean说道:

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

  18. CosTean说道:

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

  19. licookie说道:

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

  20. 咖啡小冰说道:

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

  21. noiz说道:

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

  22. zw说道:

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

    • sfufoet说道:

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

      E:\桌面\temp\UserList.tmp

      请修改为你要的地址。

      E:\桌面\temp\MusicURL.lst

      也是

    • zw说道:

      修改的代码如下,都改了,有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说道:

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

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

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

  23. zw说道:

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

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

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

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

    你有空检查下.

    谢谢你的代码,学习了.

  24. id说道:

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

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

  25. Stin说道:

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

  26. PCbird说道:

    好像是QQsoso里的歌哦

有不同想法?说说看(首次评论会被人工审核,请耐心等待)