musikcube

clangenBSD-3-Clause更新放缓

跨平台终端音乐播放器,自带音频引擎、元数据索引和流媒体服务器,适合喜欢在命令行里管理和播放本地音乐库的人。

a cross-platform, terminal-based music player, audio engine, metadata indexer, and server in c++

3.0.5发布于 2025-09-21 07:16 UTC4,862star +2 / 7 天322fork同步于 2026-11-10 23:38 UTC

怎么上手

由 README 提炼,执行前请确认
brew install musikcube
硬件要求按 README 说明

README 未说明具体显存或 CPU 要求,仅说明可在 Windows、macOS、Linux 及树莓派 Raspbian 上编译运行

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

跨平台终端音乐播放器,自带音频引擎、元数据索引和流媒体服务器

跨平台终端音乐播放器,自带音频引擎、元数据索引和流媒体服务器,适合喜欢在命令行里管理和播放本地音乐库的人。

核心能力

  • 在终端里运行,支持 Windows、macOS、Linux 和树莓派
  • 内置音频引擎与元数据索引,可管理本地音乐库
  • 默认开启流媒体服务器,可向客户端推送音频
  • 提供纯虚 C++ SDK,方便编写自定义前端
  • 可用 musikdroid 安卓应用远程控制与串流

容易踩的坑

默认服务器仅适合局域网使用,不支持 SSL/TLS 且密码明文存储;流媒体服务默认占用 7905(websocket)和 7906(http)端口;从源码编译需按 wiki 构建说明准备依赖

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本3.0.5
  1. 3.0.5musikcube 3.0.5最新正式版2025-09-21 · 2025-09-21 07:16 UTC

    musikcube 3.0.5

  2. 3.0.4musikcube 3.0.42024-07-14 · 2024-07-14 20:56 UTC
    查看更新说明

    musikcube 3.0.4

    • add ffmpeg 6.x backwards compatibility (@barracuda156)
    • improved LastFM support (@al1-ce)
    • fix build on DragonFly BSD (@alexax66)
  3. 3.0.3musikcube 3.0.32024-07-05 · 2024-07-05 20:58 UTC
    查看更新说明

    musikcube 3.0.3

  4. 3.0.2musikcube 3.0.22023-09-11 · 2023-09-11 05:19 UTC
    查看更新说明

    musikcube 3.0.2

    • added sqlean/unicode sqlite extension (and remove custom mapping logic) for improved non-Latin, case-insensitive unicode filter/search.
    • read rating field from metadata while indexing (make sure to do a full re-index if this interests you: ^R -> rebuild library)
    • fixed bug where aac files with id3v2 tags were not getting parsed correctly
    • fixed a bug where we may incorrectly use the track's filename/uri instead of title field during indexing.
    • fixed 64-bit RPM architecture value (was amd64, but should be x86_64)
    • updated musikdroid to latest version of Android Studio and external dependencies (anecdotally improving Opus playback reliability)
    • updated to [email protected], [email protected], [email protected] and [email protected] on unix platforms
    • re-wrote raspberry-pi/arm cross-compiling functionality to be more generic and use more well-maintained toolkits.
    • added armv6 builds for Raspberry Pi Zero (and other similar devices)
    • added x86 Linux builds
    • tweaked release filenames to be consistent across all platforms (musikcube_<version>_<os>_<arch>)
  5. 3.0.1musikcube 3.0.12023-05-27 · 2023-05-27 19:19 UTC
    查看更新说明

    musikcube 3.0.1

    • fixed a bug where album artist (and potentially other) metadata values were being double encoded.
    • fixed a bug where re-arranging the play queue may cause unnecessary i/o.
    • fixed bug where rpm architecture was incorrect for armhf builds.
    • updated asio to 1.28.0

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    musikcube

    a cross-platform, terminal-based audio engine, library, player and server written in c++.

    musikcube compiles and runs easily on windows, macos and linux. it also runs well on a raspberry pi with raspbian, and can be setup as a streaming audio server.

    check out the installation guide to get up and running.

    be sure to also read through a the user guide, which describes app's navigation paradigm and lists all the default keyboard shortcuts.

    if you want to build it from source, the instructions are here.

    screenshots

    it looks something like this on windows:

    windows screenshot

    and this on macos:

    osx screenshot

    and on linux:

    linux screenshot

    here's a demo (made with asciinema):

    asciicast

    while the main musikcube app runs in the console, you can also stream audio from (and even remote control) musikcube using the musikdroid android app, which can be downloaded in the releases section above. it looks like this:

    android screenshot

    installation

    binaries are available in the releases page.

    while macos binaries are provided, you can also install via homebrew as follows:

    • brew install musikcube

    on freebsd musikcube can be installed as follows:

    • pkg install musikcube

    on openbsd musikcube can be installed as follows:

    • pkg_add install musikcube

    on windows, you can install via chocolatey:

    • choco install musikcube

    then run using shell, Win+R dialog or by typing in Start Menu musikcube or mcube.

    raspberry pi

    musikcube runs well on a raspberry pi, connected to your home stereo. see here for detailed setup instructions.

    compiling

    if you'd like to compile the project yourself, you can check out the build instructions.

    keyboard shortcuts

    a list of all keyboard shortcuts can be found in the user guide

    streaming server

    musikcube ships with a streaming audio server enabled by default. it runs a websocket server on port 7905, used for metadata retrieval. an http server runs on port 7906, and is used to serve (optionally transcoded) audio data to clients.

    it's important to understand that, out of the box, the server (and remote api) should NOT be considered safe for use outside of a local network. the websockets service only supports a simple password challenge, and the audio http server just handles Basic authorization. it does not provide ssl or tls. the server also stores the password in plain text in a settings file on the local machine.

    you can fix some of this using a reverse proxy to provide ssl termination. details in the ssl-server-setup section. while this improves things, you should exercise caution exposing these services over the internet.

    if you're interested in writing your own frontend, api documentation is available here.

    sdk

    the musikcube sdk is a set of small, pure-virtual c++ classes and a handful of enums and constants. they're still in the process of being slimmed down. you can see what they currently look like here: https://github.com/clangen/musikcube/tree/master/src/musikcore/sdk

    dependencies

    musikcube would not be possible without the following excellent free, open source, and (in the case of some macos and win32 APIs) non-free projects and libraries:

    coredecodersoutputsmetadatanetworkingmiscellaneousui
    sqliteffmpegalsataglibwebsocketpprxjavancurses
    utfcpplibopenmptpulseaudioglidelibmicrohttpdrxandroidpdcurses (win32a variant)
    nlohmann jsonlibgmecore audiolibcurlstethorecycler-fast-scroll
    kissfftexoplayerwasapiopensslfabric
    sigslotdirectsoundnv-websocket-clientAndroidVideoCache
    wcwidth.cwaveoutokhttp
    pipewire

    license

    Copyright (c) 2004-2023 musikcube team
    
    All rights reserved.
    
    Redistribution and use in source and binary forms, with or without
    modification, are permitted provided that the following conditions are met:
    
     * Redistributions of source code must retain the above copyright notice,
       this list of conditions and the following disclaimer.
    
     * Redistributions in binary form must reproduce the above copyright
       notice, this list of conditions and the following disclaimer in the
       documentation and/or other materials provided with the distribution.
    
     * Neither the name of the author nor the names of other contributors may
       be used to endorse or promote products derived from this software
       without specific prior written permission.
    
    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
    LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
    CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
    SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
    INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
    CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
    ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
    POSSIBILITY OF SUCH DAMAGE.