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)
- JDK容器学习之CopyOnWriteArrayList:线程安全保障机制
- JDK容器学习之LinkedList:底层存储&读写逻辑
- Linux基础(day53)
- 15.4 xshell使用xftp传输文件
- JDK容器学习之ArrayList:底层存储和动态扩容
- Linux基础(day57)
- 15.2/15.3 使用vsftpd搭建ftp
- JDK容器学习之Map: HashMap,TreeMap,LinkedHashMap对比小结
- 14.4 exportfs命令
- 不用那么多,每天一点点,学习React,贵在持之以恒
- Linux基础(day56)
- android classloader双亲委托模式
- 14.3 NFS配置选项
- 14.2 NFS服务端安装配置
- 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 数组属性和方法
- Day11.类和对象这回事儿
- Day12.魔法方法&方法重写
- Linux基础第一课——基础知识了解
- 【Vue CLI】手把手教你撸插件
- Linux基础第二课——系统架构
- Day13.继承&多态
- Linux第三课——目录操作
- Linux基础第四课——文件操作
- Linux基础第五课——用户管理
- Linux基础第六课——grep|awk|sort|uniq
- Python向上取整,向下取整以及四舍五入函数
- 使用requests模块post payload请求
- 解决HTTP status code is not handled or not allowed
- Day8.函数那些事儿
- mac下更改Jupyter notebook工作目录