Convert Figma logo to code with AI

lyswhut logolx-music-desktop

一个基于 electron 的音乐软件

39,323
5,873
39,323
685

Top Related Projects

高颜值的第三方网易云播放器,支持 Windows / macOS / Linux :electron:

11,259

🎧☁️ Modern Music Server and Streamer compatible with Subsonic/Airsonic

网易云音乐 Node.js API service

24,317

Wiki.js | A modern and powerful wiki app built on Node.js

15,856

🐦 A personal music streaming server that works.

one for all free music in china (chrome extension, also works for firefox)

Quick Overview

LX Music Desktop is an open-source music player application for Windows, macOS, and Linux. It offers a clean interface for searching, playing, and managing music from various online sources, with features like playlist management and lyrics display.

Pros

  • Cross-platform compatibility (Windows, macOS, Linux)
  • Supports multiple online music sources
  • User-friendly interface with customizable themes
  • Offers both streaming and download capabilities

Cons

  • Potential legal concerns due to accessing copyrighted content
  • Relies on third-party sources, which may become unavailable
  • Limited offline functionality compared to traditional music players
  • May require frequent updates to maintain compatibility with music sources

Getting Started

To use LX Music Desktop:

  1. Visit the releases page on GitHub.
  2. Download the appropriate version for your operating system.
  3. Install the application following the standard procedure for your OS.
  4. Launch the application and start searching for and playing music.

Note: The application is primarily in Chinese, but efforts are being made to add multi-language support.

Competitor Comparisons

高颜值的第三方网易云播放器,支持 Windows / macOS / Linux :electron:

Pros of YesPlayMusic

  • More modern and visually appealing user interface
  • Better integration with Netease Cloud Music API
  • Support for lyrics display and synchronization

Cons of YesPlayMusic

  • Limited to Netease Cloud Music as the primary music source
  • Fewer customization options for appearance and functionality
  • Less frequent updates and maintenance compared to lx-music-desktop

Code Comparison

YesPlayMusic (Vue.js):

import { createApp } from 'vue';
import App from './App.vue';
import router from './router';
import store from './store';

createApp(App).use(store).use(router).mount('#app');

lx-music-desktop (Electron):

const { app, BrowserWindow } = require('electron');
const path = require('path');

function createWindow() {
  const win = new BrowserWindow({
    width: 800,
    height: 600,
    webPreferences: {
      preload: path.join(__dirname, 'preload.js')
    }
  });
  win.loadFile('index.html');
}

app.whenReady().then(createWindow);

YesPlayMusic uses Vue.js for its frontend, while lx-music-desktop is built with Electron, allowing for a more native desktop experience. lx-music-desktop offers a wider range of music sources and more extensive features, but YesPlayMusic provides a more polished and modern user interface focused on Netease Cloud Music integration.

11,259

🎧☁️ Modern Music Server and Streamer compatible with Subsonic/Airsonic

Pros of Navidrome

  • Self-hosted music server with web UI and mobile apps
  • Supports multiple users with individual libraries and playlists
  • Integrates with various music players and streaming protocols

Cons of Navidrome

  • Requires server setup and maintenance
  • Limited to personal music libraries, no built-in music discovery features
  • May have higher resource usage for large libraries

Code Comparison

Navidrome (Go):

func (s *Scanner) ScanLibrary(ctx context.Context) error {
    s.running.Set(true)
    defer s.running.Set(false)
    start := time.Now()
    ...
}

LX Music Desktop (JavaScript):

const handlePlayMusic = async(musicInfo, isRefresh = false) => {
  if (!musicInfo) return
  if (!isRefresh) setPlayMusicInfo(musicInfo)
  ...
}

Summary

Navidrome is a self-hosted music server solution, while LX Music Desktop is a cross-platform desktop music player. Navidrome offers multi-user support and integration with various players, but requires server setup. LX Music Desktop provides a simpler, standalone solution for desktop users, focusing on music playback and discovery from online sources. The code comparison shows Navidrome's server-side scanning functionality in Go, contrasting with LX Music Desktop's client-side playback handling in JavaScript.

网易云音乐 Node.js API service

Pros of NeteaseCloudMusicApi

  • Provides a comprehensive API for accessing NetEase Cloud Music data
  • Supports a wide range of functionalities, including user operations, playlist management, and song details
  • Well-documented with detailed API endpoints and usage instructions

Cons of NeteaseCloudMusicApi

  • Requires server-side implementation and maintenance
  • Limited to NetEase Cloud Music platform, not a multi-source solution
  • May be subject to changes in NetEase's API, requiring frequent updates

Code Comparison

NeteaseCloudMusicApi:

const { login_cellphone, user_playlist } = require('NeteaseCloudMusicApi')

login_cellphone({
  phone: '手机号',
  password: '密码'
}).then(result => {
  console.log(result)
  user_playlist({
    uid: result.body.account.id
  }).then(data => {
    console.log(data)
  })
})

lx-music-desktop:

import { getCurrentPlayInfo } from '@renderer/utils/ipc'
import { setPlayInfo } from '@renderer/core/player/playInfo'

const updatePlayInfo = async() => {
  const info = await getCurrentPlayInfo()
  setPlayInfo(info)
}

The code snippets demonstrate the different approaches: NeteaseCloudMusicApi focuses on API interactions, while lx-music-desktop handles local playback and UI updates.

24,317

Wiki.js | A modern and powerful wiki app built on Node.js

Pros of Wiki

  • More comprehensive documentation and extensive wiki features
  • Larger community and active development with frequent updates
  • Supports multiple authentication methods and integrations

Cons of Wiki

  • Steeper learning curve due to more complex features
  • Requires more system resources to run compared to LX Music Desktop
  • May be overkill for simple music management needs

Code Comparison

Wiki (JavaScript):

const Wiki = require('wiki.js')
const wiki = new Wiki({
  apiUrl: 'https://your-wiki-url/graphql'
})

LX Music Desktop (JavaScript):

const { app, BrowserWindow } = require('electron')
function createWindow () {
  const win = new BrowserWindow({ width: 800, height: 600 })
  win.loadFile('index.html')
}

Summary

Wiki is a feature-rich, collaborative knowledge base platform, while LX Music Desktop is a focused music player and management tool. Wiki offers more extensive functionality for documentation and team collaboration, but may be more complex to set up and use. LX Music Desktop provides a simpler, lightweight solution for music enthusiasts. The choice between the two depends on the specific needs of the user or organization.

15,856

🐦 A personal music streaming server that works.

Pros of koel

  • Web-based application, accessible from any device with a browser
  • Supports multiple users and user management
  • More extensive API and integration capabilities

Cons of koel

  • Requires server setup and maintenance
  • Less focus on offline functionality
  • Potentially more complex for non-technical users

Code Comparison

koel (PHP):

public function play($songId)
{
    $song = Song::findOrFail($songId);
    event(new SongStartedPlaying($song, Auth::user()));
    return response()->json($song);
}

lx-music-desktop (JavaScript):

ipcMain.on('play', async (event, songInfo) => {
  try {
    const audioUrl = await getSongUrl(songInfo.id);
    event.reply('play-song', { url: audioUrl, ...songInfo });
  } catch (error) {
    event.reply('play-error', error.message);
  }
});

Summary

koel is a web-based music streaming server and player, while lx-music-desktop is a desktop application for music playback and management. koel offers multi-user support and broader accessibility but requires more setup. lx-music-desktop provides a simpler, offline-capable solution for individual users. The code comparison shows koel's server-side approach versus lx-music-desktop's desktop-centric implementation.

one for all free music in china (chrome extension, also works for firefox)

Pros of listen1_chrome_extension

  • Browser-based extension, making it easily accessible across different platforms
  • Supports multiple Chinese music streaming services in one interface
  • Lightweight and doesn't require a separate desktop application installation

Cons of listen1_chrome_extension

  • Limited to browser usage, lacking system-wide integration
  • May have potential performance limitations compared to a native desktop application
  • Dependent on browser compatibility and updates

Code Comparison

lx-music-desktop (Electron-based desktop application):

const { app, BrowserWindow } = require('electron')
const path = require('path')

function createWindow () {
  const win = new BrowserWindow({
    width: 800,
    height: 600,
    webPreferences: {
      preload: path.join(__dirname, 'preload.js')
    }
  })
  win.loadFile('index.html')
}

listen1_chrome_extension (Chrome extension):

chrome.browserAction.onClicked.addListener(function(tab) {
  chrome.tabs.create({'url': chrome.extension.getURL('listen1.html')}, function(tab) {
    // Tab opened.
  });
});

The code snippets highlight the different approaches: lx-music-desktop uses Electron to create a desktop window, while listen1_chrome_extension leverages Chrome's extension API to open a new tab with the player interface.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

lx-music logo

Release version Build status Build status Electron version Dev branch version

洛雪音乐助手桌面版

说明

一个基于 Electron + Vue 开发的音乐软件。

所用技术栈:

  • Electron 15+
  • Vue 3

已支持的平台:

  • Windows 7 及以上
  • Mac OS
  • Linux

软件变化请查看:更新日志
软件下载请转到:发布页面
或者到网盘下载(网盘内有MAC、windows版):https://www.lanzoui.com/b0bf2cfa/ 密码:glqw(若链接无法打开请百度:蓝奏云链接打不开)
使用常见问题请转至:常见问题

目前本项目的原始发布地址只有GitHub及蓝奏网盘,其他渠道均为第三方转载发布,与本项目无关!

为了提高使用门槛,本软件内的默认设置、UI操作不以新手友好为目标,所以使用前建议先根据你的喜好浏览调整一遍软件设置,阅读一遍音乐播放列表机制及可用的鼠标、键盘快捷操作

Scheme URL支持

从v1.17.0起支持 Scheme URL,可以使用此功能从浏览器等场景下调用LX Music,我们开发了一个油猴脚本配套使用,
脚本安装地址:https://greasyfork.org/zh-CN/scripts/438148

若你想自己调用LX Music,可以看Scheme URL支持

数据同步服务

从v2.2.0起,我们发布了一个独立版的数据同步服务,如果你有服务器,可以将其部署到服务器上作为私人多端同步服务使用,详情看该项目说明

启动参数

目前软件已支持的启动参数如下:

  • -proxy-server 设置代理服务器,代理应用的所有流量
  • -proxy-bypass-list 以分号分隔的主机列表绕过代理服务器
  • -play 启动时播放指定列表的音乐
  • -search 启动软件时自动在搜索框搜索指定的内容
  • -dha 禁用硬件加速启动(Disable Hardware Acceleration)
  • -dt 以非透明模式启动(Disable Transparent)
  • -dhmkh 禁用硬件媒体密钥处理(Disable Hardware Media Key Handling)

启动参数的详细说明请看启动参数说明

数据存储路径

默认情况下,软件的数据存储在:

  • Windows:%APPDATA%/lx-music-desktop
  • Linux:$XDG_CONFIG_HOME/lx-music-desktop 或 ~/.config/lx-music-desktop
  • macOS:~/Library/Application Support/lx-music-desktop

在Windows平台下,若程序目录下存在portable目录,则自动使用此目录作为数据存储目录(v1.17.0新增)。

源码使用方法

已迁移至:https://lyswhut.github.io/lx-music-doc/desktop/use-source-code

UI界面

lx-music UI

常见问题

常见问题已移至:https://lyswhut.github.io/lx-music-doc/desktop/faq

贡献代码

本项目欢迎PR,但为了PR能顺利合并,需要注意以下几点:

  • 对于添加新功能的PR,建议在PR前先创建issue说明,以确认该功能是否确实需要
  • 对于修复Bug PR,请提供修复前后的说明及重现方式
  • 其他类型的PR则适当附上说明

贡献代码步骤:

  1. 参照源码使用方法设置开发环境
  2. 克隆本仓库代码并切换到dev分支开发
  3. 提交PR至dev分支

项目协议

本项目基于 Apache License 2.0 许可证发行,以下协议是对于 Apache License 2.0 的补充,如有冲突,以以下协议为准。


词语约定:本协议中的“本项目”指洛雪音乐桌面版项目;“使用者”指签署本协议的使用者;“官方音乐平台”指对本项目内置的包括酷我、酷狗、咪咕等音乐源的官方平台统称;“版权数据”指包括但不限于图像、音频、名字等在内的他人拥有所属版权的数据。

一、数据来源

1.1 本项目的各官方平台在线数据来源原理是从其公开服务器中拉取数据(与未登录状态在官方平台APP获取的数据相同),经过对数据简单地筛选与合并后进行展示,因此本项目不对数据的合法性、准确性负责。

1.2 本项目本身没有获取某个音频数据的能力,本项目使用的在线音频数据来源来自软件设置内“音乐来源”设置所选择的“源”返回的在线链接。例如播放某首歌,本项目所做的只是将希望播放的歌曲名字、歌手名字等信息传递给“源”,若“源”返回了一个链接,则本项目将认为这就是该歌曲的音频数据而进行使用,至于这是不是正确的音频数据本项目无法校验其准确性,所以使用本项目的过程中可能会出现希望播放的音频与实际播放的音频不对应或者无法播放的问题。

1.3 本项目的非官方平台数据(例如我的收藏列表)来自使用者本地系统或者使用者连接的同步服务,本项目不对这些数据的合法性、准确性负责。

二、版权数据

2.1 使用本项目的过程中可能会产生版权数据。对于这些版权数据,本项目不拥有它们的所有权。为了避免侵权,使用者务必在24小时内清除使用本项目的过程中所产生的版权数据。

三、音乐平台别名

3.1 本项目内的官方音乐平台别名为本项目内对官方音乐平台的一个称呼,不包含恶意。如果官方音乐平台觉得不妥,可联系本项目更改或移除。

四、资源使用

4.1 本项目内使用的部分包括但不限于字体、图片等资源来源于互联网。如果出现侵权可联系本项目移除。

五、免责声明

5.1 由于使用本项目产生的包括由于本协议或由于使用或无法使用本项目而引起的任何性质的任何直接、间接、特殊、偶然或结果性损害(包括但不限于因商誉损失、停工、计算机故障或故障引起的损害赔偿,或任何及所有其他商业损害或损失)由使用者负责。

六、使用限制

6.1 本项目完全免费,且开源发布于 GitHub 面向全世界人用作对技术的学习交流。本项目不对项目内的技术可能存在违反当地法律法规的行为作保证。

6.2 禁止在违反当地法律法规的情况下使用本项目。 对于使用者在明知或不知当地法律法规不允许的情况下使用本项目所造成的任何违法违规行为由使用者承担,本项目不承担由此造成的任何直接、间接、特殊、偶然或结果性责任。

七、版权保护

7.1 音乐平台不易,请尊重版权,支持正版。

八、非商业性质

8.1 本项目仅用于对技术可行性的探索及研究,不接受任何商业(包括但不限于广告等)合作及捐赠。

九、接受协议

9.1 若你使用了本项目,将代表你接受本协议。


若对此有疑问请 mail to: lyswhut+qq.com (请将+替换成@)