Python项目实战——开发网易云音乐插件
时间:2022-05-07
本文章向大家介绍Python项目实战——开发网易云音乐插件,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
写了个深度音乐播放器的网易云音乐插件,可在Linux下播放用户创建、收藏的歌单,以及私人FM。
功能完善中。
https://github.com/wu-nerd/dmusic-plugin-NeteaseCloudMusic
介绍
1.基于sumary的dmusic-plugin-baidumusic修改而成 2.使用了NetEaseMusicBox中的网易云音乐API 3.非大陆用户可能无法播放音乐,请使用proxychains设置播放器代理或使用V**
特性
1.支持网易账号及手机号登录,支持新浪微博账号及二维码登录 2.播放创建的歌单、收藏的歌单 3.支持搜索、添加、删除歌曲 4.支持搜索、添加、删除歌单 5.播放私人FM,支持红心、取消红心、删除歌曲 6.支持每日歌曲推荐 7.支持从网易获取歌词及封面
安装
安装深度音乐播放器
sudo apt-add-repository ppa:noobslab/deepin-sc
sudo apt-get updatesudo apt-get install deepin-music-player
这个源有段时间没有更新,因此Ubuntu 15.04可能无法安装。需要修改 /etc/apt/sources.list.d 文件夹下 noobslab-ubuntu-deepin-sc-vivid.list 文件,将其中的的 vivid 修改成 utopic ,然后
sudo apt-get updatesudo apt-get install deepin-music-player
安装Requests库及pycrypto库
sudo apt-get install python-pip
sudo pip install requests
sudo pip install pycrypto
对于默认使用Python 3的发行版比如Arch,请安装python2版本的库:
sudo pacman -Ss python2-pip
sudo pip2 install requests
sudo pip2 install pycrypto
安装网易云音乐插件
git clone https://github.com/wu-nerd/dmusic-plugin-NeteaseCloudMusic.git
cd dmusic-plugin-NeteaseCloudMusic
python2 install.py
使用
运行深度音乐, 选项设置->附加组件 中启用网易云音乐即可
代码
#! /usr/bin/env python
# -*- coding: utf-8 -*-
import os
import shutil
def copytree(src, dst):
"""Recursively copy a directory tree using copy2().
Modified from shutil.copytree
"""
base = os.path.basename(src)
dst = os.path.join(dst, base)
names = os.listdir(src)
if not os.path.exists(dst):
os.makedirs(dst)
for name in names:
srcname = os.path.join(src, name)
try:
if os.path.isdir(srcname):
copytree(srcname, dst)
else:
shutil.copy2(srcname, dst)
except Exception ,e:
print e
raise
def softlink(src, dst):
link_dst = os.path.join(dst, src.rsplit('/', 1)[-1])
if os.path.exists(link_dst):
os.system("rm -rf %s" % link_dst)
if not os.path.exists(dst):
os.makedirs(dst)
os.system("ln -s %s %s" % (src, dst))
if __name__ == "__main__":
src = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'neteasecloudmusic')
dst = os.path.join(os.path.expanduser("~"), ".local", "share", "deepin-music-player", "plugins")
copytree(src, dst)
- 使用Feign实现Form表单提交
- Ubuntu 16.04 Install OpenCV
- Spring Cloud各组件调优参数
- 手把手教你设置 IntelliJ IDEA 的彩色代码主题
- 实用技巧:Hystrix传播ThreadLocal对象(两种方案)
- OpenDaylight与Mininet应用实战之流表操作
- 使用Spring Cloud Feign上传文件
- 用 TensorFlow 让你的机器人唱首原创给你听
- Spring Cloud限流详解(附源码)
- 手动安装Docker 17.06
- 详述使用 IntelliJ IDEA 解决 jar 包冲突的问题
- Spring Cloud各组件重试总结
- js或者php浮点数运算产生多位小数的理解
- 纠错帖:Zuul & Spring Cloud Gateway & Linkerd性能对比
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Python中的高阶概念属性:五个你应该搞明白的知识点
- 一次奇怪的http状态码改变
- Salesforce LWC学习(二十七) File Upload
- 让我们来谈谈python中的prettyprint和pprint
- vue 开发规范
- Markdown 编写规范
- JavaScript编码规范
- HTML编码规范
- postgres数据库不能用ip地址访问的问题
- Flutter基础widgets教程-ButtonBar篇
- 如何在linux服务上创建samba文件共享服务
- Salesforce Javascript(二) 箭头函数
- java面试基础部分;
- 7-2.表单-HTML基础
- 如何在github上传多个项目