用Python转码网易云的缓存文件成mp3。

原理就是读取缓存字节码与0xa3做异或运算,然后分析缓存名称调用网易的api得到歌曲名称,别的没啥。这里有个要注意的地方bytearray笔者一开始当成数组处理了,导致兜了很大的弯子,其实人家是一个独立的对象,立字为据,引以为戒。

# -*- coding: utf-8 -*-
import sys, os, urllib, json, globclass Song(object):def __init__(self, path):super(Song, self).__init__() self.file_path = pathself.id = os.path.basename(path).split("-")[0]self.json = {}self.name = ""self.artists = ""def net_info(self):url = 'http://music.163.com/api/song/detail/?id={}&ids=%5B{}%5D)'.format(self.id, self.id)print(url)self.json = json.load(urllib.urlopen(url))self.name = self.json["songs"][0]["name"]self.artists = self.json["songs"][0]["artists"][0]["name"]print("Song: %s" % self.name)print("By: %s" % self.artists)class Runner(object):def __init__(self):super(Runner, self).__init__()self.io_dir = [None, None]self.files = []self.test_just_one = Falsedef parse_cline(self):if len(sys.argv) > 2:self.io_dir = sys.argv[1:2]else:self.io_dir = [r"%s\AppData\Local\Netease\CloudMusic\Cache\Cache" % os.environ["USERPROFILE"],r"%s\output" % os.path.dirname(__file__)]def convert(self):self.parse_cline()if not os.path.isdir(self.io_dir[1]):os.makedirs(self.io_dir[1])self.files = glob.glob("%s/*.uc" % self.io_dir[0])if self.test_just_one:self.files = self.files[:1]for f in iter(self.files):o_name = ""try:song = Song(f)song.net_info()o_name = "%s_%s" % (song.name, song.artists)except:passif not o_name:o_name = os.path.splitext(os.path.basename(f))[0]out_f = os.path.join(self.io_dir[1], o_name) + ".mp3"with open(f, "rb") as iopf:f_data = iopf.read()f_data = bytearray(f_data)for i, v in enumerate(f_data):f_data[i] = v ^ 0xa3f_data = bytes(f_data)with open(out_f, "wb") as oopf:oopf.write(f_data)if __name__ == "__main__":Runner().convert()

使用方法:

Win + R > CMD > python <py文件>

Win + R > CMD > python <py文件> <缓存文件夹> <输出文件夹>

Python转码网易云音乐缓存相关推荐

  1. 【Python程序设计】基于Python Flask的网易云音乐歌单采集与可视化分析平台-源码经过调试,100%可运行

    基于Python Flask的网易云音乐歌单采集与可视化分析平台 项目获取 一.项目简介 二.开发环境 三.项目技术 四.功能介绍 五.功能结构 六.运行截图 项目获取 获取方式(点击下载):是云猿实 ...

  2. Python爬虫实践-网易云音乐

    1.前言 最近,网易的音乐很多听不到了,刚好也看到很多教程,跟进学习了一下,也集大全了吧,本来想优化一下的,但是发现问题还是有点复杂,最后另辟捷径,提供了简单的方法啊! 本文主要参考 python编写 ...

  3. [爬虫]Python爬取网易云音乐搜索并下载歌曲!

    Python爬取网易云音乐搜索并下载歌曲! 文章目录 Python爬取网易云音乐搜索并下载歌曲! 1.准备工作 2."实地"观察 3.开始码代码! 4.搜索并下载 结束语 1.准备 ...

  4. Python爬虫之网易云音乐下载

    Python爬虫之网易云音乐下载 目标 用Python根据网易云音乐的ID,下载音乐,保存到本地MP3格式 可以下载歌曲的范围:所有能够听的歌曲 配置基础 Python 3.5 模块 pycrypto ...

  5. python爬取网易云音乐薛之谦歌词数据,生成词云

    老薛最近频频上热搜,因为老薛的歌大部分是自己作词,所以感觉他的歌词和他应该有某种情感表达和联系吧. 于是用python爬了网易云音乐中老薛的歌词数据,并简单用wordcloud写了个词云统计. 难过, ...

  6. python爬取网易云音乐热评_python爬取网易云音乐评论

    本文实例为大家分享了python爬取网易云音乐评论的具体代码,供大家参考,具体内容如下 import requests import bs4 import json def get_hot_comme ...

  7. python爬取网易云音乐飙升榜音乐_python爬取网易云音乐热歌榜 python爬取网易云音乐热歌榜实例代码...

    想了解python爬取网易云音乐热歌榜实例代码的相关内容吗,FXL在本文为您仔细讲解python爬取网易云音乐热歌榜的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:python,网易热歌榜 ...

  8. python爬取网易云音乐飙升榜音乐_python爬取网易云音乐热歌榜实例代码

    首先找到要下载的歌曲排行榜的链接,这里用的是: https://music.163.com/discover/toplist?id=3778678 然后更改你要保存的目录,目录要先建立好文件夹,例如我 ...

  9. Python爬取网易云音乐热歌榜(爬虫)

    Python爬取网易云音乐热歌榜歌曲,并下载到本地 找到要下载歌曲排行榜的链接,这里用的是: https://music.163.com/discover/toplist?id=3778678 然后更 ...

最新文章

  1. 005-Python之列表,元组,字符串,bytes及bytearray共有操作
  2. 【Flutter】FutureBuilder 异步编程 ( FutureBuilder 构造方法 | AsyncSnapshot 异步计算 )
  3. 关于vue项目中添加less,less-loader不能运行的问题
  4. DB Query Analyzer中的事务管理在DB2中的应用
  5. Android源码之路(一、IntentService)
  6. 网站运营直通车——7天精通SEO
  7. H3 BPM MVC表单SheetAttachment控件使用NTKO打开附件(Word、Excel)
  8. Jxl实现Excel的导入与导出
  9. 使用Flink实现索引数据到Elasticsearch
  10. 手机上怎么访问电脑html页面,手机UC浏览器怎么访问电脑版 访问电脑页面方法...
  11. 谷歌支付 googleplay API权限相关设置
  12. wget 和scp对比_如何下载scp、wget、inotify及如何偷包
  13. python 视频加字幕_Python追风者之视频编辑moviepy
  14. 哪款蓝牙耳机音质好又耐用?便宜耐用的蓝牙耳机
  15. edu邮箱怎么申请一个1T的onedrive
  16. 远程传输大文件使用什么平台好呢?
  17. 画论76 布颜图《画学心法问答》
  18. Javascript--04 JavaScript的内部对象
  19. 区分是在手机端还是pc端
  20. 如何优化selenium webdriver的执行速度

热门文章

  1. matlab 三维 作图 坐标轴_怎么设置三维图的坐标轴在任意位置
  2. Wi-Fi 7来了!小米13系列和万兆路由器再提速
  3. 安卓qpythonttsspeak_简单手机编程:几行代码让你的安卓手机自动整点报时
  4. COMODO网络安全套装下载
  5. P1603 斯诺登密码
  6. 洛谷P1603 斯诺登的密码
  7. 写给我最喜欢的DOTA选手-------伍声2009
  8. 众昂矿业架构师刘金海:氢氟酸原材料依赖萤石
  9. ERP从内部集成起步开篇
  10. vue 日历翻拍效果_VUE实现日历组件功能