Requirements: Android 8.1+
Overview: A YouTube Music client with a focus on language and metadata customisation, built with Kotlin and Jetpack Compose for Android.
Features:
Metadata
Edit song, artist, and playlist titles
Set UI and metadata languages separately (ex. display the app’s UI in English and show songs and artists in Japanese)
In-app YouTube Music login for feed personalisation and interaction
Lyrics
Fetch and display lyrics from PetitLyrics, with timed lyrics support (in-progress)
Display timed lyrics above the home feed
Show furigana for Japanese kanji within lyrics using Kuromoji
Song queue
Undo button for queue actions (no more accidental swipe removals)
Radio filters (if provided by YouTube)
‘Play after’ button in the long-press menu for songs
Similar to ‘Play next’, but allows you to select a position in the queue and add the song there directly
Automatically increments the insertion position when used, so the next song you add will be placed after the last (rather than before, as with ‘Play next’)
Multi-select
A multi-select mode can be started by long-pressing on any media item (song, artist, or playlist) from any screen
In multi-select mode, media items can be selected and unselected with a single tap
General actions like downloading and adding to a playlist can be performed, as well as some screen-specific actions such as removing from a playlist or removing/shuffling part of the song queue
YouTube parity
Home feed (with filters support)
Song radio (also with filters support)
Custom radio builder
Like/dislike songs
Subscribe/unsubscribe from artists
Display artists and playlists (in-progress)
Search
Persistent music queue
Home feed
Pin any song, playlist, album, or artist to the top of the home feed
Disable specific recommendation feed rows (such as ‘Listen again’ and ‘Quick picks’) from options
Shows the feed’s most common artists in a row at the top
When offline, the library page is displayed instead
Connectivity
Customisable Discord rich presence (with image support) using KizzyRPC, with in-app login
Editable text
Toggleable ‘open on YouTube’ button and ‘visit project’ button
Theming
UI theme editor
Multiple themes with different names can be created
By default, automatically uses a colour from the current song thumbnail as the theme accent colour
Users can select a different colour from a palette generated using the thumbnail, or select a colour directly from the image
Three modes for theming the player menu:
Use accent colour as background (default)
Use accent colour for elements, with the background using the main background colour
Do not use the accent colour
Three accent colour sources:
Theme colour
Current song accent colour
System theme colour
Playlists
Playlists can be created locally and then, optionally, can be converted to a YouTube playlist on your account
Supports renaming, song add, remove, and reorder, and setting a custom image (currently only selectable from an added song)
Songs can be added from any screen from the long press menu, or by selecting multiple songs
Other
UI theme editor
Option to automatically use a colour from the current song thumbnail as the theme accent colour
Accessibility service for fine volume control, even when screen is off if device is rooted
What’s New:
French added by @RomaricKc1 #249
Turkish added by @mikropsoft #264
Russian added by @nichind #274
Changes
Move the youtubeapi package into a separate library ytm-kt #258
Landscape player:
Improve animation performance
Apply compact mode and bottom bar inset mode before expansion to prevent sudden shift during animation
Fix incorrect queue width with some window sizes
When selecting landscape sidebar settings button, navigate to root settings page
Disable kanji simplification on non-Japanese languages
Add shortcut to toggle player expansion with tab
Improve manual login steps, support brand account login with manual method
Add hex input field to theme colour picker
Load item data on Android URI open
Re-implement lyrics display (improves font scaling/positioning issues)
Add song/default sliders for player wave speed and opacity
Apply extra queue side padding changes immediately
Rewrite RadioInstance (improves radio playback reliability)
Hide unsupported window transparency options on Windows
Renew Android Discord status images implementation
Disable media notification image crop on Android 13+ unless image offset is set
Disable track press on settings sliders #254
On playlist queue insertion, don’t clear queue if playlist is definitely finite
Improve reorderable lists
This app has no advertisements
More Info:
https://github.com/toasterofbread/spmp
Download Instructions:
https://ouo.io/jqTltf3
Mirror:
https://ouo.io/4tTgGc
https://github.com/toasterofbread/spmp/ … versal.apk
https://ouo.io/Q3bDmlV.