安装OSDLyrics让Deadbeef完美显示歌词

先前写过《让Deadbeef支持GBK标签,彻底解决中文乱码问题,增加歌词显示》一文,当时用的是deadbeef-mpris插件配合lrcShow-X这个python写的歌词显示软件。不过lrcShow-X有个不好的地方,那就是在deadbeef中切换了歌曲之后,歌词显示不会自动切换(也就是说它不能检测到当前播放的歌曲已经不是最首先播放的那一首了),还有就是歌词很多时候不能自动下载。缺点归缺点,还是非常感谢lrcShow-X的作者付出的劳动。
这里我要介绍另外一款能让deadbeef完美显示歌词的小软件:OSDLyrics
项目地址:https://github.com/osdlyrics/osdlyrics
osdlyrics作者博客:http://sarlmolapple.is-programmer.com/

它可以自动根据歌曲的idv3等信息下载歌词。并且,在deadbeef中切换歌曲之后也能马上检测得到这种变化,自动显示对应的歌词。
显示效果也非常好,可以说是我目前用过的最完美的歌词显示软件了。

安装osd-lyrics

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
git clone git@github.com:ihacklog/osdlyrics.git ~/build/osdlyrics
cd ~/build/osdlyrics
┌─[admin@huangye] - [~/build/osdlyrics] - [Thu May 10, 12:56]

└─[$]  ./autogen.sh

configure.ac:25: installing './compile'

configure.ac:52: installing './config.guess'

configure.ac:52: installing './config.sub'

configure.ac:12: installing './missing'

automake: warnings are treated as errors

/usr/share/automake-1.12/am/library.am: warning: 'libchardetect.a': linking libraries using a non-POSIX

/usr/share/automake-1.12/am/library.am: archiver requires 'AM_PROG_AR' in 'configure.ac'

lib/chardetect/Makefile.am:1:   while processing library 'libchardetect.a'

lib/chardetect/Makefile.am: installing './depcomp'

autoreconf: automake failed with exit status: 1

发现运行autogen出错了。

修改 configure.ac

增加

1
2
3
4
5
# automake 1.12 seems to require this, but automake 1.11 doesn't recognize it

m4_pattern_allow([AM_PROG_AR])

AM_PROG_AR

参考:https://github.com/keithw/mosh/commit/e70254bad52bed809105a6c56e2f1e52643d329c
如果不想自己修正bug的,可用我的修改版:

修改版项目地址 https://github.com/ihacklog/osdlyrics

已经向作者提交pull request了,不过作者貌似很忙,目前为止还没有merge进去。

然后三步曲:

1
2
3
./configure --prefix=/usr/local
make
sudo make install

连接DeaDBeeF和osd-lyrics

这里是用到了dbus.
osd-lyrics通过DBus与播放器通信,实现同步显示歌词。DeaDBeeF没有提供DBus接口,因此无法与osd-lyrics进行通信,也就无法通过osd-lyrics同步显示歌词。要想将两者连接起来,可以通过下面的方法:
首先,让DeaDBeeF支持DBus接口。可以通过安装MPRIS插件实现。MPRIS是 Media Player Remote Interfacing Specification,是Linux下媒体播放器交互的一个协议,具体可参考这里(http://xmms2.org/wiki/MPRIS)和这里(http://www.mpris.org/2.1/spec/)。
osd-lyrics使用MPRIS协议同播放器进行通信。
deadbeef-mpris下载地址:

http://sourceforge.net/projects/deadbeef-mpris/

https://code.google.com/p/deadbeef-mpris-plugin

1
2
3
./configure --prefix=你编译deadbeef时的PREFIX
make
sudo make install

然后在终端下运行deadbeef看mpris插件是否成功加载。

loading plugin /usr/local/lib/deadbeef/mpris.so
MPRIS Debug Info: Load…
MPRIS Debug Info: MPRIS V1 Starting…
MPRIS Debug Info: MPRIS V2 Starting…
MPRIS Debug Info: name acquired: org.mpris.deadbeef
MPRIS Debug Info: name acquired: org.mpris.MediaPlayer2.deadbeef

如果看到类似上面的信息,说明此插件已经成功加载。

然后打开 osdlyrics ,配置一下默认启动时打开deadbeef.也可以手动修改osdlyrics的配置文件,其位置在~/.config/osdlyrics 目录。
歌词保存在:

~/.lyrics 和歌曲当前目录

可通过修改osdlyrics.conf或在图形配置界面修改。
默认启动deadbeef:

startup-player=/usr/local/bin/deadbeef %F
osd模式时改变歌词位置:
右击osdlyrics托盘区图标,取消 Lock Postion 选项,然后移动歌词位置,再勾选上此选项。

再在桌面上增加deadbeef的启动项:
命令行指向:

1
/usr/local/bin/osdlyrics

显示效果:

环境: Archlinux + Xfce4 ,deadbeef 0.5.4

============================================================================
另外官方有一infobar插件,不过功能不如osdlyrics

https://bitbucket.org/dsimbiriatin/deadbeef-infobar/wiki/Home

其歌词显示依赖于deadbeef 窗体。
要通过view->infobar 调出来显示。
并且,歌词搜索和演唱者信息的搜索对中文不太友好。

更多
No Responses Post a comment

Leave a Reply

Note: You may use basic HTML in your comments. Your email address will not be published.

Subscribe to this comment feed via RSS