How morpheapp/morphe-patches works
Morphe Patches is a set of modifications for YouTube, YouTube Music, Reddit and related Android apps. Users select/apply patches to a supported app, then use the resulting features and settings in playback, browsing and media workflows. The tree shows patch definitions alongside runtime extension code; the excerpts reveal only selected integrations, so uncertain wiring is omitted or marked dashed rather than treated as inspected.
Main entry points: LyricsManager.java Lyrics manager · patches Patch definitions · settings/Settings.java Music settings · settings/Settings.java YouTube settings
Components 19
App modifications
- Patch definitions
patches/src/main/kotlin/app/morphe/patches - Music extension
extensions/music/src/main/java/app/morphe/extension/music/patches - YouTube extension
extensions/youtube/src/main/java/app/morphe/extension/youtube
YouTube features
- Series tracker
extensions/youtube/src/main/java/app/morphe/extension/youtube/series/TrackerService.java - Niconico comments
extensions/youtube/src/main/java/app/morphe/extension/youtube/niconicocomments/NiconicoCommentsController.java - SponsorBlock
extensions/shared-youtube/library/src/main/java/app/morphe/extension/shared/sponsorblock/SegmentPlaybackController.java - Voice translation
extensions/youtube/src/main/java/app/morphe/extension/youtube/patches/voiceovertranslation/TTSEngine.java - Speech cache
extensions/youtube/src/main/java/app/morphe/extension/youtube/patches/voiceovertranslation/TTSCache.java
Music features
- Lyrics manager
extensions/music/src/main/java/app/morphe/extension/music/patches/lyrics/LyricsManager.java - Lyrics formatting
extensions/music/src/main/java/app/morphe/extension/music/patches/lyrics/model/MiniLyricsFormatter.java - Offline playback
extensions/music/src/main/java/app/morphe/extension/music/patches/downloads/OfflinePlaybackService.java - Offline storage
extensions/music/src/main/java/app/morphe/extension/music/patches/downloads/OfflineStorage.java - Jam bridge
extensions/music/src/main/java/app/morphe/extension/music/patches/jam/JamBridgeService.java - Jam queue model
extensions/music/src/main/java/app/morphe/extension/music/patches/jam/QueueModel.java
Shared services
- External services
Configuration
- Music settings
extensions/music/src/main/java/app/morphe/extension/music/settings/Settings.java - YouTube settings
extensions/youtube/src/main/java/app/morphe/extension/youtube/settings/Settings.java - Preference UI
extensions/shared/library/src/main/java/app/morphe/extension/shared/settings/preference/AbstractPreferenceFragment.java
Other components
- App user
Connections 19
- App user → Patch definitions: selects patches
README.md - Patch definitions → Music extension: enables runtime
- Patch definitions → YouTube extension: enables runtime
- App user → Music settings: configures
- App user → YouTube settings: configures
- Preference UI → Music settings: binds settings
- Preference UI → YouTube settings: binds settings
- Series tracker → YouTube settings: reads settings
extensions/youtube/src/main/java/app/morphe/extension/youtube/series/TrackerService.java - Series tracker → External services: syncs catalog
- Niconico comments → App user: shows comments
- SponsorBlock → External services: fetches segments
- Lyrics manager → External services: fetches lyrics
- Lyrics manager → Lyrics formatting: uses formatter
extensions/music/src/main/java/app/morphe/extension/music/patches/lyrics/LyricsManager.java - Lyrics manager → Music settings: reads settings
extensions/music/src/main/java/app/morphe/extension/music/patches/lyrics/LyricsManager.java - Offline playback → Offline storage: loads tracks
extensions/music/src/main/java/app/morphe/extension/music/patches/downloads/OfflinePlaybackService.java - Jam bridge → Jam queue model: uses queue model
extensions/music/src/main/java/app/morphe/extension/music/patches/jam/JamBridgeService.java - Jam bridge → External services: bridges companion
- Voice translation → Speech cache: reads and writes
extensions/youtube/src/main/java/app/morphe/extension/youtube/patches/voiceovertranslation/TTSEngine.java - Voice translation → External services: synthesizes speech