@@ -126,9 +126,18 @@ func GetFMStream(ctx echo.Context) error {
126126 // Check if we haven't received data for too long
127127 // Send heartbeat metadata to keep connection alive
128128 if wantMetadata && time .Since (lastBufferUpdateTime ) > maxNoDataTimeout {
129- musicInfo := modules .MusicReader .GetMusicInfo ()
130- if musicInfo != nil && musicInfo .Filename != "" {
131- metadata := BuildIcecastMetadata (musicInfo .Filename , musicInfo .Url )
129+ var metadata []byte
130+ if modules .MusicReader .IsIcecastMode {
131+ // Live streaming mode - send generic live metadata
132+ metadata = BuildIcecastMetadata ("Live Stream" , modules .Config .URL )
133+ } else {
134+ // File mode - send current song metadata
135+ musicInfo := modules .MusicReader .GetMusicInfo ()
136+ if musicInfo != nil && musicInfo .Filename != "" {
137+ metadata = BuildIcecastMetadata (musicInfo .Filename , musicInfo .Url )
138+ }
139+ }
140+ if len (metadata ) > 0 {
132141 _ , err := res .Write (metadata )
133142 if err != nil {
134143 modules .Logger .Info (fmt .Sprintf ("[%s] Client %s disconnected" , requestID , ip ))
@@ -193,9 +202,18 @@ func GetFMStream(ctx echo.Context) error {
193202
194203 // If we hit metadata boundary, inject metadata
195204 if sinceMetaBlock >= metaintInterval && offset < bufLen {
196- musicInfo := modules .MusicReader .GetMusicInfo ()
197- if musicInfo != nil && musicInfo .Filename != "" {
198- metadata := BuildIcecastMetadata (musicInfo .Filename , musicInfo .Url )
205+ var metadata []byte
206+ if modules .MusicReader .IsIcecastMode {
207+ // Live streaming mode - send generic live metadata
208+ metadata = BuildIcecastMetadata ("Live Stream" , modules .Config .URL )
209+ } else {
210+ // File mode - send current song metadata
211+ musicInfo := modules .MusicReader .GetMusicInfo ()
212+ if musicInfo != nil && musicInfo .Filename != "" {
213+ metadata = BuildIcecastMetadata (musicInfo .Filename , musicInfo .Url )
214+ }
215+ }
216+ if len (metadata ) > 0 {
199217 _ , err := res .Write (metadata )
200218 if err != nil {
201219 modules .Logger .Info (fmt .Sprintf ("[%s] Client %s disconnected" , requestID , ip ))
0 commit comments