youtube-music-cli-mcp
[!IMPORTANT] 这是 involvex/youtube-music-cli 的非官方分支,添加了本地 stdio MCP 服务器。它与上游、YouTube 或 Google 均无关联。此自定义分支从源码构建,并非上游宣传的 npm 包。
MCP 的安装、工具、权限和客户端配置请参阅 mcp/README.md。
🎵 youtube-music-cli
一款功能强大的 YouTube Music 终端用户界面(TUI)音乐播放器
功能特性
🎨 精美的 TUI - 基于 React 和 Ink 构建的丰富终端界面
🔍 搜索 - 查找歌曲、专辑、艺术家和播放列表
📋 队列管理 - 构建和管理你的播放队列
❤️ 收藏 - 按
f将曲目标记为收藏,按Shift+F查看收藏🔀 随机播放与循环 - 多种播放模式
🎚️ 音量控制 - 精细的音量调节
💡 智能推荐 - 发现相关曲目
🎨 主题 - 深色、浅色、午夜、矩阵主题
🔌 插件系统 - 通过插件扩展功能
⌨️ 键盘驱动 - 高效的 vim 风格导航
🖥️ 沉浸模式 - 带音频可视化器和迪斯科效果的全屏 Windows TUI
💾 下载 - 使用
Shift+D保存曲目/播放列表/艺术家🏷️ 元数据标签 - 自动标记标题/艺术家/专辑,可选封面图
⚡️ Shell 补全 -
ymc completions <bash|zsh|powershell|fish>输出可 source 或保存的脚本,使 CLI(也可作为ymc使用)能够对子命令和标志进行 Tab 补全
Related MCP server: ytm-mcp
支持上游项目
如果你觉得 youtube-music-cli 有用,请考虑支持上游项目的开发:
你的支持有助于这个项目保持活力并不断改进!
路线图
访问 SUGGESTIONS.md 查看完整的待办事项,并使用 docs/roadmap.md 了解当前的实现重点(交叉淡入淡出 + 无缝播放)以及均衡器/增强功能的后续计划。路线图文档还说明了如何接手工作,以便审阅者和贡献者保持一致。
前置要求
必需:
安装前置要求
# With Scoop
scoop install mpv yt-dlp
# With Chocolatey
choco install mpv yt-dlpbrew install mpv yt-dlp# Ubuntu/Debian
sudo apt install mpv
pip install yt-dlp
# Arch Linux
sudo pacman -S mpv yt-dlp
# Fedora
sudo dnf install mpv yt-dlp安装
Node.js(推荐)
需要已安装 Node.js 18+。
npm install -g @involvex/youtube-music-cliBun
bun install -g @involvex/youtube-music-cliHomebrew
brew tap involvex/youtube-music-cli https://github.com/involvex/youtube-music-cli.git
brew install youtube-music-cliGitHub Releases
https://github.com/involvex/youtube-music-cli/releases安装脚本(bash)
curl -fssl https://raw.githubusercontent.com/involvex/youtube-music-cli/main/scripts/install.sh | bash安装脚本(PowerShell)
iwr https://raw.githubusercontent.com/involvex/youtube-music-cli/main/scripts/install.ps1 | iex从源码安装
git clone https://github.com/involvex/youtube-music-cli.git
cd youtube-music-cli
# With bun (recommended for development)
bun install
bun run build
bun link
# With npm
npm install
npm run build
npm link使用方法
交互模式
启动 TUI:
youtube-music-cliCLI 命令
# Play a specific track
youtube-music-cli play <video-id|youtube-url>
# Search for music
youtube-music-cli search "artist or song name"
# Play a playlist
youtube-music-cli playlist <playlist-id>
# Get suggestions based on current track
youtube-music-cli suggestions
# Playback control
youtube-music-cli pause
youtube-music-cli resume
youtube-music-cli skip
youtube-music-cli back沉浸模式(Windows)
启动全屏可视化播放器,支持真实播放、队列控制和音频可视化。需要 mpv 和 yt-dlp(与正常播放相同)。
# Standard immersive mode
youtube-music-cli --win32
# Search and play immediately
youtube-music-cli --win32 --search "artist song"
# With disco mode enabled
DISCO_MODE=true youtube-music-cli --win32
# Standalone Windows binary (Bun compile)
bun run build:win32
dist/ymc-win32.exe沉浸模式快捷键:
按键 | 操作 |
| 打开搜索覆盖层 |
| 循环切换搜索类型(查询视图) |
| 编辑艺术家筛选器 |
| 编辑专辑筛选器 |
| 音量增加(+5%,播放器视图) |
| 音量降低(-5%,播放器视图) |
| 增加搜索结果限制(查询视图) |
| 减少搜索结果限制(查询视图) |
| 下载选中的搜索结果 |
| 播放 / 暂停 |
| 切换收藏(当前曲目或搜索) |
| 音乐库菜单(播放列表、收藏) |
| 打开已保存的播放列表选择器 |
| 播放所有收藏 |
| 切换随机播放 |
| 循环切换(关闭 → 全部 → 单曲) |
| 打开设置覆盖层(WT 上也可用 Ctrl+,) |
| 从搜索结果创建混音(结果视图) |
| 切换迪斯科模式 |
| 导航列表(覆盖层) |
| 上一首 / 下一首曲目 |
| 选择 / 播放(覆盖层) |
| 返回 / 关闭覆盖层 |
| 退出沉浸模式 |
| 强制退出 |
页脚在第一行显示随机播放/循环/迪斯科状态,在第二行显示优先快捷键。可从音乐库菜单(L)随机播放收藏。右键单击系统托盘图标可访问设置或退出(使用 assets/icon.ico)。
在 Windows 上使用 Bun 运行时,即使终端未聚焦,全局媒体键(Alt+媒体键)也可正常工作。
沉浸播放故障排查
显示曲目信息但时间不前进 / 没有音频: 按
Space恢复播放。沉浸模式会自动启动上次的会话;如果 mpv 被外部暂停(屏幕共享、焦点丢失),UI 现在会同步到PAUSED状态 — 再次按Space。屏幕共享(Discord、Teams、OBS): 远程观看者通常听不到你电脑的音频,除非你启用"共享电脑声音"/系统音频捕获。这是 Windows 捕获的限制,并非播放器只将音频路由给你。
需要 Bun 才能使用 Win32 原生功能: 全局热键和原生控制台标题通过 Bun 使用
@bun-win32/*。使用bun run dev:win32或编译后的ymc-win32.exe二进制文件运行。
Shell 补全
通过随 CLI 附带的轻量级 ymc 别名生成 shell 补全辅助脚本。运行 ymc completions <bash|zsh|powershell|fish> 为你的 shell 打印补全脚本,然后 source 它或将其持久化到你的配置文件中:
# Bash
source <(ymc completions bash)
ymc completions bash >> ~/.bash_completion
# Zsh
source <(ymc completions zsh)
# PowerShell
ymc completions powershell | Out-File -Encoding utf8 $PROFILE
Invoke-Expression (ymc completions powershell)
# Fish
ymc completions fish > ~/.config/fish/completions/ymc.fish如果你使用别名或脚本名称全局安装了 CLI,请确保在生成补全之前 ymc 指向同一个二进制文件,以便脚本与你的安装路径匹配。
选项
标志 | 短标志 | 描述 |
|
| 主题: |
|
| 初始音量(0-100) |
|
| 启用随机播放模式 |
|
| 循环模式: |
| 无 TUI 运行 | |
| 沉浸式全屏模式(仅限 Windows) | |
|
| 显示帮助 |
示例
# Launch with matrix theme at 80% volume
youtube-music-cli --theme=matrix --volume=80
# Search and play in headless mode
youtube-music-cli search "lofi beats" --headless
# Play with shuffle enabled
youtube-music-cli play dQw4w9WgXcQ --shuffle键盘快捷键
全局
按键 | 操作 |
| 显示帮助 |
| 搜索 |
| 插件管理器 |
| 收藏视图 |
| 推荐 |
| 设置 |
| 返回 |
| 退出 |
播放
按键 | 操作 |
| 播放 / 暂停 |
| 下一首曲目 |
| 上一首曲目 |
| 快进 10 秒 |
| 快退 10 秒 |
| 音量增加 |
| 音量降低 |
| 切换收藏 |
| 切换随机播放 |
| 循环切换循环模式 |
导航
按键 | 操作 |
| 上移 |
| 下移 |
| 选择 |
| 返回 |
下载
按键 | 操作 |
| 下载选中的歌曲/艺术家/播放列表或播放列表视图 |
插件
使用插件扩展 youtube-music-cli!
管理插件
TUI 模式: 按 p 打开插件管理器。
CLI 模式:
# List installed plugins
youtube-music-cli plugins list
# Install from default repository
youtube-music-cli plugins install adblock
# Install from GitHub URL
youtube-music-cli plugins install https://github.com/user/my-plugin
# Enable/disable
youtube-music-cli plugins enable my-plugin
youtube-music-cli plugins disable my-plugin
# Update
youtube-music-cli plugins update my-plugin
# Remove
youtube-music-cli plugins remove my-plugin可用插件
插件 | 描述 |
| 屏蔽广告和赞助内容 |
| 显示同步歌词 |
| 提交到 Last.fm |
| Discord Rich Presence 集成 |
| 曲目切换时的桌面通知 |
开发插件
# Start from a template
cp -r templates/plugin-basic my-plugin
cd my-plugin
# Edit plugin.json and index.ts
# Install for testing
youtube-music-cli plugins install /path/to/my-plugin配置
配置存储在 ~/.youtube-music-cli/config.json:
{
"theme": "dark",
"volume": 70,
"shuffle": false,
"repeat": "off",
"streamQuality": "high",
"downloadsEnabled": false,
"downloadDirectory": "D:/Music/youtube-music-cli",
"downloadFormat": "mp3"
}流质量
质量 | 描述 |
| 64kbps - 节省带宽 |
| 128kbps - 均衡 |
| 256kbps+ - 最佳质量 |
下载设置
在设置(
,)中启用/禁用下载。在设置 → 下载文件夹中设置下载目录。
在设置 → 下载格式中选择格式(
mp3或m4a)。下载文件保存为:
<downloadDirectory>/<artist>/<album>/<title>.mp3(或.m4a)
MP3/M4A 文件会标记元数据(
title、artist、album),并在可用时包含封面图。
故障排查
找不到 mpv
确保 mpv 已安装并在 PATH 中:
mpv --version启动时,CLI 现在会检查 mpv 和 yt-dlp。在交互式终端中,它可以提示自动运行安装命令(需先明确确认)。
没有音频
检查音量是否被静音(按
=增加)验证 yt-dlp 是否正常工作:
yt-dlp --version尝试播放其他曲目
TUI 渲染问题
如果渲染异常,请尝试调整终端窗口大小或重启应用。
插件未加载
检查
plugin.json语法是否有效验证插件是否已启用:
youtube-music-cli plugins list检查日志中的错误
贡献
欢迎贡献!
Fork 仓库
创建功能分支:
git checkout -b feature/my-feature进行你的修改
运行测试:
bun run test提交:
git commit -m 'feat: add my feature'推送:
git push origin feature/my-feature打开 Pull Request
开发
# Install dependencies
bun install
# Run in development mode
bun run dev
# Build
bun run build
# Lint and format
bun run lint:fix
bun run format
# Type check
bun run typecheck技术栈
运行时: Node.js 18+ / Bun
UI 框架: Ink(用于 CLI 的 React)
语言: TypeScript
音频: mpv + yt-dlp
API: YouTube Music Innertube API
许可证
MIT © Involvex
为音乐爱好者用心打造 ❤️
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP server for Yoto: manage cards, tracks, icons and family devices from any MCP client.
YouTube MCP — wraps the YouTube Data API v3 (BYO API key)
YouTube transcripts, search, channel browsing, and playlists for AI agents via MCP.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Related MCP Servers
- AlicenseBqualityDmaintenanceA simple MCP server that allows AI assistants like Cursor or Claude Desktop to search for and play tracks on YouTube Music through natural language commands.221 npm12MIT
- FlicenseNot gradedqualityDmaintenanceA full-featured YouTube Music MCP server that lets AI assistants control playback, browse history, download songs, and manage playlists via natural language.1-
- AlicenseAqualityDmaintenanceMCP server for controlling the mpv media player, enabling playback control, music library browsing, YouTube streaming and downloading, and metadata editing from within an MCP client.1746 npm1MIT
- FlicenseNot gradedqualityDmaintenanceMCP server for YouTube Music that enables searching songs and artists, managing playlists, and authenticating via Google OAuth, using STDIO transport.-