Bailing music
A self-hosted Web music player for personal HD music libraries
Bailing is a self-hosted Web music player for personal high-definition music libraries. Go + Echo v5 + Ent ORM + SQLite is used for the backend, React/Vite is used for the front-end, and the production build will be embedded in the Go service and launched uniformly. What users can do Play local high-definition music Scan the local music catalog on the Music Library page. On the "Music Library" page, the first audio of the flyer is posted. The backend uses HTTP Range for streaming, and the browser can drag progress bars and skip broadcasts more stably. Play directly as is in browser-friendly formats: MP3, FLAC, WAV, M4A/AAC, OGG/Vorbis, OPUS. AIFF, APE, DSF, DFF, DST and other rare high-definition formats can be stored in storage; when the browser cannot stably playback, optional ffmpeg can be installed and transcoded into MP3 streams in real time. Metadata and covers are first read using pure Go github.com/dhowden/tag; optional ffprobe is used to enhance duration, sampling rate, bit depth and more embedded lyric tag recognition. Manage albums, playlists and playback queues Browse all songs, singers, albums and song lists. Clicking on a singer, album or song list will enter a separate details page and no longer jump back to the entire music library list. Clicking on a song artist or album artist will bring you to the singer's page, which will display all of the singer's songs in the music library. Singer, album and song list details pages support one-click playback. Support collecting songs and albums. Support the creation of song lists and the addition of songs to the song list. The bottom playback control area opens the current playlist. The music library supports inserting a single song into the next song, and also supports selecting multiple choices and inserting it in batches to play the next batch. The bottom playback control area supports sequential playback, random playback, and single loop. Lyrics and playback experience Prioritize reading of embedded lyrics in audio files. If there are no embedded lyrics, the song name will be automatically matched with the artist from the configured online channel; the interface will not expose the channel name, link, ID or manual paste entry. Click the album cover/vinyl cover in the bottom playback control area to switch full-screen lyrics. LRC parsing supports offset tags, multiple timestamps in one line, millisecond precision, and original text/translation grouping with the same timestamp. Automatic scrolling will locate the correct playback line. Timing Off is a temporary option in the bottom player that only affects the current playback session and is not persisted as a system setting. personalized interface Supports simplified Chinese and English. The Chinese interface displays Bailing, and the English interface displays Lark. The theme is realized according to the player plan you provide: five sets of dark themes (deep sky polar night, amber film, neon coral, glacier aurora, carbon black burning green) and five sets of light themes (milk white ceramics, oatmeal latte, mint soda, cherry blossom rice paper, dusk amber). Theme selection is only placed on the "Settings" page to keep the main interface simple. Each set of themes simultaneously adjusts player color matching, cover processing, progress/volume style and animation language. Supports adaptive layout for desktop, Pad and mobile: desktop sidebar, Pad icon sidebar, and bottom navigation of the phone.




