@@ -36,6 +36,25 @@ var ErrBackToDownloadOptions = errors.New("back to download options")
3636// dubSubTagRe strips parenthesized dub/sub tags from anime names for display
3737var dubSubTagRe = regexp .MustCompile (`\s*\((?i:Dublado|Legendado|SUB|DUB|Subbed|Dubbed)\)\s*` )
3838
39+ const defaultHLSReferer = "https://streameeeeee.site/"
40+
41+ func appendPlaybackRefererArgs (mpvArgs []string , videoURL string , isHLSStream bool ) ([]string , string ) {
42+ lowerURL := strings .ToLower (strings .TrimSpace (videoURL ))
43+ if ! strings .HasPrefix (lowerURL , "http://" ) && ! strings .HasPrefix (lowerURL , "https://" ) {
44+ return mpvArgs , ""
45+ }
46+
47+ referer := util .GetGlobalReferer ()
48+ if referer == "" && isHLSStream {
49+ referer = defaultHLSReferer
50+ }
51+ if referer == "" {
52+ return mpvArgs , ""
53+ }
54+
55+ return append (mpvArgs , fmt .Sprintf ("--http-header-fields=Referer: %s" , referer )), referer
56+ }
57+
3958// waitForVideoReady waits for the HLS video to be ready for playback
4059// Returns true if video is ready, false if timeout
4160func waitForVideoReady (socketPath string ) bool {
@@ -350,17 +369,20 @@ func playVideo(
350369 is9Anime = updater .GetAnime ().Source == "9Anime"
351370 }
352371
372+ mpvArgs , playbackReferer := appendPlaybackRefererArgs (mpvArgs , videoURL , isHLSStream )
373+ if playbackReferer != "" {
374+ if isHLSStream {
375+ util .Debugf ("HLS stream detected - Referer: %s" , playbackReferer )
376+ } else {
377+ util .Debugf ("HTTP stream detected - Referer: %s" , playbackReferer )
378+ }
379+ }
380+
353381 if isHLSStream {
354- // Use the stored global referer if available (set by source-specific stream resolvers),
355- // otherwise fall back to the default referer for legacy sources
356- referer := util .GetGlobalReferer ()
382+ referer := playbackReferer
357383 if referer == "" {
358- referer = "https://streameeeeee.site/"
384+ referer = defaultHLSReferer
359385 }
360- mpvArgs = append (mpvArgs ,
361- fmt .Sprintf ("--http-header-fields=Referer: %s" , referer ),
362- )
363- util .Debugf ("HLS stream detected - Referer: %s" , referer )
364386
365387 // For 9Anime (and other Cloudflare-protected CDNs), route playback through
366388 // yt-dlp with Chrome TLS impersonation to bypass Cloudflare fingerprint checks.
0 commit comments