Nuclear - 基于流媒体的隐私优先音乐播放器
Nuclear - 基于流媒体的隐私优先音乐播放器
项目描述
Nuclear是一款专注于从免费来源流媒体播放音乐的桌面应用,具有以下核心特点:
- 隐私优先设计,不进行用户追踪或数据分析
- 无广告干扰的纯净音乐体验
- 支持多平台(Windows/macOS/Linux)
- 内置多种音乐源整合搜索
- 支持Last.fm同步和歌词显示
- 本地音乐库管理功能
功能特性
核心功能
- 从多个免费来源流媒体播放音乐
- :magnifying_glass_tilted_left: 统一搜索多个音乐源
- 支持电台和直播流媒体
- :computer_disk: 本地音乐库扫描和管理
- 内置音频均衡器
- 歌词自动查找和显示
隐私保护
- ️ 无用户追踪或行为分析
- :locked: 不收集个人身份信息
- :prohibited: 无广告和第三方跟踪
社交集成
- Last.fm 同步和记录
- Mastodon 分享支持
- Discord 社区集成
安装指南
系统要求
- Node.js 14+
- npm/yarn
- Electron 4.2+
安装步骤
克隆仓库:
git clone https://github.com/nukeop/nuclear.git
cd nuclear
安装依赖:
npm install
# 或
yarn install
运行开发模式:
npm start
# 或
yarn start
构建应用:
npm run build
# 或
yarn build
下载预编译版本
从GitHub Releases下载最新版本。
使用说明
基本使用
// 初始化音乐播放
import { PlayerActions } from '@nuclear/core';
// 播放指定曲目
dispatch(PlayerActions.startPlayback());
// 暂停播放
dispatch(PlayerActions.pausePlayback());
搜索音乐
import { SearchActions } from '@nuclear/core';
// 执行统一搜索
dispatch(SearchActions.unifiedSearchStart('search query'));
Last.fm 集成
import { lastFmLoginAction } from '@nuclear/core';
// 连接Last.fm账号
dispatch(lastFmLoginAction(authToken));
核心代码
音乐播放控制
// src/actions/player.ts
export const startPlayback = createStandardAction(Player.START_PLAYBACK).map((fromMain: boolean) => {
return {
meta: { fromMain }
};
});
export const pausePlayback = createStandardAction(Player.PAUSE_PLAYBACK).map((fromMain: boolean) => {
return {
meta: { fromMain }
};
});
流媒体搜索
// src/actions/search.ts
export const SearchActions = {
unifiedSearchStart: createStandardAction(Search.UNIFIED_SEARCH_START)<string>(),
unifiedSearchSuccess: createStandardAction(Search.UNIFIED_SEARCH_SUCCESS)(),
unifiedSearchError: createStandardAction(Search.UNIFIED_SEARCH_ERROR)()
};
隐私保护实现
// src/actions/plugins.ts
export function createPlugins(pluginClasses) {
const plugins = {};
// 初始化插件系统,确保所有数据本地处理
for (const category of Object.keys(pluginClasses)) {
plugins[category] = [];
// ...插件初始化逻辑
}
return plugins;
}
贡献指南
欢迎通过以下方式贡献项目:
- 报告问题和功能请求
- 提交代码改进
- 改进文档
- 翻译本地化
详见贡献指南。
许可证
Nuclear采用AGPL-3.0许可证开源。
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
公众号二维码

Nuclear - 基于流媒体的隐私优先音乐播放器的更多相关文章
- 基于Qt Phonon模块实现音乐播放器
这次使用Qt实现的是一个本地音乐播放器,可以播放下载在计算机本地的音乐,提供了添加歌曲,歌曲列表,清空列表的功能.默认歌曲列表循环播放.音乐播放的实现主要依赖的是Qt 的多媒体框架phonon.该音乐 ...
- 一个基于H5audio标签的vue音乐播放器
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- SE Springer小组之《Spring音乐播放器》可行性研究报告一、二(转载)
此文转载自组员小明处~~ 1 引言 1.1编写目的 <软件工程>课程,我们团队计划开发一个音乐播放器.本文档是基于网络上现有的音乐播放器的特点,团队计划实现的音乐播放器功能和团队 ...
- SE Springer小组《Spring音乐播放器》可行性研究报告一、二
1 引言 1.1编写目的 <软件工程>课程,我们团队计划开发一个音乐播放器.本文档是基于网络上现有的音乐播放器的特点,团队计划实现的音乐播放器功能和团队人员的综合实力等情况,说明该软件开发 ...
- Swift - 制作一个在线流媒体音乐播放器(使用StreamingKit库)
在之前的文章中,我介绍了如何使用 AVPlayer 制作一个简单的音乐播放器(点击查看1.点击查看2).虽然这个播放器也可以播放网络音频,但其实际上是将音频文件下载到本地后再播放的. 本文演示如何使用 ...
- 基于Qt的开源音乐播放器(CZPlayer)
CZPlayer CZPlayer是基于Qt开发的一款功能强大的音乐播放器,该播放器的论坛地址请点击here,目前CZPlayer已经是第四个版本了,历史版本也分别在我的github上, github ...
- 网页播放音频、视频文件——基于web的html 5的音乐播放器(转载)
文章转载自:开源中国社区 [http://www.oschina.net] 想通过手机客户端(支持 Android.iPhone 和 Windows Phone)访问开源中国:请点这里 HTML5 是 ...
- Android基于发展Service音乐播放器
这是一个基于Service组件的音乐播放器,程序的音乐将会由后台的Service组件负责播放,当后台的播放状态改变时,程序将会通过发送广播通知前台Activity更新界面:当用户单击前台Activit ...
- 基于jQuery虾米音乐播放器样式代码
分享一款基于jQuery虾米音乐播放器样式代码.这是一款基于jquery+html5实现的虾米音乐播放器源码下载.效果图如下: 在线预览 源码下载 实现的代码. html代码: <div c ...
- 基于jQuery仿QQ音乐播放器网页版代码
基于jQuery仿QQ音乐播放器网页版代码是一款黑色样式风格的网页QQ音乐播放器样式代码.效果图如下: 在线预览 源码下载 实现的代码. html代码: <div class="m ...
随机推荐
- MySQL-脏页的刷新机制
MySQL内存结构-缓冲区 MySQL的缓冲区中有数据页,索引页,插入缓冲等等,这个角度是从页的功能来分类的.本小节从另一个视角关注这些页,如果从 是否被修改过(和磁盘不一致) 这个角度来区分这些页, ...
- 实现Andriod的APP中文名
让程序编译后,就会自动生成中文名,以及启动界面. 1. 2.AndroidManifest.xml的修改. 如果新建project,自动生成,否则要手动 3. 4.ok了.到手机端看结果吧
- 2025年最流行的5个Python ASGI服务器及其核心特性与适用场景
以下是2025年最流行的5个Python ASGI服务器及其核心特性与适用场景: 1. Uvicorn • 核心优势: • 基于uvloop和httptools,性能远超传统WSGI服务器,支持HTT ...
- 静态批处理/动态批处理/GPU Instancing /SRP Batcher的详细剖析
静态批处理[1] 定义 标明为 Static 的静态物件,如果在使用相同材质球的条件下,在Build(项目打包)的时候Unity会自动地提取这些共享材质的静态模型的Vertex buffer和Inde ...
- Web前端入门第 32 问:CSS background 元素渐变背景用法全解
渐变背景在 CSS 里面就是一个颜色到另一个颜色渐渐变化的样子. 本文示例中,盒子基础样式: .box { margin: 20px; padding: 20px; border: 10px dash ...
- 搭建Zookeeper、Kafka集群
搭建Zookeeper.Kafka集群 Zookeeper.Kafka集群系统环境配置 配置IP ssh root@192.168.1.190 "rm -rf /etc/machine-id ...
- kette介绍-Step之Table input
表输入(Table Input)介绍: Table input用于将数据源的数据加载到Kettle转换中的行集,可以说是数 据从持久化到内存的一种加载变换,故名为输入.加载内部过程,就是通过JDBC ...
- Laravel配置Route调用artisan
//web调用artisan Route::get('/artisan', function(\Illuminate\Http\Request $request) { $all = \Illumina ...
- 强烈推荐!终于找到了一个查看 dotnet 源码的便捷方法
强烈推荐!终于找到了一个查看 dotnet 源码的便捷方法 快把这个网站加入标签栏 "https://source.dot.net/" 为什么推荐 由GitHub生成,由Ro ...
- 一、C语言概述
声明 本文内容大多取自<高级语言程序设计一书>,为本人学习笔记记录,切勿用于商业用途. 第一节 计算机发展 电子计算机已经历的四个发展时代: 第一代:20 世纪 50 年代,主要采用真空电 ...