Skip to content

Cursor/youtube selection actions 4181 - #2870

Open
kibetmasi wants to merge 76 commits into
PixelPlayerHQ:masterfrom
kibetmasi:cursor/youtube-selection-actions-4181
Open

kibetmasi wants to merge 76 commits into
PixelPlayerHQ:masterfrom
kibetmasi:cursor/youtube-selection-actions-4181

Conversation

@kibetmasi

Copy link
Copy Markdown

No description provided.

kibetmasi and others added 30 commits September 23, 2026 16:55
…d CI release

Add a production SoundCloud experience (session auth, feed/discover/likes,
tiles/list, shuffle, pull-to-refresh, playlist back stack) plus commitlint
enforcement and a Release APK workflow that publishes feature notes.

Co-authored-by: Cursor <cursoragent@cursor.com>
Move nav frame into the ViewModel and inline shuffle defaults so Hilt/KSP
no longer hits Unexpected owner function: null.

Co-authored-by: Cursor <cursoragent@cursor.com>
feat(soundcloud): add SoundCloud tab with feed, search, downloads, and CI release
Remove wearos-apk CI, build only :app in CodeQL, and fix SoundCloud
experimental OptIn so release compiles.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
…uild

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
…tings

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
…tiles

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Add media3-exoplayer-hls so HLS streams no longer crash/spin forever, and show the active track in SoundCloud lists/tiles.

Co-authored-by: Cursor <cursoragent@cursor.com>
Previously up to 40 NewPipe StreamInfo calls blocked play. HLS enables
playback but does not fix that latency; play immediately then prefetch
the rest of the queue.

Co-authored-by: Cursor <cursoragent@cursor.com>
Fall back to linting HEAD when github.event.before is no longer a
reachable commit after history rewrite.

Co-authored-by: Cursor <cursoragent@cursor.com>
Keep album art clear with a small EQ badge, shrink row actions, and
use horizontal pagers for main tabs and Feed shelves.

Co-authored-by: Cursor <cursoragent@cursor.com>
Gray out tracks with no stream and advance the queue instead of stopping playback. Embed real metadata and cover art on download, and add a setting to keep those files off the main library.

Co-authored-by: Cursor <cursoragent@cursor.com>
kibetmasi and others added 27 commits September 27, 2026 16:22
Use the normal phone WebView layout for YouTube account sign-in.

Co-authored-by: Cursor <cursoragent@cursor.com>
Keep a recently played row at the top of Feed. Load liked songs from YouTube Music.

Co-authored-by: Cursor <cursoragent@cursor.com>
Ask playlist LM directly and save music cookies during sign-in.

Co-authored-by: Cursor <cursoragent@cursor.com>
Use the current client, the music auth cookie, and the visitor id.

Co-authored-by: Cursor <cursoragent@cursor.com>
Browse playlist LM the way InnerTune does and skip regular YouTube likes.

Co-authored-by: Cursor <cursoragent@cursor.com>
Open the now-playing card only when it is tapped.

Co-authored-by: Cursor <cursoragent@cursor.com>
Match the active Music client and build Feed and Radio from the user's music.

Co-authored-by: Cursor <cursoragent@cursor.com>
Show the keyboard and keep the clear control aligned to the input end.

Co-authored-by: Cursor <cursoragent@cursor.com>
Capture VISITOR_DATA and DATASYNC_ID from the login WebView (KuroMusic/InnerTune style), fall back to
sw.js_data and the page config with cookies, and send them as context.client.visitorData and
context.user.onBehalfOfUser so InnerTube answers for the signed-in channel.

Prefer music.youtube.com cookies when importing, verify the session via account/account_menu,
load the personalized FEmusic_home shelves for the Feed and FEmusic_liked_playlists for the
Playlists tab, and report a clear sign-in error when Liked Music comes back logged out.

Co-authored-by: Cursor <cursoragent@cursor.com>
Skip silence is a new playback setting wired through DataStore to both
ExoPlayer instances, so silent passages inside a track are trimmed.

Start playback sooner: the load control now reads its numbers from
loadControlBufferProfileFor, which asks for 1s of audio before starting
instead of 2.5s, and the YouTube screen resolves the first few tracks of
the visible list in the background so a tap plays from cache.

Co-authored-by: Cursor <cursoragent@cursor.com>
Liked Music was a single 100-song fetch, so nothing past the first page
was reachable. The client now returns a page plus its continuation token,
and the Liked list pulls the next page when the user scrolls near the end,
showing a spinner while it loads.

Order is YouTube Music's own, newest like first, so the latest likes stay
at the top and older ones come in as you scroll.

Co-authored-by: Cursor <cursoragent@cursor.com>
The first Liked page now follows YouTube Music order, newest at the top.
Local in-app likes no longer get appended, which had buried new songs.

Scroll near the end of the list asks InnerTube for the next shelf page
using the real playlist continuation, not a random token from the JSON.
An empty page ends the list so older likes keep arriving as you go down.

Co-authored-by: Cursor <cursoragent@cursor.com>
Tapping the track that is already loaded now calls playPause so playback
keeps its position. A new song still starts from the beginning.

Co-authored-by: Cursor <cursoragent@cursor.com>
Open Recap-style playlists with InnerTube VL browse like KuroMusic, and
send like/like plus like/removelike so hearts actually hit Liked Music.

A first tap starts the song; a later tap on the same track pauses or
resumes. Long-press selects tracks to add to a library playlist or a new
one. About now lists KibetMasi only, unused permissions are gone, and
the changelog sheet stays half-height until you scroll it open.

Co-authored-by: Cursor <cursoragent@cursor.com>
Opening still started Cast discovery and Bluetooth receivers without those permissions, so Android 14+ killed the process.

Co-authored-by: Cursor <cursoragent@cursor.com>
Keep machine-local Cursor rules out of git.

Co-authored-by: Cursor <cursoragent@cursor.com>
The Playlists tab shows the current cover in front and a glimpse
of the next playlist to the right.

Co-authored-by: Cursor <cursoragent@cursor.com>
Tapping Download called canRequestPackageInstalls after that
permission was removed, which killed the app on Pixel.

Co-authored-by: Cursor <cursoragent@cursor.com>
Extract a safe package-install query, parse shared artwork
paths, and register the lyrics screen-off receiver so the
debug suite and assemble pass.

Co-authored-by: Cursor <cursoragent@cursor.com>
The Playlists tab is the original list again. Now Playing shows
the next queue cover by default.

Co-authored-by: Cursor <cursoragent@cursor.com>
Tapping a playlist song queues that page from there. Long-press
opens the same play all, queue, next, and playlist sheet.

Co-authored-by: Cursor <cursoragent@cursor.com>
Long-press was ignored on fold tiles and nested row clicks.
Select, overflow, and library-style multi-select now open
the queue sheet; one song plays the list, many play only
the checked tracks.

Co-authored-by: Cursor <cursoragent@cursor.com>
The hero mix stays first. Recents sit after the collage,
before the rest of the home shelves.

Co-authored-by: Cursor <cursoragent@cursor.com>
A material 3 expressive action at the end of the feed
replaces the old stats tab so plays and time stay reachable.

Co-authored-by: Cursor <cursoragent@cursor.com>
Heart still likes a track. Bookmark was a local list with
no screen to open it, so the row and mini player icons
are gone.

Co-authored-by: Cursor <cursoragent@cursor.com>
The select row was floating over the bottom of the screen, so the
player and navigation covered it. The count chip sat on the tracks.
Selection now uses the library action row at the top of the list.
Feed selections live on home shelves, not the results list,
so the options button had no tracks to act on.
@kibetmasi
kibetmasi force-pushed the cursor/youtube-selection-actions-4181 branch from 08ce8b0 to de143ed Compare September 28, 2026 18:50
Stats only looked up local library songs, so YouTube plays
became Unknown Artist, Unknown Album, and missing tracks.
Played YouTube songs are now kept and included in stats.
Stop labeling YouTube plays as YouTube Music. Read the artist
and album from the track, and look them up when a row omits them.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant