易语言通过解析免费下载QQ付费音乐的代码

常量数据表

.版本 2
.常量 链接1, "<文本长度: 9>"
.常量 链接2, "<文本长度: 2>"

QQ付费音乐下载器

此功能配合精易模块5.6使用,需要加载模块.

.版本 2
.支持库 downlib
.支持库 iext
.支持库 spec
.支持库 shell
.程序集 窗口程序集_启动窗口
.程序集变量 任务, 任务参数
.程序集变量 下载限速, 整数型
.程序集变量 下载对象, 下载对象
.子程序 _按钮1_被单击
.如果 (寻找文本 (编辑框1.内容, “play”, , 假) = -1)
  歌曲搜索 ()
.否则
  歌单列表 ()
.如果结束
.子程序 歌曲搜索
.局部变量 标题转码, 文本型
.局部变量 歌曲列表, 文本型
.局部变量 josn, 类_json
.局部变量 i, 整数型
.局部变量 音乐标题, 文本型
.局部变量 歌手, 文本型
.局部变量 专辑, 文本型
.局部变量 文件名, 文本型
.局部变量 索引, 整数型
.局部变量 发行时间, 文本型
.局部变量 链接, 文本型
.局部变量 o, 整数型
超级列表框1.全部删除 ()
标题转码 = 编码_URL编码 (编辑框1.内容, , 真)
.计次循环首 (2, o)
  歌曲列表 = 编码_utf8到gb2312 (到文本 (网页_访问 (“https://c.y.qq.com/soso/fcgi-bin/client_search_cp?ct=24&qqmusic_ver=1298&new_json=1&remoteplace=txt.yqq.center&searchid=47333670699582939&t=0&aggr=1&cr=1&catZhida=1&lossless=0&flag_qc=0&p=” + 到文本 (0) + “&n=20&w=” + 标题转码)))
  歌曲列表 = 文本_取出中间文本 (歌曲列表, “callback(”, “})”)
  歌曲列表 = 歌曲列表 + “}”
  .如果真 (josn.解析 (歌曲列表))
    .计次循环首 (josn.成员数 (“data.song.list”), i)
      音乐标题 = josn.取通用属性 (“data.song.list[” + 到文本 (i - 1) + “].title”)
      歌手 = josn.取通用属性 (“data.song.list[” + 到文本 (i - 1) + “].singer[0].name”)
      专辑 = josn.取通用属性 (“data.song.list[” + 到文本 (i - 1) + “].album.name”)
      发行时间 = josn.取通用属性 (“data.song.list[” + 到文本 (i - 1) + “].time_public”)
      文件名 = josn.取通用属性 (“data.song.list[” + 到文本 (i - 1) + “].mid”)
      链接 = 编码_utf8到gb2312 (到文本 (网页_访问_对象 (“https://i.y.qq.com/v8/playsong.html?ADTAG=newyqq.song&songmid=” + 文件名 + “#webchat_redirect”, 0, , , , “User-Agent: Mozilla/5.0 (Linux; Android 4.1.1; Nexus 7 Build/JRO03D) AppleWebKit/535.19 (KHTML, like)”, , , , , , , , , , )))
      链接 = 文本_取出中间文本 (链接, #链接1, #链接2)
      调试输出 (链接)
      索引 = 超级列表框1.插入表项 (, , , , , )
      超级列表框1.置标题 (索引, 0, 到文本 (超级列表框1.取表项数 ()))
      超级列表框1.置标题 (索引, 1, 音乐标题)
      超级列表框1.置标题 (索引, 2, 歌手)
      超级列表框1.置标题 (索引, 3, 专辑)
      超级列表框1.置标题 (索引, 4, 发行时间)
      超级列表框1.置标题 (索引, 5, 文件名)
      超级列表框1.置标题 (索引, 6, 链接)
    .计次循环尾 ()
  .如果真结束
.计次循环尾 ()
.子程序 歌单列表
.局部变量 id, 文本型
.局部变量 列表文本, 文本型
.局部变量 josn, 类_json
.局部变量 i, 整数型
.局部变量 音乐标题, 文本型
.局部变量 歌手, 文本型
.局部变量 专辑, 文本型
.局部变量 文件名, 文本型
.局部变量 链接, 文本型
.局部变量 索引, 整数型
超级列表框1.全部删除 ()
id = 文本_倒取出中间文本 (编辑框1.内容, “.html”, “/”)
列表文本 = 编码_utf8到gb2312 (到文本 (网页_访问 (“https://c.y.qq.com/qzone/fcg-bin/fcg_ucc_getcdinfo_byids_cp.fcg?type=1&json=1&utf8=1&onlysong=0&disstid=” + id + “&format=jsonp&g_tk=5381&jsonpCallback=playlistinfoCallback&loginUin=0&hostUin=0&format=jsonp&inCharset=utf8&outCharset=utf-8&notice=0&platform=yqq&needNewCode=0”)))
列表文本 = 文本_取出中间文本 (列表文本, “playlistinfoCallback(”, “})”)
列表文本 = 列表文本 + “}”
.如果真 (josn.解析 (列表文本))
  .计次循环首 (josn.成员数 (“cdlist[0].songlist”), i)
    音乐标题 = josn.取通用属性 (“cdlist[0].songlist[” + 到文本 (i - 1) + “].songname”)
    歌手 = josn.取通用属性 (“cdlist[0].songlist[” + 到文本 (i - 1) + “].singer[0].name”)
    专辑 = josn.取通用属性 (“cdlist[0].songlist[” + 到文本 (i - 1) + “].albumname”)
    文件名 = josn.取通用属性 (“cdlist[0].songlist[” + 到文本 (i - 1) + “].songmid”)
    链接 = 编码_utf8到gb2312 (到文本 (网页_访问_对象 (“https://i.y.qq.com/v8/playsong.html?ADTAG=newyqq.song&songmid=” + 文件名 + “#webchat_redirect”, 0, , , , “User-Agent: Mozilla/5.0 (Linux; Android 4.1.1; Nexus 7 Build/JRO03D) AppleWebKit/535.19 (KHTML, like)”, , , , , , , , , , )))
    链接 = 文本_取出中间文本 (链接, #链接1, #链接2)
    索引 = 超级列表框1.插入表项 (, , , , , )
    超级列表框1.置标题 (索引, 0, 到文本 (超级列表框1.取表项数 ()))
    超级列表框1.置标题 (索引, 1, 音乐标题)
    超级列表框1.置标题 (索引, 2, 歌手)
    超级列表框1.置标题 (索引, 3, 专辑)
    超级列表框1.置标题 (索引, 5, 文件名)
    超级列表框1.置标题 (索引, 6, 链接)
  .计次循环尾 ()
.如果真结束
状态条1.置文本 (0, “状态:搜索完成”)
.子程序 _ape无损品质_被选择
.局部变量 ape品质, 文本型
.局部变量 文件大小, 整数型
ape品质 = 超级列表框1.取标题 (超级列表框1.现行选中项, 6)
ape品质 = 文本_替换 (ape品质, , , , “/C400”, “/A000”, “.m4a?”, “.ape?”, “fromtag=38”, “fromtag=8”, “http://dl.stream.qqmusic.qq.com/”, “http://streamoc.music.tc.qq.com/”)
文件大小 = 网页_取网络文件尺寸 (ape品质)
.如果 (文件大小 < 1000000)
  信息框 (“没有ape格式,请换其他格式!”, 0, , )
.否则
  下载 (ape品质, 超级列表框1.取标题 (超级列表框1.现行选中项, 1), “.ape”, 超级列表框1.取标题 (超级列表框1.现行选中项, 2))
.如果结束
.子程序 _flac无损品质_被选择
.局部变量 flac品质, 文本型
.局部变量 文件大小, 整数型
flac品质 = 超级列表框1.取标题 (超级列表框1.现行选中项, 6)
flac品质 = 文本_替换 (flac品质, , , , “/C400”, “/F000”, “.m4a?”, “.flac?”, “fromtag=38”, “fromtag=53”)
文件大小 = 网页_取网络文件尺寸 (flac品质)
.如果 (文件大小 < 1000000)
  信息框 (“没有flac格式,请换其他格式!”, 0, , )
.否则
  下载 (flac品质, 超级列表框1.取标题 (超级列表框1.现行选中项, 1), “.flac”, 超级列表框1.取标题 (超级列表框1.现行选中项, 2))
.如果结束
.子程序 _mp3高品质_被选择
.局部变量 mp3高品质链接, 文本型
.局部变量 文件大小, 整数型
mp3高品质链接 = 超级列表框1.取标题 (超级列表框1.现行选中项, 6)
mp3高品质链接 = 文本_替换 (mp3高品质链接, , , , “/C400”, “/M800”, “.m4a?”, “.mp3?”, “fromtag=38”, “fromtag=53”)
文件大小 = 网页_取网络文件尺寸 (mp3高品质链接)
.如果 (文件大小 < 1000000)
  信息框 (“没有mp3高品质格式,请换其他格式!”, 0, , )
.否则
  下载 (mp3高品质链接, 超级列表框1.取标题 (超级列表框1.现行选中项, 1), “.mp3”, 超级列表框1.取标题 (超级列表框1.现行选中项, 2))
.如果结束
.子程序 _mp3普通品质_被选择
.局部变量 mp3普通品质链接, 文本型
mp3普通品质链接 = 超级列表框1.取标题 (超级列表框1.现行选中项, 6)
mp3普通品质链接 = 文本_替换 (mp3普通品质链接, , , , “/C400”, “/M500”, “.m4a?”, “.mp3?”, “fromtag=38”, “fromtag=53”)
下载 (mp3普通品质链接, 超级列表框1.取标题 (超级列表框1.现行选中项, 1), “.mp3”, 超级列表框1.取标题 (超级列表框1.现行选中项, 2))
.子程序 _编辑框1_被双击, 逻辑型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型
编辑框1.内容 = “”
.子程序 _超级列表框1_右键单击表项
弹出菜单 (菜单, , )
.子程序 下载
.参数 下载地址, 文本型
.参数 音乐标题, 文本型
.参数 音乐格式, 文本型
.参数 歌手, 文本型
.局部变量 保存路径, 文本型
任务.类型 = 4096
任务.文件地址 = 下载地址
保存路径 = 读配置项 (取运行目录 () + “\bc.ini”, “保存目录”, “保存”, )
.如果 (文件是否存在 (取运行目录 () + “\bc.ini”) = 假)
  信息框 (“请先设置保存目录”, 0, , )
  返回 ()
.否则
  任务.本地文件路径 = 保存路径 + 歌手 + “ - ” + 音乐标题 + 音乐格式
  任务.默认线程数 = 5
  下载对象.增加新任务 (任务)
  时钟1.时钟周期 = 1000
.如果结束
.子程序 _时钟1_周期事件
状态条1.置文本 (1, “下载速度:” + 到文本 (四舍五入 (取总下载速度 () ÷ 1024000, 2)) + “ MB/s”)
.如果 (状态条1.取文本 (1) = “下载速度:0 MB/s”)
  时钟1.时钟周期 = 1000000000
  状态条1.置文本 (2, 超级列表框1.取标题 (超级列表框1.现行选中项, 1) + “ - ” + 超级列表框1.取标题 (超级列表框1.现行选中项, 2) + “ 下载完成”)
  播放音乐 (#声音1, 假)
.否则
.如果结束
.子程序 _标签1_鼠标左键被按下, 逻辑型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型
.局部变量 路径, 文本型
路径 = 浏览文件夹 (“选择保存目录”, 假) + “\”
写配置项 (取运行目录 () + “\bc.ini”, “保存目录”, “保存”, 路径)
.子程序 _编辑框1_按下某键, 逻辑型
.参数 键代码, 整数型
.参数 功能键状态, 整数型
.如果 (键代码 = #回车键)
  _按钮1_被单击 ()
.否则
.如果结束

运行结果:

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接

(0)

相关推荐

  • 易语言添加软件背景音乐的方法

    易语言软件如何添加背景音乐?计算机软件产业的蓬勃发展,造就了一批又一批的优秀程序猿(当然,笔者也在为了这个理想奋斗着).很多时候,看到别人的优秀软件,就想摩拳擦掌跃跃欲试的模仿一下.毕竟嘛,学会模仿,才能更好的创新.在使用软件的时候,有些软件运行以后,会自动播放音乐.这是怎么回事呢?也许别人和我们用的开发环境不同,但原理基本上都差不多! 1.首先,准备一下今天的"主角"-背景音乐.这里有必要给大家提个醒,易语言Windows窗口程序的背景音乐格式只支持wav.mid格式.因此像mp3.

  • 易语言播放指定的音乐文件

    播放音乐命令 英文命令:PlayMusic 操作系统支持:Windows     所属类别:媒体播放 可以播放 .WAV..MID 声音文件或相应格式的字节集声音数据.声音资源.成功返回真,失败返回假. 语法:  逻辑型  播放音乐 (欲播放的音乐,[是否循环播放]) 例程: 说明: 选择一个以  .WAV  .MID 为后缀的文件,并将文件路径显示在编辑框中.通过返回值的判断弹出不同信息框. 运行结果: 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价

  • 易语言制作酷狗付费音乐解析下载工具

    常量数据表 .版本 2 .常量 常量2, "<文本长度: 7>", , "url":" .常量 常量1, "<文本长度: 1>", , " 酷狗音乐直链解析 歌曲哈希值在酷狗音乐属性里可以找到. .版本 2 .支持库 internet .程序集 窗口程序集1 .子程序 _解析按钮_被单击 编辑框_直链.内容 = 获取MP3地址 (编辑框_哈希值.内容) .子程序 获取MP3地址, 文本型 .参数 has

  • 易语言酷我音乐三种格式无损下载地址解析源码

    DLL命令表 .版本 2 .DLL命令 CoInitialize, 整数型, "ole32.dll", , 公开, 初始化对象开始 .参数 pvReserved, 整数型, , 0 .DLL命令 CoUninitialize, 整数型, "ole32.dll", , 公开, 初始化对象结束 .DLL命令 ShellExecute, 整数型, "shell32.dll", "ShellExecuteA" .参数 hwnd, 整数

  • 易语言通过计算替换字节实现酷狗音乐缓存文件转MP3的代码

    DLL命令表 .版本 2 .DLL命令 创建线程_, 整数型, "kernel32", "CreateThread", , CreateThread建立新的线索 .参数 lpThreadAttributes, 整数型, , 0 .参数 dwStackSize, 整数型, , 0 .参数 lpStartAddress, 子程序指针 .参数 lpParameter, 整数型 .参数 dwCreationFlags, 整数型, , 0 .参数 lpThreadId, 整数

  • 易语言通过算法计算出酷狗音乐下载地址的代码

    酷狗直链计算的代码 此功能需要加载精易模块5.6 .版本 2 .支持库 RegEx .支持库 iext3 .支持库 dp1 .程序集 窗口程序集_启动窗口 .子程序 JSON转义字符解码, 文本型 .参数 解密文本, 文本型 .局部变量 正则表达, 正则表达式 .局部变量 搜索结果, 搜索结果, , "0" .局部变量 转换结果, 文本型 .局部变量 文本, 文本型 .局部变量 i, 整数型 文本 = 解密文本 .如果真 (文本 ≠ "") 正则表达.创建 (&qu

  • 易语言通过解析免费下载QQ付费音乐的代码

    常量数据表 .版本 2 .常量 链接1, "<文本长度: 9>" .常量 链接2, "<文本长度: 2>" QQ付费音乐下载器 此功能配合精易模块5.6使用,需要加载模块. .版本 2 .支持库 downlib .支持库 iext .支持库 spec .支持库 shell .程序集 窗口程序集_启动窗口 .程序集变量 任务, 任务参数 .程序集变量 下载限速, 整数型 .程序集变量 下载对象, 下载对象 .子程序 _按钮1_被单击 .如果 (

  • 易语言通过监控图标实现QQ消息监控的代码

    DLL命令表 .版本 2 .DLL命令 GetWindowThreadProcessId___, 整数型, "user32.dll", "GetWindowThreadProcessId" .参数 hwnd, 整数型 .参数 lpdwProcessId, 整数型, 传址 .DLL命令 OpenProcess___, 整数型, "kernel32.dll", "OpenProcess" .参数 dwDesiredAccess,

  • 易语言通过解析破解艾奇学院的收费视频的代码

    常量数据表 .版本 2 .常量 常量1, "<文本长度: 51>", , href="/home.php?m=Order&a=subCourseConfirm&id=.*?" rel="external nofollow" 艾奇学院收费视频破解的代码 此功能需要加载精易模块5.6 .版本 2 .支持库 iext .支持库 HtmlView .支持库 eAPI .程序集 窗口程序集_启动窗口 .程序集变量 vid, 文本

  • 易语言自动识别快递公司查件免验证码的代码

    常量数据表 .版本 2 .常量 快递单号前, "<文本长度: 13>", , [{"comCode":" .常量 快递单号后, "<文本长度: 9>", , ","id":"" 快递查询自动识别快递公司无验证码 此功能需要加载精易模块5.6 .版本 2 .程序集 窗口程序集_启动窗口 .子程序 __启动窗口_创建完毕 .子程序 _查询按钮_被单击 .局部变量 提交

  • 易语言模拟腾讯滑块条自动验证的代码

    模拟腾讯滑动自动验证的代码 此功能需要加载精易模块5.6 .版本 2 .支持库 EThread .支持库 BmpOperate .支持库 spec .程序集 窗口程序集1 .程序集变量 图_原始, 字节集 .程序集变量 图_块, 字节集 .程序集变量 图_模版, 字节集 .程序集变量 初始高度, 整数型 .程序集变量 图_高度, 整数型 .程序集变量 图_宽度, 整数型 .子程序 图片处理, , , 加载图片,并转格式 .局部变量 返回文本, 文本型 .局部变量 vsig, 文本型 返回文本 =

  • 易语言调用百度API获取IP归属地的代码

    常量据表 .版本 2 .常量 查ip地址, "<文本长度: 17>", , {"code":0,"data": 调用百度api获取ip归属地的代码 此功能需要加载精易模块5.6 .版本 2 .程序集 窗口程序集_启动窗口 .子程序 取IP归属地_百度API, 文本型, 公开 .参数 IP地址, 文本型 .局部变量 Json, 类_json .局部变量 返回数据, 文本型 .局部变量 地区, 文本型 CoInitialize (0) 返

  • 易语言高级表格选择任意行列获取内容的代码示例

    高级表格取选择任意行列的内容 .版本 2 .支持库 eGrid .程序集 窗口程序集1 .子程序 __启动窗口_创建完毕 高级表格1.置数据 (1, 1, #表格常量.文本型, "我") 高级表格1.置数据 (1, 2, #表格常量.文本型, "爱") 高级表格1.置数据 (1, 3, #表格常量.文本型, "你") 高级表格1.置数据 (1, 4, #表格常量.文本型, "你") 高级表格1.置数据 (1, 5, #表格常量

  • 易语言通过post实现对小米路由器操作的代码

    操作小米路由器的代码 此功能需要加载精易模块5.6 .版本 2 .支持库 iext2 .程序集 窗口程序集_启动窗口 .程序集变量 IP, 文本型 .程序集变量 cookie, 文本型 .程序集变量 token, 文本型 .子程序 登录, 文本型 .参数 密码, 文本型 .参数 返回内容, 文本型, 参考 .参数 token, 文本型, 参考 .局部变量 临时, 文本型 .局部变量 deviceId, 文本型 .局部变量 key, 文本型 .局部变量 时间戳, 文本型 .局部变量 随机数, 文本

  • 易语言调用dll实现条形码本地离线识别的代码

    DLL命令表 需要提前下载用到命令对应的库 .版本 2 .DLL命令 OCR, 文本型, "AspriseVB.dll", "OCR" .参数 file, 文本型 .参数 imageType, 整数型 .DLL命令 OCRBarCodes, 文本型, "VBWrapper.dll", "OCRBarCodes" .参数 file, 文本型 .参数 imageType, 整数型 .DLL命令 OCRpart, 文本型, &quo

随机推荐