[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-73777":3},{"id":4,"name":5,"fullName":6,"owner":5,"repo":5,"description":7,"homepage":8,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":15,"forks30d":15,"starsTrendScore":19,"compositeScore":20,"rankGlobal":9,"rankLanguage":9,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":22,"hasPages":22,"topics":24,"createdAt":9,"pushedAt":9,"updatedAt":27,"readmeContent":28,"aiSummary":29,"trendingCount":15,"starSnapshotCount":15,"syncStatus":30,"lastSyncTime":31,"discoverSource":32},73777,"any-listen","any-listen\u002Fany-listen","A cross-platform private music playback service","",null,"TypeScript",3055,134,11,100,0,13,29,109,39,28.39,"Other",false,"main",[5,25,26],"music-player","nas","2026-06-12 02:03:17","\u003Cp align=\"center\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fany-listen\u002Fany-listen\">\u003Cimg height=\"110\" src=\".\u002Fdocs\u002Fimages\u002Fheader-logo.svg\" alt=\"any-listen logo\">\u003C\u002Fa>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fany-listen\u002Fany-listen\">\u003Cimg height=\"86\" src=\".\u002Fdocs\u002Fimages\u002Fheader-name.svg\" alt=\"any-listen name\">\u003C\u002Fa>\u003C\u002Fp>\n\n\u003Cp align=\"center\">A cross-platform private music playback service\u003C\u002Fp>\n\n\u003Cbr \u002F>\n\nEnglish | [简体中文](.\u002Fdocs\u002FREADME_zh.md) | [繁體中文](.\u002Fdocs\u002FREADME_zh-tw.md)\n\nThis project is under active development and currently provides both a **Desktop version** and a **Web service version**.\n\n## Features\n\n- Add and play local songs (standard playlists and local lists)\n- Add and play songs stored on WebDAV (remote lists)\n- Online song metadata matching (cover, lyrics; install the relevant extension via Extension Manager)\n- Experimental audio effects\n- Karaoke lyrics and title bar lyrics\n\n## Desktop Version\n\nGrab the latest release and install it from: [https:\u002F\u002Fgithub.com\u002Fany-listen\u002Fany-listen-desktop\u002Freleases](https:\u002F\u002Fgithub.com\u002Fany-listen\u002Fany-listen-desktop\u002Freleases)\n\n## Web Version\n\nYou can deploy it directly to your server, or use Docker for deployment.\n\n### Docker Deployment\n\nImage release: [https:\u002F\u002Fhub.docker.com\u002Fr\u002Flyswhut\u002Fany-listen-web-server](https:\u002F\u002Fhub.docker.com\u002Fr\u002Flyswhut\u002Fany-listen-web-server)\n\n### Direct Deployment\n\n> Requirement: Node.js 20+\n\nDownload the latest version and extract it to your target directory: [https:\u002F\u002Fgithub.com\u002Fany-listen\u002Fany-listen-web-server\u002Freleases](https:\u002F\u002Fgithub.com\u002Fany-listen\u002Fany-listen-web-server\u002Freleases)\n\nRefer to [https:\u002F\u002Fgithub.com\u002Flyswhut\u002Flx-music-sync-server](https:\u002F\u002Fgithub.com\u002Flyswhut\u002Flx-music-sync-server) for deployment methods. See below for configuration file instructions.\n\nUpgrade steps:\n\n1. Delete the `public` and `server` folders in the old project directory\n2. Upload the new version's `public` and `server` folders to the project directory\n3. Restart the service\n\n---\n\n**Usage Example:**\n\n1. Create the configuration file `data\u002Fconfig.cjs`\n\n    ```js\n    const config = {\n      \u002F\u002F port: '9500', \u002F\u002F Bind port\n      \u002F\u002F bindIp: '127.0.0.1', \u002F\u002F Bind IP\n      \u002F\u002F httpLog: true, \u002F\u002F Enable HTTP request logging\n      \u002F\u002F 'cors.enabled': false, \u002F\u002F Enable CORS\n      \u002F\u002F 'cors.whitelist': [ \u002F\u002F Allowed CORS domains, empty array allows all\n      \u002F\u002F   \u002F\u002F 'www.xxx.com',\n      \u002F\u002F ],\n      \u002F\u002F 'upstreamProxy.enabled': false, \u002F\u002F Use proxy for requests\n      \u002F\u002F 'upstreamProxy.header': '', \u002F\u002F Proxy request header (e.g. `x-real-ip`)\n      \u002F\u002F 'extension.ghMirrorHosts': [], \u002F\u002F Extension store Github mirror addresses\n      \u002F\u002F httpProxy: '', \u002F\u002F Proxy server address, e.g. `127.0.0.1:2080`\n\n      \u002F\u002F Allowed local directories\n      \u002F\u002F allowPublicDir: ['G:', 'E:\\\\music'], \u002F\u002F Windows example\n      \u002F\u002F allowPublicDir: ['\u002Fmusic'], \u002F\u002F Linux example\n      password: '123456a', \u002F\u002F Login password\n    }\n\n    module.exports = config\n    ```\n\n2. Run the Docker container\n\n    > Note: The following command is for example only and cannot be used directly!\n\n    ```bash\n    docker run --volume=\u002Fhome\u002Fmusic:\u002Fmusic --volume=\u002Fdata:\u002Fserver\u002Fdata -p 8080:9500 -d test:latest\n    ```\n\n#### Environment Variables\n\n|        Variable Name        | Description                                                                                  |\n| :-------------------------: | -------------------------------------------------------------------------------------------- |\n|           `PORT`            | Bind port, default `9500`                                                                    |\n|          `BIND_IP`          | Bind IP, default `127.0.0.1`, set to `0.0.0.0` to accept all IPv4 requests, `::` for all IPs |\n|   `UPSTREAM_PROXY_HEADER`   | Proxy request header (e.g. `x-real-ip`), enables proxy when set                              |\n|     `ALLOW_PUBLIC_DIR`      | Allowed local directories, separate multiple with commas                                     |\n|         `DATA_PATH`         | Data storage path, default `.\u002Fdata`                                                          |\n|         `LOGIN_PWD`         | Login password                                                                               |\n|        `CONFIG_PATH`        | Config file path, default `.\u002Fdata\u002Fconfig.js`                                                 |\n|         `LOG_PATH`          | Log storage path, default `.\u002Fdata\u002Flogs`                                                      |\n| `EXTENSION_GH_MIRROR_HOSTS` | Extension store Github mirror addresses, separate multiple with commas                       |\n|        `HTTP_PROXY`         | Proxy server, e.g. `127.0.0.1:2080`                                                          |\n\n### Build from Source\n\n```bash\npnpm install\npnpm run build:web\ncd build\nmkdir data\n# Create config file config.cjs\nnode index.cjs\n```\n\n## Contributing\n\nPRs are welcome! To ensure your PR can be merged smoothly, please note the following:\n\n- For PRs adding new features, it is recommended to create an Issue first to confirm the necessity of the feature.\n- For PRs fixing bugs, please provide explanations and reproduction steps before and after the fix.\n- For other types of PRs, please include appropriate explanations.\n\nSteps to contribute:\n\n1. Clone the repository and switch to the `dev` branch for development;\n2. Submit your PR to the `dev` branch.\n\n## License\n\nThis project is licensed under the Affero General Public License (AGPL) v3.0 with the following additional terms:\n\n- Commercial use is strictly prohibited unless written permission is obtained from the original author.\n- For full details, please refer to the [LICENSE file](.\u002FLICENSE).\n","any-listen 是一个跨平台的私人音乐播放服务。该项目支持添加和播放本地歌曲（标准播放列表和本地列表）以及存储在WebDAV上的歌曲（远程列表），并提供在线歌曲元数据匹配（封面、歌词）、实验性音效、卡拉OK歌词显示等功能。它采用TypeScript开发，拥有桌面版和网页服务版两种形式，用户可以根据需要选择直接下载安装或通过Docker部署到自己的服务器上。适合那些希望在不同设备间无缝享受个人音乐收藏且注重隐私保护的用户使用。",2,"2026-06-11 03:47:20","high_star"]