具有自动更新库的无 GUI 音乐播放器

sil*_*sil 6 music software-recommendation media

我已经到了想要编写自己的音乐播放器的地步(这对我们所有人来说都是如此)。但是,我想做的所有事情都是基于 UI 的;重新实现管理库、读取 ID3 标签、创建播放列表等对我来说是愚蠢的。因此,我正在寻找一种音乐播放器,它不显示 UI(或可以隐藏该 UI),以便我可以实现自己的完全自定义的 UI,而无需构建所有基础设施。这个“底层”音乐播放器可能是一个带有远程控制套接字协议的curses接口;它可能是一个带有 Python 绑定的库;它可能是一个 Gtk 应用程序,它可以选择不显示其 GUI 并且可以通过 D-Bus 进行控制......我不知道。

我绝对希望这个“后端”做的事情:

  1. 可通过 Python 程序进行远程控制。(如前所述,我对许多远程控制方法持开放态度;套接字、D-Bus、CLI 工具等等)
  2. 维护一个音乐库——也就是说,扫描我的音乐以获取元数据,并能够通过该元数据来定位音乐(这样我就可以搜索“披头士”并找到曲目,而不仅仅是那些与文件名匹配的曲目)
  3. 监视文件夹中的更改并将这些更改(新文件、更改的文件、删除的文件)加载到库中,而无需被告知这样做
  4. 让我提供我自己的 GUI(因此需要远程控制)

我真的,真的,真的很喜欢但不是绝对必要的事情:

  1. Ubuntu声音菜单集成
  2. 已经为 Ubuntu 打包并在软件中心

I've looked at a few alternatives and rejected them, but I might be wrong: if I'm wrong about any of these, do please correct me.

  • cmus: cannot monitor the library for changes (needs to be prodded with update command). Also, AFAICT the remote control is primarily to make the curses interface do things; it's hard-to-impossible to use the remote control to say "give me a list of all songs matching 'beatles'"
  • mpd (and some client): cannot monitor the library for changes (needs to be prodded with "update" command)
  • moc: cannot monitor the library for changes
  • banshee (and banshee's back end, Nereid (?)): as far as I can tell, can't be controlled by a Python program: I'd need to write my new front end in C#
  • rhythmbox, guayadeque, audacious, quodlibet, clementine, noise, beatbox, deadbeef, gmusicbrowser, xnoise: can't turn the GUI off and replace it with my own

So, I'm looking either for explanations of how to do what I want with the above, or suggestions for alternative tools that I could use instead of those!

Tak*_*kat 5

XMMS2 安装 xmms2

This command line player is a further development from XMMS. It comes with many features such as:

  • play your music.
  • manage your music library
  • use collections to help you organise your music as you like
  • allow you to control it using a variety of clients.
    from the XMMS2 Wiki

There also is a lot of information on how to develop a client for XMMS2.


Another source of information on how things could be done in Python is the Exaile project.