Python项目实战——开发网易云音乐插件

写了个深度音乐播放器的网易云音乐插件,可在Linux下播放用户创建、收藏的歌单,以及私人FM。

功能完善中。

https://github.com/wu-nerd/dmusic-plugin-NeteaseCloudMusic

介绍

1.基于sumary的dmusic-plugin-baidumusic修改而成 2.使用了NetEaseMusicBox中的网易云音乐API 3.非大陆用户可能无法播放音乐,请使用proxychains设置播放器代理或使用VPN

特性

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)

本文分享自微信公众号 - Python爬虫与算法进阶(zhangslob)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-07-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏企鹅号快讯

浅谈zookeeper性能的优缺点

zookeeper原本不是为高可用性设计的,但很多系统实际上是需要跨机房部署的。出于性价比的考虑我们通常会让多个机房同时工作,而不会搭建N倍的冗余。也就是说单个...

94570
来自专栏Rainbond开源「容器云平台」

微服务架构云端应用

24850
来自专栏SDNLAB

保护微服务架构的10个有效方式

微服务是一种创新的方式来加速和改进软件开发。该术语是指可以单独开发的应用程序子组件,并且通常专注于一个特定功能。例如,用于在线购物的电子商务应用需要具备订单收集...

37140
来自专栏Linyb极客之路

初识分布式架构

集群 小饭店原来只有一个厨师,切菜洗菜备料炒菜全干。后来客人多了,厨房一个厨师忙不过来,又请了个厨师,两个厨师都能炒一样的菜,这两个厨师的关系是集群。

14310
来自专栏开源项目

用大白话聊聊分布式系统

一提起“分布式系统”,大家的第一感觉就是好高大上啊,深不可测,看各类大牛关于分布式系统的演讲或者书籍,也大多是一脸懵逼。本文期望用浅显易懂的大白话来就什么是分布...

53690
来自专栏Android 开发者

[译] 从 Android Studio 切换至 D8 dexer

48140
来自专栏IT派

2018年Python web五大主流框架

我们都知道风靡一时的Python语言作为人工智能战场上主要使用的枪外,还被广泛应用在Web开发、游戏开发、人工智能、云计算开发、大数据开发、数据分析、科学运算、...

24330
来自专栏沃趣科技

降低保险行业TCO成本最好的方式是……

保险行业升级测试工作较多,此为行业背景。从客户甲了解到,他所在的DBA团队一方面要承担数据库日常维护工作,另一方面也要为业务部门提供测试数据库。除去生产环境的日...

518140
来自专栏EAWorld

微服务框架落地实践之路

在微服务的浪潮下,如何根据企业自身的业务特点,合理的运用开源技术落地微服务架构成为关键。本文作者认为,在实施微服务架构的过程中,结合企业自身业务特点落地的微服务...

42280
来自专栏京东技术

看京东系统架构师如何让笨重的架构变得灵巧

43590

扫码关注云+社区

领取腾讯云代金券