python 实现的豆瓣电台播放器
尽管官方豆瓣FM没有开发 Linux 客户端,却不乏第三方的豆瓣FM客户端。 如 zonyitoo 的 doubanfm-qt (感谢 zonyitoo 整理的文档)。那么我为什么还要重复造轮呢?
- 我需要一个能完全模拟豆瓣FM行为,能与 linux 桌面整合,简单的豆瓣FM客户端
- 出于学习的目的,我想自己能亲自设计并实现一个豆瓣FM客户端
- 集成通知中心,系统托盘,Launcher
- 完全模拟豆瓣FM行为
- 支持下载
- 支持登录
- 支持频道选择
- 支持码率设置(暂不支持实时生效,设置后从下一首歌开始生效)
- 多终端支持,提供 Gtk、命令行客户端
- python-requests # http 请求库
- python-eyed3 # mp3 标签库
- python-twisted # tcp server
- python-gst-1.0 # 播放模块
- python-colorama # 终端彩色 print
- imagemagick # 图片转换 convert
作者常用的操作系统是 Ubuntu 最新版,当然,其他 Linux 发行版也基本可以保证支持(主要是解决依赖)。 至于 OS X,原则上是可以支持的,关键是 pygtk3 和 gst1.0 的安装。Windows 同理,但依赖的解决更为困难。 以 Ubuntu 为例,运行以下命令:
$ sudo apt-get install python-requests python-eyed3 python-twisted python-gst-1.0 python-colorama imagemagick
在项目目录下运行 install.sh
会创建启动项,这样,你就可以在所有程序里启动豆瓣FM。
你也可以直接从命令行启动,运行 ./doubanfm/gtk.py
或 python -m doubanfm.gtk
install.sh
会生成启动菜单项,Ubuntu Unity 桌面下可以直接通过右键菜单进行控制
提供面板指示器
提供桌面通知
如果你是一个 geek,或许会喜欢命令行
我使用 C/S 模式隔离了播放服务和控制客户端,这使得多个不同的终端可以共存,甚至不使用客户端也是可以的
不管在哪一端进行控制,所有的客户端都会得到反馈
下载的歌曲会写入完整的 mp3 标签