#podcast #youtube #music #music-player #tui #terminal

app termusic

使用Rust编写的终端音乐和播客播放器。可以从YouTube(网易/咪咕/酷狗)下载音乐,然后将歌词和专辑照片嵌入到mp3/m4a/flac/wav/ogg vorbis文件中。

64个版本

0.9.1 2024年8月21日
0.9.0 2024年3月24日
0.7.11 2023年7月10日
0.7.9 2023年2月16日
0.2.11 2021年7月16日

#24 in 音频

Download history 6/week @ 2024-05-03 8/week @ 2024-05-17 17/week @ 2024-05-24 20/week @ 2024-05-31 19/week @ 2024-06-07 12/week @ 2024-06-14 12/week @ 2024-06-21 6/week @ 2024-06-28 8/week @ 2024-07-05 15/week @ 2024-07-12 8/week @ 2024-07-19 7/week @ 2024-07-26 10/week @ 2024-08-02 18/week @ 2024-08-09 156/week @ 2024-08-16

每月192次下载

MITGPL-3.0+

2MB
41K SLoC

Build status crates.io dependency status MSRV

使用Rust编写的终端音乐和播客播放器

免费收听音乐和播客!

Main view Tag editor

自由:随着时间的推移,在线服务提供商几乎控制了我们所听的一切。复杂的版权问题使情况变得更糟。如果我的最喜欢的歌曲在网站上找不到,我可能几十年都不会听它们。

免费:您可以免费从YouTube、网易、咪咕和酷狗下载。无需注册每月付费会员。

作为GOMU的贡献者,我在开发过程中遇到了严重的问题。主要问题是数据竞争条件。因此,我重新编写了播放器,希望解决这个问题。

支持格式

以下是各种后端支持的音频格式。

如果不受支持元数据,将尝试播放文件。

格式 (feature) Symphonia (rusty) Mpv (mpv) Gstreamer (gst) 元数据
ADTS
AIFF
FLAC
M4a
MP3
Opus
Ogg Vorbis
Wav
WebM 是(opus不受支持)
MKV 是(取决于编解码器)

默认后端: rusty

安装

要求

MSRV

您需要使用稳定的Rust工具链进行构建。最小支持的Rust版本1.77.0。

git

git 将需要用于构建软件包。

=======

后端 要求
Symphonia 您需要安装 ALSA 以支持Symphonia解码。
请注意,需要ALSA开发文件。这些文件在Debian和Ubuntu发行版中作为libasound2-dev软件包的一部分提供,在Fedora上为alsa-lib-devel
此外,还需要soundtouchclang(仅限构建)。
GStreamer GStreamer
MPV MPV

Protobuf

这是构建和运行termusic所必需的。对于Ubuntu:apt-get protobuf-compiler,对于Arch:paru -S protobuf

Dbus

目前,use_dbus是一个配置选项,但它是编译所必需的。对于Ubuntu:apt-get libdbus-1-dev,对于Arch:paru -S dbus

Yt-dlp支持

您可以选择安装yt-dlpFFmpeg,以便从YouTube下载MP3文件。

专辑封面支持

对于kitty,专辑封面支持是默认的。对于其他终端,需要安装ueberzug/ueberzugpp,并编译cover功能标志。

软件包

请注意,这些将使用symphonia后端进行编译。

Arch Linux

Arch Linux用户可以使用AUR中的AUR辅助工具安装termusic

paru termusic

NetBSD

NetBSD用户可以从官方仓库安装termusic

pkgin install termusic

Nix/NixOS

在用户的环境内

nix-env --install termusic

或在/etc/nixos/configuration.nix中声明性定义

{
    environment.systemPackagess = with pkgs; [
      ...
      termusic
    ];
}

Cargo

cargo install termusic termusic-server --locked

从源代码安装

git clone https://github.com/tramhao/termusic.git
cd termusic
make

然后使用以下命令安装

make install

默认情况下,termusic可以在Kitty或iTerm2(mac,未测试)上显示专辑封面。如果需要在其他终端上显示专辑封面,请安装ueberzugueberzugpp,然后

make full

最后,您可以运行它

~/.local/share/cargo/bin/termusic

您可以将它复制到$PATH中的任何位置。TUI的配置文件位于~/.config/termusic/tui.toml,服务器的配置文件位于~/.config/termusic/server.toml(或者在macOS上,分别为~/Library/Application Support/termusic/tui.toml~/Library/Application Support/termusic/server.toml)。但是,由于这是一个简约程序,您不需要编辑配置文件,几乎所有设置都可以从应用程序中进行。

待办事项

  • 改进歌词时间戳调整界面。
  • 评分和同步支持。
  • 多个根和轻松切换。
  • 保存播放列表。
  • 收听RSS源/Podcasts。需要新的布局。

贡献和问题 🤝🏻

欢迎贡献、错误报告、新功能问题和疑问!😉如果您有任何疑问或担忧,或您想建议新功能,或只是想改进termusic,请随时打开一个问题或PR。

请遵循我们的贡献指南

贡献者

hasezoey

谢谢

许可证

主代码部分使用MIT许可证。在src/lyric/netease下的NetEase API代码使用GPLv3许可证。来自netease-cloud-music-gtk。在src/podcast下的Podcast代码使用GPLv3许可证。来自shellcaster。

依赖关系

~57–93MB
~1.5M SLoC