彳、亍 发表于 2021-6-11 15:54

python网易云音乐缓存uc转换

本帖最后由 彳、亍 于 2021-6-11 20:31 编辑

这个api请求不了电台,只能用id作文件名了,,
-----搜了下好像没有python版,我来做一个
功能:把缓存转换为音乐文件,重命名
使用方法:
配置输入输出目录
需要xxx.uc和xxx.info两个文件

测试图


代码
import requests
import os
import json
import re

INPUTPATH = 'D:\\xj\\test\\'
OUTPUTPATH = 'D:\\xj\\test\\'
flag = 1# 歌手在歌名前面?是1否0

list = os.listdir(INPUTPATH)
for fname in list:
    if fname.split('.')[-1] != 'uc':
      continue
    id = fname.split('-')
    resp = requests.get(url='https://api.imjad.cn/cloudmusic/', params={'id': id, 'type': 'detail'})
    dat = json.loads(resp.text)

    with open(INPUTPATH + fname, 'rb') as fi:
      b = fi.read()

    nm = dat['songs']['name']
    artist = dat['songs']['ar']['name']
    with open(INPUTPATH + re.sub(r'(\.uc)', '.info', fname)) as fi:
      type = json.loads(fi.read())['format']

    if nm is None and artist is None:
      optfname = id
    else:
      optfname = artist + ' - ' + nm if flag == 1 else nm + ' - ' + artist
    print(optfname)
    with open(OUTPUTPATH + optfname + '.' + type, 'wb') as fo:
      for i in b:
            fo.write((i ^ 0xa3).to_bytes(length=1, byteorder='little'))

彳、亍 发表于 2021-8-27 17:47

Caitingting 发表于 2021-8-13 13:30
求问楼主,这个实现的原理是什么呢?网易云音乐PC端是一种加密行为吗? 通过将音乐源进行加密运算让*.mp3变 ...

不好意思刚刚看到
其实就是对每个字节,与163(a3)异或
所以再异或回去就好了

三滑稽甲苯 发表于 2021-6-11 16:37

这是用api的吗
播放器同款皮肤

彳、亍 发表于 2021-6-11 16:43

三滑稽甲苯 发表于 2021-6-11 16:37
这是用api的吗
播放器同款皮肤

用api请求了名字
potplayer还能换皮肤的吗{:301_1009:}

三滑稽甲苯 发表于 2021-6-11 16:50

可以
我看错了,但是默认皮肤和我的这个确实很像

彳、亍 发表于 2021-6-11 16:51

三滑稽甲苯 发表于 2021-6-11 16:50
可以
我看错了,但是默认皮肤和我的这个确实很像

原来是这样

东方天涯 发表于 2021-7-28 17:44

彳、亍 发表于 2021-7-28 18:48

东方天涯 发表于 2021-7-28 17:44
额,美少女万华镜5还需要吗

不好意思,封帖前一位老哥给过链接了{:301_999:}

Caitingting 发表于 2021-8-13 13:30

求问楼主,这个实现的原理是什么呢?网易云音乐PC端是一种加密行为吗? 通过将音乐源进行加密运算让*.mp3变成*.uc ?
页: [1]
查看完整版本: python网易云音乐缓存uc转换