Skip to content

Fetch, Edit, and Display Synced Lyrics. #25

@susil0311

Description

@susil0311

🚀 Feature Description

Add support for manual lyrics fetching, editing, and synced playback (similar to OpenTune) using sources such as Lcrib and Kugou. Currently, Echo only shows static lyrics even when synced lyrics are available.

💡 Motivation

At the moment, Echo displays only static lyrics during playback. Also lyrics is not automatically fetched for some songs.

Adding synced lyrics, along with options to manually fetch and edit lyrics, will make Echo more user-friendly and enjoyable.

It will also let users correct or improve lyrics without waiting for automatic updates.

📋 Detailed Description

Add options to Fetch Lyrics, Edit Lyrics, and Refetch Lyrics, similar to OpenTune.

Integrate APIs like Lcrib and Kugou to fetch synced .lrc lyrics.

Display synced lyrics line by line during playback.

Allow users to manually edit lyrics (both synced and unsynced) and save it in cache.

Save user-edited lyrics locally for each song.

🎯 Use Cases

  1. Automatic lyrics are always static, so users can fetch synced ones manually.

  2. When lyrics contain errors or missing lines, users can edit and save them.

  3. When a song is not found by the default API, users can fetch lyrics from Lcrib or Kugou.

🎨 UI/UX Considerations

1.Add buttons for Search, Edit, and Refetch, similar to OpenTune’s interface.
2.Indicate whether lyrics are Synced or Static in the UI.
3.When synced, highlight each line in real time as the song plays.
4.Show a short message when lyrics are saved or updated successfully.
5.Keep the design simple and consistent with Echo’s style.

🔧 Technical Considerations

1.Integrate Lcrib and Kugou APIs that return synced .lrc lyrics.
2.Parse and display time-based lyrics accurately with smooth scrolling.
3.Store edited lyrics locally in app storage or database or in cache

📱 Platform Support

  • Android
  • Android Auto
  • Widget
  • Other: _______________

📸 Mockups/Examples

Image
Image
Image
Image
Image

✅ 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

Labels

enhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions