SPL Lyrics Format
SPL is an enhanced LRC format that supports word-by-word timing and multiple translation lines.Format Structure
SPL files follow the standard LRC timestamp format with additional features:Key Features
Word-Level Synchronization
Word-Level Synchronization
SPL supports inline timing tags using angle brackets
<00:12.89> to mark the start time of each word.Word-level timing creates a more engaging karaoke-style experience with smooth progress highlighting.
Multiple Translations
Multiple Translations
Lines with identical timestamps are grouped together - the first is the original lyric, subsequent lines are translations.
Metadata Tags
Metadata Tags
Lyrics Sources
BBPlayer automatically fetches lyrics from multiple providers and selects the best match.Automatic Matching
The lyrics service searches three platforms simultaneously:Multi-Source Search
Lyrics are requested from:
- NetEase Cloud Music (网易云音乐)
- QQ Music (QQ音乐)
- Kugou Music (酷狗音乐)
Best Match Selection
Each provider searches for songs matching:
- Song title (cleaned and normalized)
- Duration (within tolerance)
- Artist name (if available)
Smart Keyword Cleaning
Before searching, the service cleans track titles to improve match accuracy:Bilibili-Specific Enhancement
For tracks from Bilibili videos, BBPlayer can extract the actual song name from video metadata:Bilibili’s
bgm_info field in video details often contains the real song name, improving lyric search accuracy significantly.Lyrics Display
The lyrics viewer provides an immersive, full-screen experience.Player Integration
Swipe left on the player to access the lyrics view:- Scrolling Lyrics
- Translation Display
- Interactive Seeking
- Auto-scrolls to keep current line centered
- Smooth animations between lines
- Large, readable font
- High contrast colors
Word-by-Word Progress
When lyrics include word-level timing:- Progressive highlight: Each word lights up as it’s sung
- Smooth transitions: Animated color changes between words
- Karaoke effect: Visual feedback matches audio precisely
Lyrics Caching
BBPlayer caches all fetched lyrics locally for offline access.Cache Strategy
Cache Management
Cache operations available in Settings > Lyrics:- Clear Cache: Delete all cached lyrics
- View Cache Size: Display total storage used
- Export Lyrics: Save lyrics files to device storage
Manual Lyrics Management
Search and Select
If auto-match fails or selects wrong lyrics:Adjust Timing Offset
If lyrics are slightly out of sync:- Open player functional menu
- Select “歌词偏移” (Lyric Offset)
- Use +/- buttons to adjust offset in milliseconds
- Changes are saved per-track
Lyrics Settings
Customize lyrics appearance and behavior in Settings > Lyrics:Source Priority
- Auto (Default)
- NetEase Only
- QQ Music Only
- Kugou Only
Search all providers simultaneously, use first match.
Single-source mode may result in fewer successful matches but can be faster if you know which provider has better lyrics for your music library.
Desktop Lyrics
Display lyrics on lock screen and in notification:- Always On: Show lyrics in notification area
- Lock Screen: Display current lyric line on lock screen
- Font Size: Adjust lyric text size
- Show Translation: Toggle translation display
Styling Options
- Font Family: Choose between system fonts
- Text Alignment: Left, center, or right
- Highlight Color: Customize current line color
- Translation Color: Set secondary text color
- Background Opacity: Adjust lyrics background transparency
Lyrics Format Migration
BBPlayer automatically migrates lyrics from older storage formats.Legacy Format Support
Old Raw Format
Old Raw Format
Previous versions stored lyrics as:This is automatically converted to the new format:
Migration Process
Migration Process
On app startup, if the
.migration_v2_done marker doesn’t exist:- Scan all files in
lyrics/directory - Parse each JSON file
- Detect format version
- Convert to new format if needed
- Create marker file to skip future migrations
SPL Parser Library
The SPL parsing is handled by the@bbplayer/splash package:
Parsing API
NetEase Format Conversion
BBPlayer can convert NetEase’s JSON lyrics to SPL:Troubleshooting
Lyrics Not Found
- Try manual search with different keywords
- Check if track title contains special characters
- Verify internet connection
- Try switching lyric source in settings
Lyrics Out of Sync
- Use lyrics offset adjustment in player menu
- Common offset values: -500ms to +500ms
- Check if audio file is the correct version
Word-by-Word Not Working
- Verify lyrics file contains inline timestamps
- Some lyrics may only have line-level timing
- Check if dynamic lyrics are enabled in settings
Translations Not Showing
- Enable translation display in Settings > Lyrics
- Not all lyrics have translations available
- Try different lyric sources
Cache Takes Too Much Space
- Clear lyrics cache in Settings > Lyrics
- Lyrics are re-downloaded on demand
- Each lyric file is typically 2-10 KB