标题: [问题求助] 【已解决】下载链接中有不明的字符PowerShell怎样取到原值? [打印本页]
作者: 5i365 时间: 2022-5-8 22:02 标题: 【已解决】下载链接中有不明的字符PowerShell怎样取到原值?
本帖最后由 5i365 于 2022-5-15 09:07 编辑
经常使用酷狗音乐客户端下载歌曲, 但是要手动去找, 有点麻烦, 我下载的歌曲一般都有指定的歌曲ID, 所以就在网上搜索了一些资料, 找到了一个链接, 只要把链接改为歌曲ID, 然后用Invoke-RestMethod调用链接, 就能返回一些值
但是这些值, 不是原样显示的, 很奇怪, 还能找到mp3的链接, 但是下载也不行, 估计要恢复原样才行, 请求路过高手指教, 提前感谢
_______________________________________________________________________________________________________________________________________
下面是代码执行后的返回值:红色字部分应该是歌曲名, 但是不知道是什么编码,
蓝色和粉色字部分应该是下载链接, 但是里面也有特殊字符,也不能下载
<!--KG_TAG_RES_START-->{"trans_param":{"display":32,"display_rate":1},"fileHead":100,"q":0,"fileSize":3457047,"fileName":"966EC8D9B7167DD8E0F1814CFDE47A18 - 139855960975104.fla","status":1,"url":["http:\/\/fsandroid.ali.kugou.com\/202205082155\/3e8f6097954707264bf6ee80f4af9094\/G111\/M06\/1D\/10\/D4cBAFoL9VyASCmXADTAFw14uaI428.mp3","http:\/\/fs.mobile.kugou.com\/202205082155\/0fc031a3b4608c3af1421df7782b6673\/G111\/M06\/1D\/10\/D4cBAFoL9VyASCmXADTAFw14uaI428.mp3"],"extName":"mp3","bitRate":128000,"timeLength":216}<!--KG_TAG_RES_END-->
_______________________________________________________________________________________________________________________________________
PS代码:
- $id=255787470
- $uri = "http://trackercdnbj.kugou.com/i/v2/?album_audio_id=$id&behavior=play&cmd=25&album_id=6960309&hash=b5a2d566c9de70422f5e5e7203054219&userid=0&pid=2&version=9108&area_code=1&appid=1005&key=407732fc325852538ca836581fe4e370&pidversion=3001&with_res_tag=1"
- $r = Invoke-RestMethod $uri
- $r
复制代码
作者: 5i365 时间: 2022-5-8 22:30
找了一个python代码的完整示例, 没找到powershell的
https://blog.csdn.net/m0_45906885/article/details/120246623
作者: flashercs 时间: 2022-5-9 14:08
- function Get-Song{
- param(
- [psobject]$id = 255787470,
- [ValidateNotNullOrEmpty()]
- [string]$outfile
- )
-
- $uri = "http://trackercdnbj.kugou.com/i/v2/?album_audio_id=$id&behavior=play&cmd=25&album_id=6960309&hash=b5a2d566c9de70422f5e5e7203054219&userid=0&pid=2&version=9108&area_code=1&appid=1005&key=407732fc325852538ca836581fe4e370&pidversion=3001&with_res_tag=1"
- $r = Invoke-RestMethod -UseBasicParsing -Uri $uri -SessionVariable session1
- $ojson = $r -replace '<!--.*?-->'|ConvertFrom-Json
- foreach($itemurl in $ojson.url){
- Invoke-RestMethod -UseBasicParsing -Uri $itemurl -WebSession $session1 -OutFile $outfile
- if($?){break}
- }
- }
复制代码
作者: 5i365 时间: 2022-5-9 15:27
回复 3# flashercs
感谢大侠帮忙,
奇怪, 是同一id 但不是同一首歌, 应该是下面这首歌: 红色字是专辑ID, 蓝色字是歌曲ID, 我有这两个ID, 想下载这首歌
https://www.kugou.com/mixsong/48aevi9e.html#hash=A5D06A9BD3CC35FF866522F955C095C0&album_id=37376237&album_audio_id=255787470
作者: 5i365 时间: 2022-5-9 15:40
回复 3# flashercs
就像这个表中的两个ID, 我手动下载时, 是用客户端搜索专辑, 然后从专辑中找那个歌曲
排序 | 歌曲id | 语言 | 歌手名 | 歌曲名 | 专辑id | 专辑名 |
1 | 255787470 | 国语 | 汪苏泷 | 不分手的恋爱 | 37376237 | 汪苏泷原创合集 |
2 | 136049189 | 国语 | 小星星Aurora | 坠落星空 | 16750196 | 画一个星星一个你 |
3 | 246674878 | 国语 | 王茗 | 大眠 | 35936215 | 大眠 (温柔男声) |
作者: idwma 时间: 2022-5-9 22:11
本帖最后由 idwma 于 2022-5-9 23:25 编辑
- $i=37376237
- $d=255787470
- $uri="http://mobilecdn.kugou.com/api/v3/album/song?version=9108&albumid=$i&plat=0&pagesize=100&area_code=1&page=1&with_res_tag=1"
- $r = Invoke-RestMethod $uri
- $r -match "{[^}]+hash.:.([^`"]+).+.$i."
- $hash=$matches[1]
- $uri="http://wwwapi.kugou.com/yy/index.php?r=play/getdata&hash=$hash&mid=123&album_id=$i&album_audio_id=$d"
- $r = Invoke-RestMethod $uri
- $uri=$r.data.play_url -replace 'https','http'
- $n=$r.data.audio_name+'.mp3'
- Invoke-RestMethod $uri -outfile $n
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |