AI prompts
base on 🎵 Plays & manages your music library. Looks beautiful & juicy. Playlists, visuals, synced lyrics, pitch shift, volume boost & more. <img align="left" src="https://user-images.githubusercontent.com/28951144/190144379-364185ea-3e3e-4f41-87fd-9581acfc7f7f.png" width="64" height="64"></img>
<h1 align="left">Harmonoid</h1>
**🎵 Plays & manages your music library. Looks beautiful & juicy.**
[Website](https://harmonoid.com) • [Download](https://harmonoid.com/downloads) • [Discord](https://discord.gg/2Rc3edFWd8) • Available for Windows, Linux & Android!
![](https://github.com/harmonoid/harmonoid/blob/assets/win32/0.webp?raw=true)
![](https://github.com/harmonoid/harmonoid/blob/assets/win32/1.webp?raw=true)
![](https://github.com/harmonoid/harmonoid/blob/assets/win32/2.webp?raw=true)
![](https://github.com/harmonoid/harmonoid/blob/assets/win32/3.webp?raw=true)
## Videos
Enjoy that 🧈 buttery experience.
https://user-images.githubusercontent.com/28951144/220771329-de074abb-41c6-4168-910a-d9e973f68421.mp4
https://user-images.githubusercontent.com/28951144/220771351-c58f125c-6495-4a06-8109-77fd8f061db1.mp4
## Features
- Music library management based on metadata tags.
- Capable of indexing 30+ files/second & saves cache for future app start-ups.
- Very strictly follows Material Design guidelines for UI & animations.
- mpv based music playback for strong format support (on Linux & Windows) using `dart:ffi`.
- Taskbar & System Media Transport Controls for Windows.
- D-Bus MPRIS controls for Linux.
- Small installer (≈ 35 MB) & low RAM usage (≈ 150 MB).
- Time synced lyrics for all your music.
- Ability to create persistent or "Now playing" playlists.
- Context menu integrations & file associations (exclusive to setup version).
- Discord RPC integration with album art support & "Find"/"Listen" buttons.
- Portable (if you wish).
- Pitch shifting.
- Volume boost.
- Speed adjustment.
- Details editor.
- Cross-platform (currently aiming Windows, Linux & Android).
- Does not use electron.js.
- Music visuals.
- Metadata reader.
- Gapless playback.
- Multiple artist support.
- Online URLs player.
- .LRC file compatibility (mannual loading or automatic lookup in folder).
- Fallback cover support. e.g. `cover.jpg`, `Folder.jpg` etc.
- User specific libmpv flags & options.
- Window position & maximize state remembering.
- Excellent backward compatibility. Windows 7 or higher. Android 5.0 or higher.
- Built-in YouTube Music client.
## Why
It's really hard to find software with good design & animations on desktop. It's almost like desktop app developers don't have faith in adding animations to their UI. Other music players, which look kind-of good don't work properly, refuse to support an audio format, read tags incorrectly, don't have my favorite feature or simply use [electron.js](https://electronjs.org).
Harmonoid very strictly implements [Material Design](https://user-images.githubusercontent.com/28951144/187515841-265b2f6e-4ee3-4db5-b06d-0f7f5d684da9.webm) to be a consistent, cohesive & modern music player for all platforms.
There are no inconsistent paddings, spacings or weird alignments to make me feel uncomfortable. It's built with care & proper time is given to everything. Learn more about the project on [official website](https://harmonoid.com/) [until I can afford this domain].
## Supporters
### Patreons
- [Oleks](https://www.patreon.com/user/creators?u=28979760) • 4.50 € per month.
- [Tse Loki](https://www.patreon.com/user/creators?u=2866352) • 2 € per month.
## Support
If you enjoy using this music player, please consider buying me a coffee.
- [PayPal](https://paypal.me/alexmercerind)
- [Patreon](https://patreon.com/harmonoid)
- [GitHub Sponsors](https://github.com/sponsors/alexmercerind)
## Planned Features
May be found at: [What's next for Harmonoid? & Release Goals](https://github.com/harmonoid/harmonoid/issues/348).
## Mobile
<table>
<tr>
<td>
<img src='https://github.com/harmonoid/harmonoid/blob/assets/android/0.webp?raw=true'>
</td>
<td>
<img src='https://github.com/harmonoid/harmonoid/blob/assets/android/1.webp?raw=true'>
</td>
<td>
<img src='https://github.com/harmonoid/harmonoid/blob/assets/android/2.webp?raw=true'>
</td>
<td>
<img src='https://github.com/harmonoid/harmonoid/blob/assets/android/3.webp?raw=true'>
</td>
</tr>
<tr>
<td>
<img src='https://github.com/harmonoid/harmonoid/blob/assets/android/4.webp?raw=true'>
</td>
<td>
<img src='https://github.com/harmonoid/harmonoid/blob/assets/android/5.webp?raw=true'>
</td>
<td>
<img src='https://github.com/harmonoid/harmonoid/blob/assets/android/6.webp?raw=true'>
</td>
<td>
<img src='https://github.com/harmonoid/harmonoid/blob/assets/android/7.webp?raw=true'>
</td>
</tr>
</table>
## Translate
You can help me by adding or updating translations for Harmonoid at [harmonoid/translations](https://github.com/harmonoid/translations) repository.
## License
Harmonoid & the source code in this repository is under [End-User License Agreement for Harmonoid](https://github.com/harmonoid/harmonoid/blob/master/EULA.txt?raw=true).
", Assign "at most 3 tags" to the expected json: {"id":"12087","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"