Python转码网易云音乐缓存
用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转码网易云音乐缓存相关推荐
- 【Python程序设计】基于Python Flask的网易云音乐歌单采集与可视化分析平台-源码经过调试,100%可运行
基于Python Flask的网易云音乐歌单采集与可视化分析平台 项目获取 一.项目简介 二.开发环境 三.项目技术 四.功能介绍 五.功能结构 六.运行截图 项目获取 获取方式(点击下载):是云猿实 ...
- Python爬虫实践-网易云音乐
1.前言 最近,网易的音乐很多听不到了,刚好也看到很多教程,跟进学习了一下,也集大全了吧,本来想优化一下的,但是发现问题还是有点复杂,最后另辟捷径,提供了简单的方法啊! 本文主要参考 python编写 ...
- [爬虫]Python爬取网易云音乐搜索并下载歌曲!
Python爬取网易云音乐搜索并下载歌曲! 文章目录 Python爬取网易云音乐搜索并下载歌曲! 1.准备工作 2."实地"观察 3.开始码代码! 4.搜索并下载 结束语 1.准备 ...
- Python爬虫之网易云音乐下载
Python爬虫之网易云音乐下载 目标 用Python根据网易云音乐的ID,下载音乐,保存到本地MP3格式 可以下载歌曲的范围:所有能够听的歌曲 配置基础 Python 3.5 模块 pycrypto ...
- python爬取网易云音乐薛之谦歌词数据,生成词云
老薛最近频频上热搜,因为老薛的歌大部分是自己作词,所以感觉他的歌词和他应该有某种情感表达和联系吧. 于是用python爬了网易云音乐中老薛的歌词数据,并简单用wordcloud写了个词云统计. 难过, ...
- python爬取网易云音乐热评_python爬取网易云音乐评论
本文实例为大家分享了python爬取网易云音乐评论的具体代码,供大家参考,具体内容如下 import requests import bs4 import json def get_hot_comme ...
- python爬取网易云音乐飙升榜音乐_python爬取网易云音乐热歌榜 python爬取网易云音乐热歌榜实例代码...
想了解python爬取网易云音乐热歌榜实例代码的相关内容吗,FXL在本文为您仔细讲解python爬取网易云音乐热歌榜的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:python,网易热歌榜 ...
- python爬取网易云音乐飙升榜音乐_python爬取网易云音乐热歌榜实例代码
首先找到要下载的歌曲排行榜的链接,这里用的是: https://music.163.com/discover/toplist?id=3778678 然后更改你要保存的目录,目录要先建立好文件夹,例如我 ...
- Python爬取网易云音乐热歌榜(爬虫)
Python爬取网易云音乐热歌榜歌曲,并下载到本地 找到要下载歌曲排行榜的链接,这里用的是: https://music.163.com/discover/toplist?id=3778678 然后更 ...
最新文章
- 005-Python之列表,元组,字符串,bytes及bytearray共有操作
- 【Flutter】FutureBuilder 异步编程 ( FutureBuilder 构造方法 | AsyncSnapshot 异步计算 )
- 关于vue项目中添加less,less-loader不能运行的问题
- DB Query Analyzer中的事务管理在DB2中的应用
- Android源码之路(一、IntentService)
- 网站运营直通车——7天精通SEO
- H3 BPM MVC表单SheetAttachment控件使用NTKO打开附件(Word、Excel)
- Jxl实现Excel的导入与导出
- 使用Flink实现索引数据到Elasticsearch
- 手机上怎么访问电脑html页面,手机UC浏览器怎么访问电脑版 访问电脑页面方法...
- 谷歌支付 googleplay API权限相关设置
- wget 和scp对比_如何下载scp、wget、inotify及如何偷包
- python 视频加字幕_Python追风者之视频编辑moviepy
- 哪款蓝牙耳机音质好又耐用?便宜耐用的蓝牙耳机
- edu邮箱怎么申请一个1T的onedrive
- 远程传输大文件使用什么平台好呢?
- 画论76 布颜图《画学心法问答》
- Javascript--04 JavaScript的内部对象
- 区分是在手机端还是pc端
- 如何优化selenium webdriver的执行速度