openjutsu
One-click character swap for videos: an open-source, local Higgsfield Genjutsu alternative built on ComfyUI and MiniMax H3, with FLUX.3 Klein relighting.
Yoin is a native Android music client. Connect your own server, Spotify and Apple Music, and keep ratings, timestamped notes and synced lyrics across your library.
MediaKotlin · JavaScriptGitHub @p2o51OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Yoin Android music client
Translation pending
Taken from the repository README
Loading the full README.
Read the full README ↗A native Android music client for your own server (Subsonic / OpenSubsonic), Spotify and Apple Music, built with Jetpack Compose and Material 3 Expressive for phones, foldables and tablets.
Score tracks and albums down to 0.1, follow line-by-line synced lyrics, pin notes to the exact second, and look back through album Memories. Local-first by design, with optional sync through hidden files in your own Google Drive or to NeoDB.
One navigation bar that adapts to the window. The same bar becomes a bottom bar on a phone,
a centered bar on a tablet, and a bar that spans two columns when a detail page opens beside the
library. Each slot's width comes from one pure function, so no frame shows a gap.
YoinButtonGroup.kt,
FloatingBottomBar.kt,
WindowAdaptiveRuntime.kt,
docs/adaptive-principles.md
Predictive back built from AOSP's own numbers. Outside the two-column layout, detail pages are separate Activities. Their back
gesture is a port of the platform's cross-activity animation, constant for constant, so leaving a page
feels like the system did it. The navigation bar stays put while the page underneath moves.
BackMotionTokens.kt,
DetailPredictiveBackCollapse.kt,
DetailBackEntering.kt
A covered window that kept drawing. A Perfetto trace showed that the window behind a detail page
still rendered every frame. Pausing its frame clock, plus a few smaller cuts, brought expanded lyrics
on a Pixel Tablet from about 80% CPU to about 20%.
CoveredWindowAnimationGate.kt,
commit ec1dc15f
Versions are taken from gradle/libs.versions.toml.
MediaSession playback serviceStateFlow, manual dependency injectionflowchart TD
UI["Compose screens"] --> VM["ViewModels (StateFlow)"]
VM --> Repo["YoinRepository"]
Repo --> PM["ProfileManager<br/>(active account)"]
PM --> Sub["SubsonicMusicSource"]
PM --> Spo["SpotifyMusicSource"]
PM --> App["AppleMusicSource"]
Repo --> Room[("Room")]
VM --> Play["PlaybackManager"]
Play --> Media3["Media3 / MediaSession"]
Play --> Remote["Spotify App Remote"]
Play --> MusicKit["Apple MusicKit player"]
Every provider implements the same MusicSource interface and uses the same neutral models. A provider
declares which capabilities it supports, and the UI hides what a provider can't do.
See MusicSource.kt.
Most of the implementation code was written by AI coding agents. I made the product and design
decisions, tested on real devices, and set the direction when something broke. The rules the agents
follow are in AGENTS.md, docs/ and the unit tests.
Yoin 0.5 is in a closed test on Google Play for Android 8.0 and later. See yoin.gojyuplus.com for how to join and the user docs.
You need JDK 17 or newer (Android Studio's bundled JBR works) and the Android SDK for API 36.
The project does not build without these:
musickitauth-release-1.1.2.aar and
mediaplayback-release-1.1.1.aar in app/libs/. See
app/libs/README-apple-music.md.../yoin-symbols), or pass -PyoinSymbolsDir=<path>.Each music service also needs your own credentials:
-PspotifyClientId=<id>.services/apple-music-token/. Enter its URL in Settings../gradlew assembleDebug # debug APK
./gradlew test # unit tests
./gradlew ktlintCheck # lint
See CONTRIBUTING.md for the pull request flow and docs/ci-cd.md
for CI and release setup.
Apache-2.0. Third-party notices are in NOTICE.