Skip to content

Make UX like Spotify keep recommendation of Youtube Music and other suggestions. #36

@SkullEnemyX

Description

@SkullEnemyX

🚀 Feature Description

Transform the app into a powerhouse of music discovery and control by merging Spotify's intuitive interface with YouTube's recommendation algorithm. Key enhancements include a persistent playback history, a powerful "Dislike" feature that removes songs from recommendations, AI-powered playlist assistance, and a redesigned home page for instant music playback.

💡 Motivation

The current app lacks the fine-tuned control and seamless experience needed to compete. Users need absolute control over their recommendations and playback queue. The current issues with songs disappearing from the queue and the inability to effectively train the algorithm create a frustrating experience that drives users back to more polished competitors.

📋 Detailed Description

  1. Powerful "Dislike" Button for Algorithmic Control

· Introduce a "Dislike" button (Thumbs Down icon) accessible from the Now Playing screen, queue, and all song lists.
· When a user dislikes a song:
· It is immediately skipped if currently playing.
· It is permanently removed from all algorithmic recommendations, mixes, and radio stations.
· The song will not be suggested again unless the user explicitly searches for it by name.
· This preference is stored permanently in the user's profile and synced across devices.

  1. Persistent & Logical Playback Queue

· Problem: The current queue is destroyed when a user manually plays a new song, making it impossible to recover from accidental clicks.
· Solution: Implement a "Queue Stack" model.
· When a user is listening to a queue (from an album, playlist, or radio) and manually selects a different song, the new song should play immediately.
· However, the previous queue should be saved in history.
· Hitting the "Previous" button after the manually played song finishes should re-instate the previous queue from the point where the user left off.
· Visual Feedback: The queue screen should have a clear visual separation between "Now Playing," "Next in Queue," and "Playback History."

  1. AI-Powered Playlist Curation (Using On-Device Gemma Models)

· Integrate a lightweight, quantized Gemma model to run on the user's device.
· This AI analyzes the user's local listening habits, disliked songs, and real-time context to suggest smart playlist additions or generate micro-mood playlists.
· Feature: "AI DJ Mode" that curates a continuous radio station, adapting based on your likes, dislikes, and real-time feedback, all processed privately on-device.

  1. Dynamic & Animated Artwork

· Implement a system that displays animated covers (where available) and dynamically generated color gradients based on the album art to create a more immersive visual experience.

  1. Redesigned Home Page & "Quick Play" Ecosystem

· Make the home page an interactive launchpad with a "Quick Radio" button, "Resume" cards, and a "For You Now" shelf that leverages the improved (dislike-aware) algorithm to show only the most relevant content.

🎯 Use Cases

  1. The Genre Purist: A user who loves classic rock keeps getting suggested modern pop remixes. They can now dislike the offending remixes, permanently cleaning up their future recommendations without needing a separate "ban" function.
  2. The Accidental Clicker: A user is listening to an album, accidentally taps a random single, and the album queue vanishes. With the new Queue Stack, they can simply hit "Previous" to return to the exact track in the album they were listening to, as if nothing happened.
  3. The Contextual Listener: A user is building a "Focus" playlist. The on-device AI, aware of their disliked "upbeat dance tracks," suggests only instrumental and ambient songs that fit the desired mood.

🎨 UI/UX Considerations

· Fix the Visual Bug: The bottom player bar and navigation menu must not overlap. The player should be a distinct, persistent element.
· "Dislike" Button Placement: Place the "Dislike" button (Thumbs Down) prominently in the Now Playing screen, symmetrically opposite the "Like" (Thumbs Up) button. It should provide clear feedback (e.g., a toast message: "We'll suggest this less often.").
· Queue History Visualization: In the queue screen, include a collapsible section titled "Playback History" that shows the recently played songs from the previous session, allowing users to manually re-add them if desired.

🔧 Technical Considerations

· Gemma Integration: Use a quantized Gemma model for on-device inference. User privacy is paramount; no personal listening data is sent to the cloud for AI features.
· Dislike List Storage: Create a secure, synced database of disliked song IDs (content ID or ISRC) linked to the user account. The recommendation algorithm must be modified to use this list as a hard filter for all algorithmic surfaces, while still allowing search results.
· Queue Stack Implementation: The playback service needs to manage a stack of previous queue states. When a new play command is issued, the current queue state should be pushed to the stack before being replaced. The "Previous" button logic must be updated to pop from this stack when at the beginning of the current queue.
· Layout Fix: Correct the layout constraints for the BottomNavigationView and PlayerControlView to prevent overlap.

📱 Platform Support

· Android (Primary Focus)
· Android Auto
· Widget
· Other: _______________

📸 Mockups/Examples

(Conceptual Description)

Now Playing Screen with Dislike Button:

[         Animated Artwork        ]
[        Song Title - Artist      ]
[  <|   []    |>   👍   👎   ···  ]  <-- Playback controls, Like, DISLIKE, More

Intelligent Queue Screen:

Now Playing:
- Current Song

Next In Queue:
- Song A
- Song B

--- [ Playback History ] (Collapsible) ---
- Previous Song from Old Queue
- Another Song from Old Queue

✅ Checklist

· I have searched for existing feature requests
· I have provided a clear description
· I have explained the motivation
· I have considered technical aspects

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions