{"id":45018,"date":"2026-06-02T07:06:18","date_gmt":"2026-06-02T04:06:18","guid":{"rendered":"https:\/\/vpesports.com\/minecraft\/mods\/concerto\/"},"modified":"2026-06-02T07:06:18","modified_gmt":"2026-06-02T04:06:18","slug":"concerto","status":"publish","type":"mod","link":"https:\/\/vpesports.com\/minecraft\/mods\/concerto\/","title":{"rendered":"Concerto"},"content":{"rendered":"<p># Concerto<\/p>\n<p>A built-in music player for Minecraft based on Fabric. It supports local files, online resources, NetEase Cloud Music, and QQ Music. Features include multiplayer music rooms (listening together), song requests (KTV mode), server-side preset playlists, shared VIP songs, and more.<\/p>\n<p>**This mod is for educational purposes only and should not be used illegally.**<\/p>\n<p>&#8212;<\/p>\n<p>**Wiki Reference Mod Version: 1.3.5**  <\/p>\n<p>Currently known supported versions: 1.21.4, 1.21.1, 1.20.6, 1.20.1, 1.19.4, 1.18.2, 1.17.1, 1.16.5. Other versions have not been tested.<\/p>\n<p>## Security Reminder!<\/p>\n<p>Do not share the `.cookie` file inside the `Concerto` folder!<\/p>\n<p>## Default Hotkeys<\/p>\n<p>1. `U`: Open the playback queue management interface<br \/>\n2. `I`: Open the Concerto main menu<br \/>\n3. `N`: Play the next song<br \/>\n4. `P`: Pause\/Resume playback  <\/p>\n<p>## Commands  <\/p>\n<p>### 1. `\/concerto` (Client command, alias `\/music`, configurable in client settings)  <\/p>\n<p>   &#8211; `pause`: Pause\/Resume playback<br \/>\n   &#8211; `start`: Start playback<br \/>\n   &#8211; `stop`: Stop playback<br \/>\n   &#8211; `skip`: Play the next song<br \/>\n   &#8211; `skip [number]`: Play the `[number]`th song<br \/>\n   &#8211; `cut`: Skip\/delete the currently playing song<br \/>\n   &#8211; `clear`: Stop playback and clear the queue<br \/>\n   &#8211; `mode [normal|random|reversed|loop]`: Switch playback mode to normal, random, reversed, or loop<br \/>\n   &#8211; `reload`: Reload the playback queue and client configuration<br \/>\n   &#8211; `list [page]`: Display page `[page]` of the playback queue (10 songs per page)<br \/>\n   &#8211; `save`: Cache the current song (see Cached Songs)<br \/>\n   &#8211; `like`: Like the current song (see Liked Songs)<br \/>\n   &#8211; `dislike`: Unlike the current song<br \/>\n   &#8211; `download-current`: Download the current song to the `Concerto` folder<br \/>\n   &#8211; `download-all`: Download all songs in the queue to the `Concerto` folder<br \/>\n   &#8211; `export-as-playlist`: Export the current queue as a server preset playlist in `JSON` format (see Server Preset Playlists)<br \/>\n   &#8211; ~~`add`~~: **Deprecated**  <\/p>\n<p>### 2. `\/concerto-server` (Server-side command, admin only)  <\/p>\n<p>   &#8211; `audit [UUID]`: Approve a song shared with everyone (see `\/sharemusic`)<br \/>\n   &#8211; `audit reject [UUID]`: Reject a shared song<br \/>\n   &#8211; `audit reject all`: Reject all shared songs<br \/>\n   &#8211; `audit list [page]`: List songs pending approval on page `[page]`<br \/>\n   &#8211; `reload`: Reload the server configuration (see Server Configuration)<br \/>\n   &#8211; `fetch-radios`: Sync server preset playlists to the client (available to all users)<br \/>\n   &#8211; `agent reset`: Reload the server&#8217;s song request queue<br \/>\n   &#8211; `agent cut`: Force the server queue to skip to the next song  <\/p>\n<p>### 3. `\/sharemusic` (Client command, usable without Concerto on the server)  <\/p>\n<p>   &#8211; `to [player|@a]`: Share the current song with `[player]` or everyone (via `\/msg` if the server lacks Concerto)<br \/>\n   &#8211; `accept [UUID]`: Accept a shared song with ID `[UUID]`<br \/>\n   &#8211; `reject [UUID]`: Reject a shared song with ID `[UUID]`<br \/>\n   &#8211; `reject all`: Reject all shared songs<br \/>\n   &#8211; `list [page]`: Show the list of pending shared songs on page `[page]`  <\/p>\n<p>### 4. `\/musicroom` (Client command, requires Concerto on the server)  <\/p>\n<p>   &#8211; `create`: Create and join a music room (UUID is copied automatically)<br \/>\n   &#8211; `join [UUID]`: Join a music room with ID `[UUID]`<br \/>\n   &#8211; `quit`: Leave the current music room<br \/>\n   &#8211; `members`: List members in the current room<br \/>\n   &#8211; `op [player]`: Grant\/revoke admin rights to `[player]` (creator only)<br \/>\n   &#8211; `agent join`: Join the server&#8217;s song request queue<br \/>\n   &#8211; `agent quit`: Leave the server&#8217;s song request queue<br \/>\n   &#8211; `agent query`: View the upcoming server song requests<br \/>\n   &#8211; `agent add`: Add the currently playing song to the server request queue<br \/>\n   &#8211; `agent vote`: Initiate a vote to skip the song<br \/>\n   &#8211; `agent vote [true\/false]`: Vote yes\/no on skipping the current song  <\/p>\n<p>### ~~5. `\/neteasecloud`~~ (Client command for NetEase Cloud Music login, **deprecated**)  <\/p>\n<p>&#8212;<\/p>\n<p>## Local Playback Queue<\/p>\n<p>&#8211; Press `U` to open the queue management UI<br \/>\n&#8211; Click on a song, then press play (or double-click a song)<br \/>\n&#8211; Click a song and then press the details button for more info<br \/>\n&#8211; Drag and drop files\/folders into the queue management UI to add them  <\/p>\n<p>## Server Preset Playlists<\/p>\n<p>&#8211; Use `\/concerto export-as-playlist` to export a playlist<br \/>\n&#8211; Move the exported `JSON` file to `Concerto\/preset_radios\/`<br \/>\n&#8211; If the file is named `music_agent.json`, it will be used as the default playlist when idle<br \/>\n&#8211; Use `\/concerto-server reload` to apply new playlists<br \/>\n&#8211; Players can access server preset playlists from the main menu  <\/p>\n<p>## Server Configuration<\/p>\n<p>Located in `Concerto\/server_config.json`:  <\/p>\n<p>&#8211; `auditionRequired`: Require approval for shared songs (default: true)<br \/>\n&#8211; `serverMusicAgent`: Enable server-side song requests (default: true)<br \/>\n&#8211; `agentInviteWhenJoin`: Auto-invite new players to song requests (default: true)<br \/>\n&#8211; `musicRoomCommandPermission`: Minimum permission required to create a music room (default: 2)<br \/>\n&#8211; `musicAgentAddTimeLimit`: Time limit between song requests (default: 60s)<br \/>\n&#8211; `musicAgentUseShared`: Allow server-side parsing of song links (default: true)  <\/p>\n<p>&#8212;<\/p>\n<p>## Music Sharing (Not Listening Together)<\/p>\n<p>&#8211; If the server runs Concerto, it sends hidden requests; otherwise, it uses `\/msg`<br \/>\n&#8211; Admins can enable review for publicly shared songs<br \/>\n&#8211; Shared songs require acceptance before playback<br \/>\n&#8211; Only safe sources (NetEase Cloud, QQ Music) can be shared  <\/p>\n<p>## Music Rooms<\/p>\n<p>&#8211; Playback actions affect all members (e.g., pausing, skipping)<br \/>\n&#8211; Avoid too many admins to prevent conflicts<br \/>\n&#8211; The room&#8217;s UUID is copied to the clipboard upon creation<br \/>\n&#8211; Only safe sources (NetEase Cloud, QQ Music) can be shared  <\/p>\n<p>## Server Song Requests<\/p>\n<p>&#8211; Click a song and press the details button to request it<br \/>\n&#8211; Use `\/musicroom agent vote` to start\/join a vote<br \/>\n&#8211; To enable VIP songs, copy the `.cookie` file to the server and enable `musicAgentUseShared`<br \/>\n&#8211; The `Concerto\/preset_radios\/music_agent.json` file serves as the default idle playlist  <\/p>\n<p>&#8212;<\/p>\n<p>### Client Configuration File<\/p>\n<p>&#8211; Located in `Concerto\/client_config.json`<br \/>\n&#8211; `confirmAfterReceived`: Automatically accept all received music shares (default: off)<br \/>\n&#8211; `hideWhenChat`: Hide lyrics\/song info when the chat window is open (default: enabled)<br \/>\n&#8211; `printRequestResults`: Output HTTP request responses; for security, do not enable unless necessary (default: off)<br \/>\n&#8211; `maxCacheSize`: Maximum cache size (default: 100MB)<br \/>\n&#8211; `joinAgentWhenInvited`: Automatically join the server&#8217;s song request queue when invited (default: off)<br \/>\n&#8211; `registerMusicCommand`: Register `\/music` as an alias for `\/concerto` (default: enabled)<br \/>\n&#8211; `scrollingTextSpeed`: Speed of scrolling text display (default: 1.0)<br \/>\n&#8211; `neteaseMusicQuality`: NetEase Cloud Music audio quality (&#8220;STANDARD&#8221;, &#8220;HIGHER&#8221;, &#8220;EXHIGH&#8221;, &#8220;LOSSLESS&#8221;, &#8220;HIRES&#8221;, default: &#8220;HIRES&#8221;)<br \/>\n&#8211; `displayLyrics`: Display lyrics (default: enabled)<br \/>\n&#8211; `lyricsPosition`: Position of lyrics display (see Position Format Configuration below, default: `0.5,1-70`)<br \/>\n&#8211; `lyricsAlignment`: Lyrics alignment (&#8220;LEFT&#8221;, &#8220;CENTER&#8221;, &#8220;RIGHT&#8221;, default: center)<br \/>\n&#8211; `lyricsColor`: Lyrics color (see Color Configuration below, default: `#ff00aaaa`)<br \/>\n&#8211; `displaySubLyrics`: Display translated lyrics (default: enabled)<br \/>\n&#8211; `subLyricsPosition`: Position of translated lyrics display (see Position Format Configuration below, default: `0.5,1-60`)<br \/>\n&#8211; `subLyricsAlignment`: Translated lyrics alignment (&#8220;LEFT&#8221;, &#8220;CENTER&#8221;, &#8220;RIGHT&#8221;, default: center)<br \/>\n&#8211; `subLyricsColor`: Translated lyrics color (see Color Configuration below, default: `#ffffaa00`)<br \/>\n&#8211; `displayMusicDetails`: Show detailed song info (default: enabled)<br \/>\n&#8211; `musicDetailsPosition`: Position of song details display (see Position Format Configuration below, default: `1-5,0+5`)<br \/>\n&#8211; `musicDetailsAlignment`: Song details alignment (&#8220;LEFT&#8221;, &#8220;CENTER&#8221;, &#8220;RIGHT&#8221;, default: right)<br \/>\n&#8211; `musicDetailsColor`: Song details color (see Color Configuration below, default: `#ffffffff`)<br \/>\n&#8211; `displayTimeProgress`: Display song progress bar (default: enabled)<br \/>\n&#8211; `timeProgressPosition`: Position of song progress bar display (see Position Format Configuration below, default: `1-5,0+15`)<br \/>\n&#8211; `timeProgressAlignment`: Song progress alignment (&#8220;LEFT&#8221;, &#8220;CENTER&#8221;, &#8220;RIGHT&#8221;, default: right)<br \/>\n&#8211; `timeProgressTextColor`: Song progress text color (see Color Configuration below, default: `#ffffffff`)<br \/>\n&#8211; `timeProgressColor`: Song progress bar color (see Color Configuration below, default: `#ff0155bc`)<br \/>\n&#8211; `timeProgressBgColor`: Song progress bar background color (see Color Configuration below, default: `#ffa1c7f6`)<\/p>\n<p>### Position Format Configuration<\/p>\n<p>Basic format: `[horizontal ratio](+\/-)[horizontal offset],[vertical ratio](+\/-)[vertical offset]`. If the offset is `0`, it can be omitted (including the `+` or `-` sign).<\/p>\n<p>For example, `0.5,1-70` means the screen&#8217;s horizontal center, 70 pixels up from the bottom. `1-5,0+5` means the top right corner, shifted down and left by 5 pixels.<\/p>\n<p>### Color Configuration<\/p>\n<p>Basic format: `(0x|#)[8-digit hex code]`. Each two digits represent ARGB. It is recommended to use an online color picker (if you copy a 6-digit hex code, manually add `ff` at the front). Make sure to prefix the code with `0x` or `#`.<\/p>\n<p>For example, `#ffffffff` represents fully opaque white, and `#ff00aaaa` represents fully opaque cyan.<\/p>\n<p>### Cacheable Songs<\/p>\n<p>Includes NetEase Cloud Music, QQ Music, and other online resources.<\/p>\n<p>### Liked Music<\/p>\n<p>Only supported for NetEase Cloud Music.<\/p>\n<p>### Secure Music Sources<\/p>\n<p>Only NetEase Cloud Music and QQ Music are considered secure. This does not include local files or other online resources.<\/p>\n<p>### Q &#038; A<\/p>\n<p>None for now.<\/p>\n<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<\/p>\n<p>\u57fa\u4e8e Fabric \u7684 Minecraft \u5185\u7f6e\u97f3\u4e50\u64ad\u653e\u5668\u3002 \u652f\u6301\u672c\u5730\u6587\u4ef6\u3001\u7f51\u7edc\u8d44\u6e90\u3001\u7f51\u6613\u4e91\u97f3\u4e50\u3001QQ\u97f3\u4e50\u3002\u652f\u6301\u591a\u4eba\u6e38\u620f\u97f3\u4e50\u5ba4\uff08\u4e00\u8d77\u542c\uff09\u3001\u6b4c\u66f2\u70b9\u64ad\uff08KTV\u6a21\u5f0f\uff09\u3001\u670d\u52a1\u7aef\u9884\u8bbe\u6b4c\u5355\u3001\u5171\u4eab VIP \u6b4c\u66f2\u7b49\u529f\u80fd\u3002<\/p>\n<p>**\u672c\u6a21\u7ec4\u4ec5\u4f9b\u5b66\u4e60\u4f7f\u7528\uff0c\u4e0d\u5f97\u975e\u6cd5\u5229\u7528\u672c\u6a21\u7ec4\u3002**<\/p>\n<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<\/p>\n<p>**Wiki \u57fa\u51c6\u6a21\u7ec4\u7248\u672c\uff1a1.3.5**<\/p>\n<p>\u76ee\u524d\u5df2\u77e5\u652f\u6301\u7248\u672c\uff1a1.21.4, 1.21.1, 1.20.6, 1.20.1, 1.19.4, 1.18.2, 1.17.1, 1.16.5\uff0c\u5176\u4f59\u7248\u672c\u672a\u7ecf\u6d4b\u8bd5<\/p>\n<p>### \u5b89\u5168\u63d0\u9192\uff01<\/p>\n<p>\u8bf7\u4e0d\u8981\u6cc4\u9732 `Concerto` \u6587\u4ef6\u5939\u4e2d\u7684 `.cookie` \u6587\u4ef6\uff01<\/p>\n<p>### \u9ed8\u8ba4\u70ed\u952e<\/p>\n<p>1. `U`: \u6253\u5f00\u64ad\u653e\u961f\u5217\u7ba1\u7406\u754c\u9762<br \/>\n2. `I`: \u6253\u5f00 Concerto \u4e3b\u83dc\u5355<br \/>\n3. `N`: \u64ad\u653e\u4e0b\u4e00\u9996<br \/>\n4. `P`: \u6682\u505c\/\u7ee7\u7eed\u64ad\u653e<\/p>\n<p>### \u6307\u4ee4<\/p>\n<p>1. `\/concerto`\uff08\u5ba2\u6237\u7aef\u6307\u4ee4\uff0c\u53ef\u9009\u522b\u540d `\/music`\uff0c\u8be6\u89c1 \u5ba2\u6237\u7aef\u914d\u7f6e\u6587\u4ef6\uff09<\/p>\n<p>   `pause`: \u6682\u505c\/\u7ee7\u7eed\u64ad\u653e<\/p>\n<p>   `start`: \u5f00\u59cb\u64ad\u653e<\/p>\n<p>   `stop`: \u505c\u6b62\u64ad\u653e<\/p>\n<p>   `skip`: \u64ad\u653e\u4e0b\u4e00\u9996\u97f3\u4e50<\/p>\n<p>   `skip [\u7f16\u53f7]`: \u64ad\u653e\u7b2c `[\u7f16\u53f7]` \u9996\u97f3\u4e50<\/p>\n<p>   `cut`: \u5207\u6b4c\/\u5220\u9664\u5f53\u524d\u64ad\u653e\u6b4c\u66f2<\/p>\n<p>   `clear`: \u505c\u6b62\u64ad\u653e\u5e76\u6e05\u9664\u64ad\u653e\u961f\u5217<\/p>\n<p>   `mode [normal|random|reversed|loop]`: \u5207\u6362\u64ad\u653e\u6a21\u5f0f\u4e3a \u6b63\u5e8f\/\u968f\u673a\/\u5012\u5e8f\/\u5faa\u73af<\/p>\n<p>   `reload`: \u91cd\u65b0\u52a0\u8f7d\u64ad\u653e\u961f\u5217\u548c\u5ba2\u6237\u7aef\u914d\u7f6e\u6587\u4ef6<\/p>\n<p>   `list [\u9875\u7801]`: \u663e\u793a\u7b2c `[\u9875\u7801]` \u9875\u64ad\u653e\u961f\u5217\uff0810\u6761\u6b4c\u66f2\u4e00\u9875\uff09<\/p>\n<p>   `save`: \u7f13\u5b58\u5f53\u524d\u6b4c\u66f2\uff08\u8be6\u89c1 \u53ef\u7f13\u5b58\u6b4c\u66f2\uff09<\/p>\n<p>   `like`: \u559c\u6b22\u5f53\u524d\u6b4c\u66f2\uff08\u8be6\u89c1 \u559c\u6b22\u6b4c\u66f2\uff09<\/p>\n<p>   `dislike`: \u53d6\u6d88\u559c\u6b22\u5f53\u524d\u6b4c\u66f2<\/p>\n<p>   `download-current`: \u4e0b\u8f7d\u5f53\u524d\u6b4c\u66f2\u5230 `Concerto` \u6587\u4ef6\u5939<\/p>\n<p>   `download-all`: \u4e0b\u8f7d\u64ad\u653e\u961f\u5217\u4e2d\u7684\u6240\u6709\u6b4c\u66f2\u5230 `Concerto` \u6587\u4ef6\u5939<\/p>\n<p>   `export-as-playlist`: \u5bfc\u51fa\u5f53\u524d\u64ad\u653e\u961f\u5217\u4e3a\u670d\u52a1\u7aef\u9884\u8bbe\u6b4c\u5355\u683c\u5f0f `JSON`\uff08\u8be6\u89c1 \u670d\u52a1\u7aef\u9884\u8bbe\u6b4c\u5355\uff09<\/p>\n<p>   ~~`add`: \u6dfb\u52a0\u6b4c\u66f2\/\u6b4c\u5355\u7b49~~\uff0c\u5df2**\u5e9f\u5f03**<\/p>\n<p>2. `\/concerto-server`\uff08\u670d\u52a1\u7aef\u6307\u4ee4\uff0c\u4ec5\u9650\u7ba1\u7406\u5458\uff09<\/p>\n<p>   `audit [UUID]`: \u5ba1\u6838\u901a\u8fc7\u5206\u4eab\u7ed9\u6240\u6709\u4eba\u7684\u97f3\u4e50\uff08\u8be6\u89c1 `\/sharemusic` \u6307\u4ee4\uff09<\/p>\n<p>   `audit reject [UUID]`: \u62d2\u7edd\u5206\u4eab\u7ed9\u6240\u6709\u4eba\u7684\u97f3\u4e50<\/p>\n<p>   `audit reject all`: \u62d2\u7edd\u6240\u6709\u5206\u4eab\u7ed9\u6240\u6709\u4eba\u7684\u97f3\u4e50<\/p>\n<p>   `audit list [\u9875\u7801]`: \u5217\u51fa\u7b2c `[\u9875\u7801]` \u9875\u7684\u5f85\u5ba1\u6b4c\u66f2\u6e05\u5355<\/p>\n<p>   `reload`: \u91cd\u65b0\u52a0\u8f7d\u670d\u52a1\u7aef\u914d\u7f6e\u6587\u4ef6\uff08\u8be6\u89c1 \u670d\u52a1\u7aef\u914d\u7f6e\u6587\u4ef6\uff09<\/p>\n<p>   `fetch-radios`: \u6280\u672f\u6027\u6307\u4ee4\uff0c\u540c\u6b65\u670d\u52a1\u7aef\u9884\u8bbe\u6b4c\u5355\u5230\u672c\u5730\uff08\u5141\u8bb8\u666e\u901a\u7528\u6237\u4f7f\u7528\uff09<\/p>\n<p>   `agent reset`: \u91cd\u65b0\u52a0\u8f7d\u670d\u52a1\u7aef\u6b4c\u66f2\u70b9\u64ad\u961f\u5217<\/p>\n<p>   `agent cut`: \u5f3a\u5236\u8ba9\u670d\u52a1\u7aef\u70b9\u64ad\u961f\u5217\u64ad\u653e\u4e0b\u4e00\u9996\/\u5207\u6b4c<\/p>\n<p>3. `\/sharemusic`\uff08\u5ba2\u6237\u7aef\u6307\u4ee4\uff0c\u670d\u52a1\u7aef\u4e0d\u5b89\u88c5 Concerto \u4e5f\u53ef\u4f7f\u7528\uff0c\u975e\u97f3\u4e50\u5ba4\u529f\u80fd\uff09<\/p>\n<p>   `to [\u73a9\u5bb6|@a]`: \u5206\u4eab\u5f53\u524d\u64ad\u653e\u7684\u6b4c\u66f2\u7ed9 `[\u73a9\u5bb6]` \u6216\u6240\u6709\u4eba\uff08\u82e5\u670d\u52a1\u7aef\u672a\u5b89\u88c5 Concerto \u5219\u901a\u8fc7 `\/msg` \u6307\u4ee4\u53d1\u9001\uff09\uff0c\u53ea\u80fd\u5206\u4eab\u88ab\u8ba4\u4e3a\u5b89\u5168\u7684\u97f3\u4e50\uff08\u8be6\u89c1 \u5b89\u5168\u7684\u97f3\u4e50\u6765\u6e90\uff09<\/p>\n<p>   `accept [UUID]`: \u63a5\u53d7\u7f16\u53f7\u4e3a `[UUID]` \u7684\u97f3\u4e50\u5206\u4eab<\/p>\n<p>   `reject [UUID]`: \u62d2\u7edd\u7f16\u53f7\u4e3a `[UUID]` \u7684\u97f3\u4e50\u5206\u4eab<\/p>\n<p>   `reject all`: \u62d2\u7edd\u6240\u6709\u97f3\u4e50\u5206\u4eab<\/p>\n<p>   `list [\u9875\u7801]`: \u663e\u793a\u7b2c `[\u9875\u7801]` \u9875\u7684\u5f85\u63a5\u53d7\u97f3\u4e50\u5206\u4eab\u5217\u8868<\/p>\n<p>4. `\/musicroom`\uff08\u5ba2\u6237\u7aef\u6307\u4ee4\uff0c\u670d\u52a1\u7aef\u5fc5\u987b\u5b89\u88c5 Concerto \u624d\u80fd\u6b63\u5e38\u4f7f\u7528\uff09<\/p>\n<p>   `create`: \u65b0\u5efa\u5e76\u52a0\u5165\u97f3\u4e50\u5ba4\uff0c\u5e76\u81ea\u52a8\u590d\u5236\u97f3\u4e50\u5ba4\u7684 UUID\uff08\u8be6\u89c1 \u97f3\u4e50\u5ba4\uff09<\/p>\n<p>   `join [UUID]`: \u52a0\u5165\u7f16\u53f7\u4e3a `[UUID]` \u7684\u97f3\u4e50\u5ba4<\/p>\n<p>   `quit`: \u9000\u51fa\u5f53\u524d\u97f3\u4e50\u5ba4<\/p>\n<p>   `members`: \u663e\u793a\u5f53\u524d\u6240\u5728\u97f3\u4e50\u5ba4\u7684\u6210\u5458<\/p>\n<p>   `op [\u73a9\u5bb6]`: \u4ec5\u9650\u97f3\u4e50\u5ba4\u521b\u5efa\u8005\u53ef\u7528\uff0c\u7ed9\u4e88\/\u5265\u593a `[\u73a9\u5bb6]` \u7684\u97f3\u4e50\u5ba4\u7ba1\u7406\u5458\u6743\u9650<\/p>\n<p>   `agent join`: \u53c2\u4e0e\u670d\u52a1\u5668\u97f3\u4e50\u70b9\u64ad\uff08\u8be6\u89c1 \u670d\u52a1\u5668\u97f3\u4e50\u70b9\u64ad\uff09<\/p>\n<p>   `agent quit`: \u9000\u51fa\u670d\u52a1\u5668\u97f3\u4e50\u70b9\u64ad<\/p>\n<p>   `agent query`: \u67e5\u8be2\u670d\u52a1\u5668\u97f3\u4e50\u70b9\u64ad\u5f85\u64ad\u961f\u5217<\/p>\n<p>   `agent add`: \u5411\u670d\u52a1\u5668\u97f3\u4e50\u70b9\u64ad\u961f\u5217\u6dfb\u52a0\u5ba2\u6237\u7aef\u5f53\u524d\u64ad\u653e\u7684\u97f3\u4e50<\/p>\n<p>   `agent vote`: \u53d1\u8d77\u5207\u6b4c\u6295\u7968<\/p>\n<p>   `agent vote [true\/false]`: \u7ed9\u5f53\u524d\u8fdb\u884c\u7684\u5207\u6b4c\u6295\u7968\u6295 \u8d5e\u6210\/\u53cd\u5bf9<\/p>\n<p>5. ~~`\/neteasecloud`~~\uff08\u5ba2\u6237\u7aef\u6307\u4ee4\uff0c\u7528\u4e8e\u767b\u5f55\u7f51\u6613\u4e91\u97f3\u4e50\uff0c\u5df2**\u5e9f\u5f03**\uff09<\/p>\n<p>### \u672c\u5730\u64ad\u653e\u961f\u5217<\/p>\n<p>&#8211; \u6309 `U` \u6253\u5f00\u64ad\u653e\u961f\u5217\u7ba1\u7406\u754c\u9762\uff1b<br \/>\n&#8211; \u5355\u51fb\u9009\u4e2d\u97f3\u4e50\uff0c\u518d\u70b9\u51fb\u64ad\u653e\u6309\u94ae\uff08\u6216\u76f4\u63a5\u53cc\u51fb\u67d0\u6761\u97f3\u4e50\uff09\u5f00\u59cb\u64ad\u653e<br \/>\n&#8211; \u5355\u51fb\u9009\u4e2d\u97f3\u4e50\uff0c\u518d\u70b9\u51fb\u8be6\u60c5\u6309\u94ae\u67e5\u770b\u97f3\u4e50\u5177\u4f53\u4fe1\u606f\uff08\u5185\u6709**\u670d\u52a1\u5668\u70b9\u6b4c**\u6309\u94ae\uff09<br \/>\n&#8211; \u53ef\u5c06\u591a\u4e2a\u6587\u4ef6\/\u6587\u4ef6\u5939\u62d6\u5165 \u64ad\u653e\u961f\u5217\u7ba1\u7406\u754c\u9762\/\u6dfb\u52a0\u97f3\u4e50\u754c\u9762 \u8fdb\u884c\u6dfb\u52a0<\/p>\n<p>### \u670d\u52a1\u7aef\u9884\u8bbe\u6b4c\u5355<\/p>\n<p>&#8211; \u4f7f\u7528 `\/concerto export-as-playlist` \u6216\u6b4c\u5355\u8be6\u60c5\u9875\u9762\u6309\u94ae\u5bfc\u51fa\u6b4c\u5355<br \/>\n&#8211; \u5c06\u5bfc\u51fa\u7684 `JSON` \u6587\u4ef6\u653e\u7f6e\u4e8e `Concerto\/preset_radios` \u6587\u4ef6\u5939\u4e0b<br \/>\n&#8211; \u82e5\u6587\u4ef6\u540d\u4e3a `music_agent.json` \u5c06\u4f5c\u4e3a\u97f3\u4e50\u70b9\u64ad\u5ba4\u7a7a\u95f2\u65f6\u5019\u7684\u6b4c\u5355<br \/>\n&#8211; \u53ef\u7528 `\/concerto-server reload` \u91cd\u65b0\u52a0\u8f7d\u6700\u65b0\u6dfb\u52a0\u7684\u9884\u8bbe\u6b4c\u5355<br \/>\n&#8211; \u73a9\u5bb6\u53ef\u5728 Concerto \u4e3b\u83dc\u5355\u91cc\u770b\u5230\u670d\u52a1\u7aef\u9884\u8bbe\u6b4c\u5355\u7684\u5165\u53e3<\/p>\n<p>### \u670d\u52a1\u7aef\u914d\u7f6e\u6587\u4ef6<\/p>\n<p>&#8211; \u6587\u4ef6\u4f4d\u4e8e `Concerto\/server_config.json`<br \/>\n&#8211; `auditionRequired`: \u901a\u8fc7 `\/sharemusic` \u5206\u4eab\u7ed9\u6240\u6709\u4eba\u7684\u97f3\u4e50\u662f\u5426\u9700\u8981\u5ba1\u6838\uff08\u9ed8\u8ba4\u9700\u8981\uff09<br \/>\n&#8211; `serverMusicAgent`\uff1a\u542f\u7528\u670d\u52a1\u7aef\u6b4c\u66f2\u70b9\u64ad\u529f\u80fd\uff08\u9ed8\u8ba4\u542f\u7528\uff09<br \/>\n&#8211; `agentInviteWhenJoin`\uff1a\u4e3b\u52a8\u9080\u8bf7\u8fdb\u5165\u670d\u52a1\u5668\u7684\u73a9\u5bb6\u52a0\u5165\u6b4c\u66f2\u70b9\u64ad\uff08\u9ed8\u8ba4\u542f\u7528\uff09<br \/>\n&#8211; `musicRoomCommandPermission`\uff1a\u97f3\u4e50\u5ba4\u521b\u5efa\u7684\u6700\u4f4e\u6743\u9650\u8981\u6c42\uff08\u9ed8\u8ba4\u4e3a2\uff09<br \/>\n&#8211; `musicAgentAddTimeLimit`: \u540c\u4e00\u73a9\u5bb6\u4e24\u6b21\u6b4c\u66f2\u70b9\u64ad\u65f6\u95f4\u95f4\u9694\uff08\u9ed8\u8ba4\u4e3a60\u79d2\uff09<br \/>\n&#8211; `musicAgentUseShared`: \u6b4c\u66f2\u70b9\u64ad\u4f7f\u7528\u670d\u52a1\u7aef\u89e3\u6790\u64ad\u653e\u94fe\u63a5\uff08\u8be6\u89c1 \u670d\u52a1\u5668\u97f3\u4e50\u70b9\u64ad\uff0c\u9ed8\u8ba4\u542f\u7528\uff09<\/p>\n<p>### \u97f3\u4e50\u5206\u4eab\uff08\u975e\u4e00\u8d77\u542c\u529f\u80fd\uff09<\/p>\n<p>&#8211; \u82e5\u670d\u52a1\u5668\u5b89\u88c5\u4e86 Concerto\uff0c\u5219\u4f1a\u9690\u85cf\u5730\u5411\u670d\u52a1\u5668\u53d1\u9001\u8bf7\u6c42\uff0c\u5426\u5219\u5c06\u76f4\u63a5\u8c03\u7528 `\/msg` \u6307\u4ee4\uff08\u53d1\u9001\u7ed9\u4e2a\u4eba\uff09\u6216\u76f4\u63a5\u53d1\u9001\u5728\u516c\u5c4f\uff08\u53d1\u9001\u7ed9\u6240\u6709\u4eba\uff09\u3002<br \/>\n&#8211; \u670d\u4e3b\u53ef\u5728\u670d\u52a1\u7aef\u914d\u7f6e\u4e2d\u914d\u7f6e\u5ba1\u6838\u5206\u4eab\u7ed9\u6240\u6709\u4eba\u7684\u97f3\u4e50\u3002<br \/>\n&#8211; \u5206\u4eab\u7684\u97f3\u4e50\u9700\u8981\u5bf9\u65b9\u786e\u8ba4\u624d\u4f1a\u5728\u5bf9\u65b9\u7684\u5ba2\u6237\u7aef\u64ad\u653e\u3002<br \/>\n&#8211; \u53ea\u5141\u8bb8\u5206\u4eab\u88ab\u8ba4\u4e3a\u662f\u5b89\u5168\u7684\u97f3\u4e50\uff08\u8be6\u89c1 \u5b89\u5168\u7684\u97f3\u4e50\u6765\u6e90\uff09<\/p>\n<p>### \u97f3\u4e50\u5ba4<\/p>\n<p>&#8211; \u97f3\u4e50\u5ba4\u5185\u6240\u6709\u4eba\u7684\u97f3\u4e50\u64ad\u653e\u884c\u4e3a\u90fd\u4f1a\u53d7\u5230\u4efb\u610f\u97f3\u4e50\u5ba4\u7ba1\u7406\u5458\u7684\u5f71\u54cd\uff0c\u4f8b\u5982\uff1a\u5207\u6362\u6b4c\u66f2\/\u6682\u505c\u64ad\u653e\u3002<br \/>\n&#8211; \u5efa\u8bae\u4e0d\u8981\u8bbe\u7f6e\u592a\u591a\u7ba1\u7406\u5458\u4ee5\u907f\u514d\u4e89\u62a2\u95ee\u9898\u3002<br \/>\n&#8211; \u521b\u5efa\u97f3\u4e50\u5ba4\u65f6\u4f1a\u81ea\u52a8\u590d\u5236 UUID \u5230\u526a\u8d34\u677f\u3002<br \/>\n&#8211; \u53ea\u5141\u8bb8\u5206\u4eab\u88ab\u8ba4\u4e3a\u662f\u5b89\u5168\u7684\u97f3\u4e50\uff08\u8be6\u89c1 \u5b89\u5168\u7684\u97f3\u4e50\u6765\u6e90\uff09<\/p>\n<p>### \u670d\u52a1\u5668\u97f3\u4e50\u70b9\u64ad<\/p>\n<p>&#8211; \u9009\u4e2d\u97f3\u4e50\u6761\u76ee\uff0c\u70b9\u51fb\u8be6\u60c5\u6309\u94ae\uff0c\u6b4c\u66f2\u8be6\u60c5\u9875\u9762\u5185\u6709\u670d\u52a1\u5668\u70b9\u6b4c\u6309\u94ae\u3002\u82e5\u670d\u52a1\u53ef\u7528\uff0c\u5219\u6309\u94ae\u53ef\u7528\u3002<br \/>\n&#8211; \u53ef\u7528 `\/musicroom agent vote` \u6307\u4ee4\u53d1\u8d77\u6295\u7968\/\u53c2\u4e0e\u6295\u7968<br \/>\n&#8211; \u670d\u4e3b\u53ef\u5728\u672c\u5730\u767b\u5f55VIP\u8d26\u53f7\u540e\u5c06 `Concerto` \u6587\u4ef6\u5939\u4e0bcookie\u6587\u4ef6\u590d\u5236\u5230\u670d\u52a1\u7aef\uff0c\u5e76\u5f00\u542f\u670d\u52a1\u7aef\u914d\u7f6e\u9009\u9879\u4e2d\u7684 `musicAgentUseShared`\uff0c\u5373\u53ef\u5b9e\u73b0VIP\u6b4c\u66f2\u70b9\u64ad\u3002\uff08\u82e5\u670d\u52a1\u7aef\u8fd0\u884c\u8fc7\u7a0b\u4e2d\u590d\u5236\u8fdb\u53bb\uff0c\u9700\u8981\u91cd\u542f\u670d\u52a1\u7aef\uff09<br \/>\n&#8211; \u82e5\u5b58\u5728\u6587\u4ef6 `Concerto\/preset_radios\/music_agent.json` \u5c06\u4f5c\u4e3a\u97f3\u4e50\u70b9\u64ad\u5ba4\u7a7a\u95f2\u65f6\u5019\u7684\u6b4c\u5355\uff0c\u82e5\u6709\u73a9\u5bb6\u5728\u64ad\u653e\u8fd9\u91cc\u9762\u7684\u6b4c\u66f2\u65f6\u70b9\u6b4c\uff0c\u5c06\u4f1a\u81ea\u52a8\u5207\u6b4c<\/p>\n<p>### \u5ba2\u6237\u7aef\u914d\u7f6e\u6587\u4ef6<\/p>\n<p>&#8211; \u6587\u4ef6\u4f4d\u4e8e `Concerto\/client_config.json`<br \/>\n&#8211; `confirmAfterReceived`: \u81ea\u52a8\u63a5\u53d7\u6240\u6709\u63a5\u6536\u5230\u7684\u97f3\u4e50\u5206\u4eab\uff08\u9ed8\u8ba4\u5173\u95ed\uff09<br \/>\n&#8211; `hideWhenChat`: \u5728\u804a\u5929\u680f\u6253\u5f00\u65f6\u9690\u85cf\u6b4c\u8bcd\/\u6b4c\u66f2\u4fe1\u606f\uff08\u9ed8\u8ba4\u542f\u7528\uff09<br \/>\n&#8211; `printRequestResults`: \u8f93\u51faHTTP\u8bf7\u6c42\u8fd4\u56de\u7684\u6570\u636e\uff1b\u5b89\u5168\u8d77\u89c1\uff0c\u9664\u975e\u6709\u5fc5\u8981\uff0c\u5426\u5219\u6700\u597d\u4e0d\u8981\u542f\u7528\uff08\u9ed8\u8ba4\u5173\u95ed\uff09<br \/>\n&#8211; `maxCacheSize`: \u6700\u5927\u7f13\u5b58\u5927\u5c0f\uff08\u9ed8\u8ba4 100MB\uff09<br \/>\n&#8211; `joinAgentWhenInvited`: \u88ab\u670d\u52a1\u5668\u9080\u8bf7\u540e\uff0c\u81ea\u52a8\u52a0\u5165\u670d\u52a1\u5668\u70b9\u6b4c\uff08\u9ed8\u8ba4\u5173\u95ed\uff09<br \/>\n&#8211; `registerMusicCommand`: \u6ce8\u518c `\/music` \u4e3a `\/concerto` \u6307\u4ee4\u7684\u522b\u540d\uff08\u9ed8\u8ba4\u542f\u7528\uff09<br \/>\n&#8211; `scrollingTextSpeed`: \u6eda\u52a8\u663e\u793a\u6587\u5b57\u7684\u901f\u5ea6\uff08\u9ed8\u8ba41.0\uff09<br \/>\n&#8211; `neteaseMusicQuality`: \u7f51\u6613\u4e91\u97f3\u4e50\u97f3\u9891\u7684\u8d28\u91cf\uff08&#8221;STANDARD&#8221;,&#8221;HIGHER&#8221;,&#8221;EXHIGH&#8221;,&#8221;LOSSLESS&#8221;,&#8221;HIRES&#8221;\uff0c\u9ed8\u8ba4&#8221;HIRES&#8221;\uff09<br \/>\n&#8211; `displayLyrics`: \u662f\u5426\u663e\u793a\u6b4c\u8bcd\uff08\u9ed8\u8ba4\u542f\u7528\uff09<br \/>\n&#8211; `lyricsPosition`: \u6b4c\u8bcd\u663e\u793a\u4f4d\u7f6e\uff08\u683c\u5f0f\u8be6\u89c1\u4e0b\u65b9 \u4f4d\u7f6e\u683c\u5f0f\u914d\u7f6e\uff0c\u9ed8\u8ba4\u4e3a `0.5,1-70`\uff09<br \/>\n&#8211; `lyricsAlignment`: \u6b4c\u8bcd\u663e\u793a\u9760\u5de6\/\u5c45\u4e2d\/\u9760\u53f3\uff08&#8221;LEFT&#8221;,&#8221;CENTER&#8221;,&#8221;RIGHT&#8221;\uff0c\u9ed8\u8ba4\u5c45\u4e2d\uff09<br \/>\n&#8211; `lyricsColor`: \u6b4c\u8bcd\u989c\u8272\uff08\u683c\u5f0f\u8be6\u89c1\u4e0b\u65b9 \u989c\u8272\u914d\u7f6e\uff0c\u9ed8\u8ba4\u4e3a `#ff00aaaa`\uff09<br \/>\n&#8211; `displaySubLyrics`: \u662f\u5426\u663e\u793a\u7ffb\u8bd1\u6b4c\u8bcd \uff08\u9ed8\u8ba4\u542f\u7528\uff09<br \/>\n&#8211; `subLyricsPosition`: \u7ffb\u8bd1\u6b4c\u8bcd\u663e\u793a\u4f4d\u7f6e\uff08\u683c\u5f0f\u8be6\u89c1\u4e0b\u65b9 \u4f4d\u7f6e\u683c\u5f0f\u914d\u7f6e\uff0c\u9ed8\u8ba4\u4e3a `0.5,1-60`\uff09<br \/>\n&#8211; `subLyricsAlignment`: \u7ffb\u8bd1\u6b4c\u8bcd\u663e\u793a\u9760\u5de6\/\u5c45\u4e2d\/\u9760\u53f3\uff08&#8221;LEFT&#8221;,&#8221;CENTER&#8221;,&#8221;RIGHT&#8221;\uff0c\u9ed8\u8ba4\u5c45\u4e2d\uff09<br \/>\n&#8211; `subLyricsColor`: \u7ffb\u8bd1\u6b4c\u8bcd\u989c\u8272\uff08\u683c\u5f0f\u8be6\u89c1\u4e0b\u65b9 \u989c\u8272\u914d\u7f6e\uff0c\u9ed8\u8ba4\u4e3a `#ffffaa00`\uff09<br \/>\n&#8211; `displayMusicDetails`: \u663e\u793a\u6b4c\u66f2\u5177\u4f53\u4fe1\u606f\uff08\u9ed8\u8ba4\u542f\u7528\uff09<br \/>\n&#8211; `musicDetailsPosition`: \u6b4c\u66f2\u5177\u4f53\u4fe1\u606f\u663e\u793a\u4f4d\u7f6e\uff08\u683c\u5f0f\u8be6\u89c1\u4e0b\u65b9 \u4f4d\u7f6e\u683c\u5f0f\u914d\u7f6e\uff0c\u9ed8\u8ba4\u4e3a`1-5,0+5`\uff09<br \/>\n&#8211; `musicDetailsAlignment`: \u6b4c\u66f2\u5177\u4f53\u4fe1\u606f\u9760\u5de6\/\u5c45\u4e2d\/\u9760\u53f3\uff08&#8221;LEFT&#8221;,&#8221;CENTER&#8221;,&#8221;RIGHT&#8221;\uff0c\u9ed8\u8ba4\u9760\u53f3\uff09<br \/>\n&#8211; `musicDetailsColor`: \u6b4c\u66f2\u5177\u4f53\u4fe1\u606f\u989c\u8272\uff08\u683c\u5f0f\u8be6\u89c1\u4e0b\u65b9 \u989c\u8272\u914d\u7f6e\uff0c\u9ed8\u8ba4\u4e3a `#ffffffff`\uff09<br \/>\n&#8211; `displayTimeProgress`: \u663e\u793a\u6b4c\u66f2\u64ad\u653e\u8fdb\u5ea6\uff08\u9ed8\u8ba4\u542f\u7528\uff09<br \/>\n&#8211; `timeProgressPosition`: \u6b4c\u66f2\u64ad\u653e\u8fdb\u5ea6\u663e\u793a\u4f4d\u7f6e\uff08\u683c\u5f0f\u8be6\u89c1\u4e0b\u65b9 \u4f4d\u7f6e\u683c\u5f0f\u914d\u7f6e\uff0c\u9ed8\u8ba4\u4e3a `1-5,0+15`\uff09<br \/>\n&#8211; `timeProgressAlignment`: \u6b4c\u66f2\u64ad\u653e\u8fdb\u5ea6\u663e\u793a\u9760\u5de6\/\u5c45\u4e2d\/\u9760\u53f3\uff08&#8221;LEFT&#8221;,&#8221;CENTER&#8221;,&#8221;RIGHT&#8221;\uff0c\u9ed8\u8ba4\u9760\u53f3\uff09<br \/>\n&#8211; `timeProgressTextColor`: \u6b4c\u66f2\u64ad\u653e\u8fdb\u5ea6\u6587\u5b57\u989c\u8272\uff08\u683c\u5f0f\u8be6\u89c1\u4e0b\u65b9 \u989c\u8272\u914d\u7f6e\uff0c\u9ed8\u8ba4\u4e3a `#ffffffff` \uff09<br \/>\n&#8211; `timeProgressColor`: \u6b4c\u66f2\u64ad\u653e\u8fdb\u5ea6\u6761\u989c\u8272\uff08\u683c\u5f0f\u8be6\u89c1\u4e0b\u65b9 \u989c\u8272\u914d\u7f6e\uff0c\u9ed8\u8ba4\u4e3a `#ff0155bc` \uff09<br \/>\n&#8211; `timeProgressBgColor`:  \u6b4c\u66f2\u64ad\u653e\u8fdb\u5ea6\u6761\u80cc\u666f\u989c\u8272\uff08\u683c\u5f0f\u8be6\u89c1\u4e0b\u65b9 \u989c\u8272\u914d\u7f6e\uff0c\u9ed8\u8ba4\u4e3a `#ffa1c7f6`\uff09<\/p>\n<p>### \u4f4d\u7f6e\u683c\u5f0f\u914d\u7f6e<\/p>\n<p>\u57fa\u672c\u683c\u5f0f\uff1a`[\u6a2a\u5411\u6bd4\u4f8b](+\/-)[\u6a2a\u5411\u504f\u79fb],[\u7eb5\u5411\u6bd4\u4f8b](+\/-)[\u7eb5\u5411\u504f\u79fb]`\uff0c\u82e5\u504f\u79fb\u91cf\u4e3a0\u53ef\u7701\u7565\uff08\u5305\u62ec\u52a0\u51cf\u53f7\uff09<\/p>\n<p>\u4f8b\u5982\uff0c`0.5,1-70` \u8868\u793a\u5c4f\u5e55\u6a2a\u5411\u4e2d\u5fc3\u70b9\u5e95\u90e8\u5411\u4e0a70\u50cf\u7d20\u7684\u4f4d\u7f6e\uff0c`1-5,0+5` \u8868\u793a\u5c4f\u5e55\u53f3\u4e0a\u89d2\u5206\u522b\u5411\u4e0b\u5411\u5de65\u50cf\u7d20\u7684\u4f4d\u7f6e<\/p>\n<p>### \u989c\u8272\u914d\u7f6e<\/p>\n<p>\u57fa\u672c\u683c\u5f0f\uff1a`(0x|#)[8\u4f4d16\u8fdb\u5236\u6570]`\uff0c\u6bcf\u4e24\u4f4d\u5206\u522b\u8868\u793aARGB\uff0c\u5efa\u8bae\u4f7f\u7528\u5728\u7ebf\u62fe\u8272\u5668\uff08\u82e5\u590d\u5236\u7684\u53ea\u67096\u4f4d\uff0c\u8bf7\u624b\u52a8\u5728\u524d\u9762\u52a0\u4e0a\u4e24\u4f4d `ff`\uff09\uff0c\u8bf7\u6ce8\u610f\u6700\u524d\u9762\u9700\u8981\u52a0 `0x` \u6216 `#`<\/p>\n<p>\u4f8b\u5982\uff0c`#ffffffff` \u8868\u793a\u5b8c\u5168\u4e0d\u900f\u660e\u7684\u7eaf\u767d\u8272\uff0c`#ff00aaaa` \u8868\u793a\u5b8c\u5168\u4e0d\u900f\u660e\u7684\u9752\u8272<\/p>\n<p>### \u53ef\u7f13\u5b58\u6b4c\u66f2<\/p>\n<p>\u5373\u7f51\u6613\u4e91\u97f3\u4e50\uff0cQQ\u97f3\u4e50\u4ee5\u53ca\u5176\u4ed6\u7f51\u7edc\u8d44\u6e90<\/p>\n<p>### \u559c\u6b22\u97f3\u4e50<\/p>\n<p>\u4ec5\u652f\u6301\u7f51\u6613\u4e91\u97f3\u4e50<\/p>\n<p>### \u5b89\u5168\u7684\u97f3\u4e50\u6765\u6e90<\/p>\n<p>\u5373\u7f51\u6613\u4e91\u97f3\u4e50\u548cQQ\u97f3\u4e50\uff0c\u4e0d\u542b\u672c\u5730\u8d44\u6e90\u3001\u5176\u4ed6\u7f51\u7edc\u8d44\u6e90<\/p>\n<p>### Q &#038; A<\/p>\n<p>\u6682\u65e0<\/p>\n<p>![Hud screen](https:\/\/cdn.modrinth.com\/data\/cached_images\/468f58a058ff5c249660ac180cabb53ac64b4c8e.webp)<\/p>\n<p>![Index screen](https:\/\/cdn.modrinth.com\/data\/cached_images\/7d79c538acc724c4c9ce249f1ae8d740b43d0339.webp)<\/p>\n<p>![General playlist](https:\/\/cdn.modrinth.com\/data\/cached_images\/a60150c9bb6d39a351b1a8a1f49ce913e2557abe.webp)<\/p>\n<p>![Search screen](https:\/\/cdn.modrinth.com\/data\/cached_images\/0e2b2933e5b6785675f5f1043e2722bf39338814.webp)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Listening to musics from Local\/Online\/NeteaseCloud\/QQMusic in Minecraft.<br \/>\n\u5728Minecraft\u6e38\u620f\u4e2d\u542c\u672c\u5730\/\u5728\u7ebf\/\u7f51\u6613\u4e91\/QQ\u97f3\u4e50!<br \/>\n\u652f\u6301\u670d\u52a1\u5668\u6b4c\u66f2\u5206\u4eab\u3001\u70b9\u64ad\uff01<\/p>\n","protected":false},"featured_media":45019,"template":"","meta":{"_minecraft_slug":"concerto","_minecraft_project_id":"A0VZd1kW","_minecraft_author":"GregTao","_minecraft_license":"GPL-3.0-only","_minecraft_downloads":33150,"_minecraft_follows":32,"_minecraft_client_side":"optional","_minecraft_server_side":"optional","_minecraft_storage_type":"zip","_minecraft_archive_name":"concerto.zip","_minecraft_size_bytes":435734027,"_minecraft_version_count":148,"_minecraft_updated_at":"2026-05-15T23:13:48.163928Z","_minecraft_date_created":"2024-05-24T21:30:32.490740Z","_minecraft_date_modified":"2026-05-14T18:14:10.537520Z","_minecraft_project_url":"https:\/\/modrinth.com\/mod\/concerto","_minecraft_icon_attachment_id":45019,"_minecraft_imported_at":"2026-06-02T04:06:19+00:00","_minecraft_import_hash":"552be1c7ff787c51ff41019d751d7f16","_minecraft_versions":"","_minecraft_links":"","_minecraft_gallery":"","_minecraft_api_metadata":""},"mod_category":[97,104,89,126,158,127,867],"mod_loader":[99,106,160,132],"minecraft_version":[118,119,120,46,47,48,49,50,51,52,53,54,55,56,57,58,59,36,60,93,94,101,102,62,37,40,41,73,74,38,78,79,80,81,82,83,167,163],"class_list":["post-45018","mod","type-mod","status-publish","has-post-thumbnail","hentry","mod_category-fabric","mod_category-forge","mod_category-game-mechanics","mod_category-management","mod_category-neoforge","mod_category-paper","mod_category-social","mod_loader-fabric","mod_loader-forge","mod_loader-neoforge","mod_loader-paper","minecraft_version-1-16","minecraft_version-1-16-1","minecraft_version-1-16-2","minecraft_version-1-16-3","minecraft_version-1-16-4","minecraft_version-1-16-5","minecraft_version-1-17","minecraft_version-1-17-1","minecraft_version-1-18","minecraft_version-1-18-1","minecraft_version-1-18-2","minecraft_version-1-19","minecraft_version-1-19-1","minecraft_version-1-19-2","minecraft_version-1-19-3","minecraft_version-1-19-4","minecraft_version-1-20","minecraft_version-1-20-1","minecraft_version-1-20-2","minecraft_version-1-20-3","minecraft_version-1-20-4","minecraft_version-1-20-5","minecraft_version-1-20-6","minecraft_version-1-21","minecraft_version-1-21-1","minecraft_version-1-21-10","minecraft_version-1-21-11","minecraft_version-1-21-2","minecraft_version-1-21-3","minecraft_version-1-21-4","minecraft_version-1-21-5","minecraft_version-1-21-6","minecraft_version-1-21-7","minecraft_version-1-21-8","minecraft_version-1-21-9","minecraft_version-26-1","minecraft_version-26-1-1","minecraft_version-26-1-2"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Concerto - Minecraft<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/vpesports.com\/minecraft\/mods\/concerto\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Concerto - Minecraft\" \/>\n<meta property=\"og:description\" content=\"Listening to musics from Local\/Online\/NeteaseCloud\/QQMusic in Minecraft. \u5728Minecraft\u6e38\u620f\u4e2d\u542c\u672c\u5730\/\u5728\u7ebf\/\u7f51\u6613\u4e91\/QQ\u97f3\u4e50! \u652f\u6301\u670d\u52a1\u5668\u6b4c\u66f2\u5206\u4eab\u3001\u70b9\u64ad\uff01\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vpesports.com\/minecraft\/mods\/concerto\/\" \/>\n<meta property=\"og:site_name\" content=\"Minecraft\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/concerto\\\/\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/concerto\\\/\",\"name\":\"Concerto - Minecraft\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/concerto\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/concerto\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/concerto-icon-e7d9d7ad495449df3cdd801952a7a5e98d434ed7.png\",\"datePublished\":\"2026-06-02T04:06:18+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/concerto\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/concerto\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/concerto\\\/#primaryimage\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/concerto-icon-e7d9d7ad495449df3cdd801952a7a5e98d434ed7.png\",\"contentUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/concerto-icon-e7d9d7ad495449df3cdd801952a7a5e98d434ed7.png\",\"width\":512,\"height\":512},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/concerto\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mods\",\"item\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Concerto\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/\",\"name\":\"Minecraft\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Concerto - Minecraft","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/vpesports.com\/minecraft\/mods\/concerto\/","og_locale":"en_US","og_type":"article","og_title":"Concerto - Minecraft","og_description":"Listening to musics from Local\/Online\/NeteaseCloud\/QQMusic in Minecraft. \u5728Minecraft\u6e38\u620f\u4e2d\u542c\u672c\u5730\/\u5728\u7ebf\/\u7f51\u6613\u4e91\/QQ\u97f3\u4e50! \u652f\u6301\u670d\u52a1\u5668\u6b4c\u66f2\u5206\u4eab\u3001\u70b9\u64ad\uff01","og_url":"https:\/\/vpesports.com\/minecraft\/mods\/concerto\/","og_site_name":"Minecraft","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/vpesports.com\/minecraft\/mods\/concerto\/","url":"https:\/\/vpesports.com\/minecraft\/mods\/concerto\/","name":"Concerto - Minecraft","isPartOf":{"@id":"https:\/\/vpesports.com\/minecraft\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/concerto\/#primaryimage"},"image":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/concerto\/#primaryimage"},"thumbnailUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/concerto-icon-e7d9d7ad495449df3cdd801952a7a5e98d434ed7.png","datePublished":"2026-06-02T04:06:18+00:00","breadcrumb":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/concerto\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vpesports.com\/minecraft\/mods\/concerto\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/vpesports.com\/minecraft\/mods\/concerto\/#primaryimage","url":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/concerto-icon-e7d9d7ad495449df3cdd801952a7a5e98d434ed7.png","contentUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/concerto-icon-e7d9d7ad495449df3cdd801952a7a5e98d434ed7.png","width":512,"height":512},{"@type":"BreadcrumbList","@id":"https:\/\/vpesports.com\/minecraft\/mods\/concerto\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/vpesports.com\/minecraft\/"},{"@type":"ListItem","position":2,"name":"Mods","item":"https:\/\/vpesports.com\/minecraft\/mods\/"},{"@type":"ListItem","position":3,"name":"Concerto"}]},{"@type":"WebSite","@id":"https:\/\/vpesports.com\/minecraft\/#website","url":"https:\/\/vpesports.com\/minecraft\/","name":"Minecraft","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/vpesports.com\/minecraft\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod\/45018","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod"}],"about":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/types\/mod"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media\/45019"}],"wp:attachment":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media?parent=45018"}],"wp:term":[{"taxonomy":"mod_category","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_category?post=45018"},{"taxonomy":"mod_loader","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_loader?post=45018"},{"taxonomy":"minecraft_version","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/minecraft_version?post=45018"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}