FeelUOwn 是一款基于 Python 开发的开源音乐播放器,支持主流音乐播放功能,能在Windows、Mac、Linux等系统上运行,通过插件支持全网的各种免费音乐资源库(比如 YouTube Music),自带 AI 电台和自然语言转歌单。
FeelUOwn 能一键安装在 Arch Linux、Windows、macOS 等系统上,提供桌面歌词、资源智能替换、多音质选择、nowplaying 协议等功能,集成 AI 电台、自然语言转歌单等功能,提升音乐发现体验,支持基于 TCP 的交互控制协议、文本歌单分享同步,基于 Python 的配置文件 .fuorc
。
安装 FeelUOwn 主要分为两步:安装 libmpv 和安装 FeelUOwn 和依赖的 Python 包。
1、安装 libmpv:通常可通过系统包管理器安装,如 Debian Linux 使用 apt-get install libmpv1
,macOS 使用 brew install mpv
2、安装 Python 包管理工具:如 pipx,Debian 系可通过 apt-get install pipx
安装
3、安装 FeelUOwn:使用 pipx 安装并指定所需功能模块
# Linux 用户
pipx install feeluown[battery,ai,cookies,webengine,qt]-v
# macOS 用户(建议使用 Python 3.10/3.11)
pipx install feeluown[battery,ai,cookies,webengine,qt,macos] --python `which python3.11`-v
# Windows 用户
pipx install feeluown[battery,ai,cookies,webengine,qt,win32] --python `which python3.11`-v
yay -S feeluown # 安装稳定版,最新版使用 feeluown-git
yay -S feeluown-netease # 按需安装扩展
yay -S feeluown-ytmusic
yay -S feeluown-bilibili
brew tap feeluown/feeluown
brew install feeluown --with-battery
feeluown genicon # 在桌面生成图标
1、从 https://github.com/feeluown/FeelUOwn/releases
下载预打包压缩包
2、手动安装步骤:
• 安装 Python 3(勿从应用商店安装)
• 下载 mpv-1.dll 并放入 C:\Windows\System32
目录
• 在 cmd 中运行 pip3 install PyQt5 -i https://pypi.douban.com/simple
• 运行 pip3 install feeluown[battery,win32]
• 运行 python -m feeluown genicon
生成桌面图标
启动 FeelUOwn 有多种方式:
• 直接双击桌面图标,启动 GUI/Daemon 混合模式
• 在命令行中运行 feeluown
,同样为混合模式
• 运行 feeluown -nw
,以 Daemon 模式启动
Daemon 模式适合命令行操作,以下是基本命令:
feeluown -nw # 以 Daemon 模式启动
fuo status # 查看播放器状态
fuo search 周杰伦 # 搜索歌曲
fuo play fuo://netease/songs/470302665 # 播放指定歌曲
# 若熟悉 NetCat 工具
nc localhost 23333 # 连接到播放器
status # 查看状态
fuo play fuo://netease/songs/470302665 # 播放音乐
FeelUOwn 的配置文件 .fuorc
位于 ~/.fuorc
,是一个 Python 脚本,类似 Vim 的 .vimrc
或 Emacs 的 init.el
。启动时会加载该文件,允许用户通过 Python 语法完全控制播放器的行为,实现配置选项修改和功能定制。
以下是一个简单的 .fuorc
示例,展示如何配置主题、收藏目录和添加歌曲切换通知:
import os
# 自定义配置
config.THEME = 'dark'
config.COLLECTIONS_DIR = '~/Dropbox/public/music'
config.AUDIO_SELECT_POLICY = '>>>'
# 切换歌曲时发送系统通知
def notify_song_changed(song):
if song is not None:
title = song.title_display
artists_name = song.artists_name_display
song_str = f'{title}-{artists_name}'
os.system(f'notify-send "{song_str}"')
when('app.playlist.song_changed', notify_song_changed)
名称 | 类型 | 默认值 | 描述 |
---|---|---|---|
RPC_PORT | int | 23333 | RPC 服务端口 |
PUBSUB_PORT | int | 23334 | PUBSUB 服务端口 |
ALLOW_LAN_CONNECT | bool | False | 是否允许局域网连接 RPC 服务 |
THEME | str | auto | 主题模式(auto/light/dark) |
COLLECTIONS_DIR | str | '' | 本地收藏所在目录 |
LOG_TO_FILE | bool | True | 是否将日志输出到文件 |
AUDIO_SELECT_POLICY | str | hq | 音频质量选择策略 |
VIDEO_SELECT_POLICY | str | hd | 视频质量选择策略 |
NOTIFY_ON_TRACK_CHANGED | bool | False | 切换歌曲时显示桌面通知 |
NOTIFY_DURATION | int | 3000 | 桌面通知保留时长(ms) |
PROVIDERS_STANDBY | list | None | 候选歌曲提供方 |
名称 | 类型 | 默认值 | 描述 |
---|---|---|---|
ENABLE_WEB_SERVER | bool | False | 开启 WEB 服务 |
WEB_PORT | int | 23332 | WEB 服务端口 |
ENABLE_NEW_HOMEPAGE | bool | False | 开启新版主页 |
ENABLE_MV_AS_STANDBY | bool | True | 使用 MV 作为歌曲资源 |
PLAYBACK_CROSSFADE | bool | False | 开启淡入淡出播放 |
PLAYBACK_CROSSFADE_DURATION | int | 500 | 淡入淡出持续时间 |
使用 AI 助手需完成两步:
1、安装 OpenAI Python 包:
pipx inject feeluown openai
2、配置 API Key 和相关参数(以 DeepSeek 为例):
config.OPENAI_API_BASEURL = 'https://api.deepseek.com'
config.OPENAI_MODEL = 'deepseek-chat'
config.OPENAI_API_KEY = '---你的 API KEY---'
通过 add_hook
(别名 when
)函数可监听程序事件,实现功能定制,常见事件包括:
• app.player.metadata_changed
:歌曲元信息变化时(通常在歌曲切换时)
• app.initialized
:应用初始化完毕(未启动)
• app.started
:应用已启动
• app.ui.songs_table.about_to_show_menu
:右键显示歌曲菜单时
通过编写 Python 函数并绑定事件,可实现自定义功能,如通知提醒、界面调整等。