AI prompts
base on A multilingual YouTube Music frontend for Android, prioritize performance <div align="center">
<img alt="project's banner" src="./assets/design/app_banner.png" width="250px" />
<p>
<b>Kreate</b> is a <a href="https://github.com/fast4x/RiMusic">RiMusic</a> folk with performance in mind
</p>
<br>
[](https://github.com/knighthat/kreate/releases/latest)
[](https://translate.kreate.knighthat.me/project/kreate)

</div>
# ❗ IMPORTANT
> Updated March 14 2025
The app is now officially released under new ID. Therefore, fresh installation is required.
Fortunately, @knighthat has introduced migration system to help you transfer data from old Kreate
to new app effortlessly.
For more details, check out [this article](https://kreate.knighthat.me/usr/how-to-migrate).
# 📲 Installation
[](https://github.com/knighthat/RiMusic/releases/latest)
[](http://apps.obtainium.imranr.dev/redirect.html?r=obtainium://app/%7B%22id%22%3A%20%22me.knighthat.kreate%22%2C%20%22url%22%3A%20%22https%3A%2F%2Fgithub.com%2Fknighthat%2FKreate%22%2C%20%22author%22%3A%20%22knighthat%22%2C%20%22name%22%3A%20%22Kreate%22%2C%20%22preferredApkIndex%22%3A%200%2C%20%22additionalSettings%22%3A%20%22%7B%5C%22includePrereleases%5C%22%3Afalse%2C%5C%22fallbackToOlderReleases%5C%22%3Atrue%2C%5C%22filterReleaseTitlesByRegEx%5C%22%3A%5C%22%5C%22%2C%5C%22filterReleaseNotesByRegEx%5C%22%3A%5C%22%5C%22%2C%5C%22verifyLatestTag%5C%22%3Atrue%2C%5C%22sortMethodChoice%5C%22%3A%5C%22date%5C%22%2C%5C%22useLatestAssetDateAsReleaseDate%5C%22%3Atrue%2C%5C%22releaseTitleAsVersion%5C%22%3Afalse%2C%5C%22trackOnly%5C%22%3Afalse%2C%5C%22versionExtractionRegEx%5C%22%3A%5C%22%5C%22%2C%5C%22matchGroupToUse%5C%22%3A%5C%22%5C%22%2C%5C%22versionDetection%5C%22%3Atrue%2C%5C%22releaseDateAsVersion%5C%22%3Afalse%2C%5C%22useVersionCodeAsOSVersion%5C%22%3Afalse%2C%5C%22apkFilterRegEx%5C%22%3A%5C%22.*-minified.*%5C%22%2C%5C%22invertAPKFilter%5C%22%3Afalse%2C%5C%22autoApkFilterByArch%5C%22%3Atrue%2C%5C%22appName%5C%22%3A%5C%22Kreate%5C%22%2C%5C%22appAuthor%5C%22%3A%5C%22Knight%20Hat%5C%22%2C%5C%22shizukuPretendToBeGooglePlay%5C%22%3Afalse%2C%5C%22allowInsecure%5C%22%3Afalse%2C%5C%22exemptFromBackgroundUpdates%5C%22%3Afalse%2C%5C%22skipUpdateNotifications%5C%22%3Afalse%2C%5C%22about%5C%22%3A%5C%22%5C%22%2C%5C%22refreshBeforeDownload%5C%22%3Afalse%7D%22%7D%0A)
[](https://f-droid.org/packages/me.knighthat.kreate)
[](https://www.openapk.net/kreate/me.knighthat.kreate/)
[](https://www.androidfreeware.net/download-kreate-apk.html)
[](https://apt.izzysoft.de/fdroid/index/apk/me.knighthat.kreate)
# ✨ Features
- **Multilingual:** English, Italian, German, Russian, French, Spanish, Czech, Turkish, Romanian and more. Contributions for other languages are welcome
- Friendly designs
- UI Mode, switch from RiMusic to classic ViMusic style, and vice versa.
- Auto cache songs for offline playback with a custom cache size
- Download songs or entire playlists for offline playback (not cache)
- Background playback
- Listening statistics
- Audio visualizer on player with many type of effects.
> THIS FEATURE REQUIRES MIC PERMISSION, ONLY AVAILABLE IF ACTIVATED FROM SETTINGS. Full list of permissions (available soon)
- News, mood, musical genres, new albums from favourite artists
- Import/Export online, RiMusic playlists, can be shared with friends
- Fetch, display, edit, translate synchronized, or not, songs lyrics
- Customizable themes
- Sleep timer with customizable time
- Audio control: volume app, device, playback speed, pitch, normalization, skip silence
- Support for Android Auto, Android TV, and YouTube video
- Widgets (experimental)
- Check for Updates, which can be enabled or disabled in settings
- Export cached/downloaded media
- Export settings
- Weekly update
- Plays music even with no internet connection
# 📷 Screenshots
<div align="center">
<img alt="screenshot 1" src="./fastlane/metadata/android/en-US/images/phoneScreenshots/1.png" />
<img alt="screenshot 1" src="./fastlane/metadata/android/en-US/images/phoneScreenshots/2.png" />
<img alt="screenshot 1" src="./fastlane/metadata/android/en-US/images/phoneScreenshots/3.png" />
<img alt="screenshot 1" src="./fastlane/metadata/android/en-US/images/phoneScreenshots/4.png" />
<img alt="screenshot 1" src="./fastlane/metadata/android/en-US/images/phoneScreenshots/5.png" />
<img alt="screenshot 1" src="./fastlane/metadata/android/en-US/images/phoneScreenshots/6.png" />
</div>
# 🌐 Supported languages
- **Afrikaans** thanks to [HelloZebra1133](https://crowdin.com/profile/HelloZebra1133)
- **Arabic:** thanks to [ABS zarzis](https://crowdin.com/profile/abszar), [Ahmad Al Juwaisri](https://crowdin.com/profile/juwaisri)
- **Azerbaijani** thanks to [Nizami Səmidov](https://crowdin.com/profile/nizamismidov4), [Notesuree](https://github.com/Notesuree)
- **Bangla:** thanks to [Ann Naser Nabil](https://github.com/AnnNaserNabil)
- **Bashkir:** thanks to [Shilave malay](https://crowdin.com/profile/Bash.boy)
- **Catalan:** thanks to [Adrià Martínez](https://crowdin.com/profile/marxally), [Aniol](https://crowdin.com/profile/aniol), [EMC_Translator](https://crowdin.com/profile/EMC_Translator)
- **Chinese Simplified:** thanks to [benhaotang](https://crowdin.com/profile/benhaotang), [SharkChan0622](https://github.com/SharkChan0622)
- **Chinese Traditional:** thanks to [YeeTW](https://github.com/yjcTW), [SharkChan0622](https://github.com/SharkChan0622)
- **Czech:** thanks to [ikanakova](https://github.com/ikanakova), [JZITNIK-github](https://github.com/JZITNIK-github)
- **Danish** thanks to [cultcats](https://crowdin.com/profile/cultcats)
- **Dutch:** thanks to [BabyBenefactor](https://crowdin.com/profile/BabyBenefactor)
- **English:** thanks to [Alejandro Moctezuma](https://crowdin.com/profile/alejandromoc), [twistios](https://crowdin.com/profile/twistios), [Smk90](https://crowdin.com/profile/smk90), [CanIn](https://crowdin.com/profile/canin), [koliwan](https://crowdin.com/profile/koliwan), [Glich440](https://github.com/Glich440), [fast4x](https://github.com/fast4x)
- **Esperanto:** thanks to [kefiiris](https://github.com/kefiiris)
- **Estonian** thanks to [beez276](https://crowdin.com/profile/beez276)
- **Filipino** thanks to [Clyde-Timonera](https://github.com/Clyde-Timonera)
- **Finnish:** thanks to [Smk90](https://crowdin.com/profile/smk90), [rikalaj](https://crowdin.com/profile/rikalaj)
- **French:** thanks to [Mickael81](https://crowdin.com/profile/mickael81), [esophagusdecency](https://crowdin.com/profile/esophagusdecency), [Mickael81](https://github.com/Mickael81), [NEVARLeVrai](https://github.com/NEVARLeVrai)
- **Galician:** thanks to [zordor](https://crowdin.com/profile/zordor), [ninjum](https://crowdin.com/profile/ninjum)
- **German:** thanks to [twistqj](https://crowdin.com/profile/twistqj), [nitro4542](https://crowdin.com/profile/nitro4542), [twistios](https://crowdin.com/profile/twistios), [Eddisch](https://crowdin.com/profile/eddisch2010), [materialred](https://crowdin.com/profile/materialred), [OlimitLolli](https://crowdin.com/profile/OlimitLolli), [Lolozweipunktnull](https://crowdin.com/profile/Lolozweipunktnull), [Seryoga1984](https://crowdin.com/profile/Seryoga1984), [Conk](https://crowdin.com/profile/conk), [siggi1984](https://github.com/siggi1984)
- **Greek:** thanks to [Marinkas](https://github.com/Marinkas)
- **Hebrew:** thanks to [opcitgv](https://crowdin.com/profile/opcitgv), [TheCreeperDuck](https://crowdin.com/profile/thecreeperduck)
- **Hindi:** thanks to [NikunjKhangwal](https://crowdin.com/profile/nikunjkhangwal), [Sharunkumar](https://crowdin.com/profile/sharunkumar), [Th3-C0der](https://github.com/Th3-C0der)
- **Hungarìan:** thanks to [Zan1456](https://crowdin.com/profile/Zan1456), [Ndvok](https://crowdin.com/profile/ndvok)
- **Italian:** thanks to [Fabio Iotti](https://crowdin.com/profile/bruce965), [agefcgo](https://crowdin.com/profile/agefcgo), [CiccioDerole](https://crowdin.com/profile/CiccioDerole), [fast4x](https://github.com/fast4x), [Strange-IPmart ](https://github.com/Strange-IPmart)
- **Indonesian:** thanks to [luthfialfarabi](https://crowdin.com/profile/luthfialfarabi), [teddysulaimanGL](https://github.com/teddysulaimanGL), [Fausta Ahmad](https://crowdin.com/profile/faustaahmad)
- **Interlingua** thanks to [softinterlingua](https://github.com/softinterlingua)
- **Japanese:** thanks to [maboroshin](https://crowdin.com/profile/maboroshin), [Mid_Vur_Shaan](https://crowdin.com/profile/Mid_Vur_Shaan)
- **Malayalam** thanks to [XDreamist](https://crowdin.com/profile/xdreamist)
- **Korean:** thanks to [ZeroZero00](https://crowdin.com/profile/ZeroZero00), [TsyQax](https://crowdin.com/profile/TsyQax)
- **Norwegian:** thanks to [Xyrcon](https://crowdin.com/profile/xyrcon)
- **Odia:** thanks to [redpanda9348](https://crowdin.com/profile/redpanda9348), [Get100percent](https://github.com/Get100percent)
- **Persian:** thanks to [CUMOON](https://github.com/CUMOON)
- **Polish:** thanks to [Krzysztof](https://crowdin.com/profile/scrummybingus), [severitysingular](https://crowdin.com/profile/severitysingular), [Zduniusz](https://crowdin.com/profile/zduniusz), [AntoniNowak](https://crowdin.com/profile/AntoniNowak), [roklc](https://github.com/roklc), [Adam Kop](https://crowdin.com/profile/damianadam000)
- **Portuguese:** thanks to [Juan Ignacio Tejera](https://crowdin.com/profile/originaljuani), [ManuelCoimbra](https://crowdin.com/profile/ManuelCoimbra), [NEVARLeVrai](https://github.com/NEVARLeVrai)
- **Portuguese, Brazilian:** thanks to [vs-machado](https://crowdin.com/profile/vs-machado), [luxdev01](https://crowdin.com/profile/luxdev01), [VitoriaLima1802](https://crowdin.com/profile/vitorialima1802), [xSyntheticWave](https://crowdin.com/profile/xSyntheticWave), [RegularWater](https://crowdin.com/profile/RegularWater), [NEVARLeVrai](https://github.com/NEVARLeVrai)
- **Romanian:** thanks to [OrangeZXZ](https://github.com/OrangeZxZ)
- **Russian:** thanks to [Eddisch](https://crowdin.com/profile/eddisch2010), [Michael Müller](https://crowdin.com/profile/xqzme1337), [HighMode](https://crowdin.com/profile/highmode), [koliwan](https://crowdin.com/profile/koliwan), [Nebula-Mechanica](https://crowdin.com/profile/Nebula-Mechanica), [Alnoer](https://crowdin.com/profile/Alnoer), [kptmx](https://crowdin.com/profile/kptmx), [Crayz310](https://github.com/Crayz310), [Vladimir](https://crowdin.com/profile/vladimir15426), [siggi1984](https://github.com/siggi1984)
- **Serbian (Cyrillic, Latin)** thanks to [IvanMaksimovic77](https://github.com/IvanMaksimovic77)
- **Spanish:** thanks to [MS-PC](https://crowdin.com/profile/ms-pc), [Alejandro Moctezuma](https://crowdin.com/profile/alejandromoc), [Juan Ignacio Tejera](https://crowdin.com/profile/originaljuani), [iOSStarWorld](https://crowdin.com/profile/iosstarworld), [Corotyest](https://crowdin.com/profile/corotyest), [DanielSevillano](https://github.com/DanielSevillano), [Fabian Urra](https://crowdin.com/profile/nsagcl)
- **Sinhala:** thanks to [VINULA2007](https://crowdin.com/profile/VINULA2007)
- **Swedish:** thanks to [sebbe.ekman](https://crowdin.com/profile/sebbe.ekman), [Dženan](https://crowdin.com/profile/Dženan)
- **Tamil** thanks to [Vignesh-p-s](https://crowdin.com/profile/vignesh-p-s)
- **Turkish:** thanks to [abfreeman](https://github.com/abfreeman), [2010furs](https://github.com/2010furs), [Muha Aliss](https://crowdin.com/profile/muhaaliss), [mikropsoft](https://github.com/mikropsoft)
- **Telugu** thanks to [SureshTimma](https://crowdin.com/profile/sureshtimma)
- **Ukrainian:** thanks to [Avin](https://crowdin.com/profile/avinateachip), [Michael Müller](https://crowdin.com/profile/xqzme1337), [NiXT0y](https://crowdin.com/profile/nixt0y), [Crayz310](https://github.com/Crayz310)
- **Vietnamese:** thanks to [teaminh](https://crowdin.com/profile/teaminh)
> Don't see your langague here? [Request one](https://translate.kreate.knighthat.me/project/kreate) now.
# 🤝 Contributing
## To improve functionalities
> Pull requests are welcome
To **develop new functions** or **fix a bug**, fork the repository, open a pull request.
For more details, please refer to [the documentation](https://kreate.knighthat.me/dev/getting_started).
## To translate app
To **translate** or **improve a translation**, **fix typo**, or to **request new language**.
[](https://translate.kreate.knighthat.me/project/kreate)
## To write documentation
To help others understand the app, please visit [knighthat/Kreate-docs](https://github.com/knighthat/Kreate-docs) repository.
## If you are good at designing
> Whether UI/UX are welcomed
Submit your designs by [opening a ticket](https://github.com/knighthat/Kreate/issues/new?template=feature_request.yaml)
# 🫂 Acknowledgements
- [**RiMusic**](https://github.com/fast4x/RiMusic)
- RiMusic previous Logo, many current icons from [jaimtres](https://github.com/jaimtres)
- Player designed by [aneesh1122](https://github.com/aneesh1122)
- [**YouTube-Internal-Clients**](https://github.com/zerodytrash/YouTube-Internal-Clients): A python script that discovers hidden YouTube API clients. Just a research project.
- [**Ionicons**](https://github.com/ionic-team/ionicons): Premium hand-crafted icons built by Ionic, for Ionic apps, web apps everywhere.
- [**FlatIcon.com**](https://www.flaticon.com/): Download Free Icons, Stickers for your projects. Resources made by, for designers.
- [**Translator**](https://github.com/therealbush/translator): A simple, free Google Translate library for Kotlin/JVM, Java.
- [**KuGou**](https://www.kugou.com): Lyrics provider
- [**LrcLib**](https://lrclib.net): Lyrics provider
- [**HypnoticCanvas**](https://mikepenz.github.io/HypnoticCanvas/): A shader modifier for Compose Multiplatform / Jetpack Compose
- [**MedieroAF**](https://github.com/MedieroAF): App logo
# ⚠️ Disclaimer
This project is built on top of [RiMusic](https://github.com/fast4x/RiMusic) but has no relation to the original author.
Furthermore, its contents are not affiliated with, funded, authorized, endorsed by, or in any way associated with YouTube,
Google LLC or any of its affiliates, subsidiaries.
Any trademark, service mark, trade name, or other intellectual property rights used in this project are owned by the respective owners.
", Assign "at most 3 tags" to the expected json: {"id":"13404","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"