From a82e78fdc7f271aa66055537761ddb250dd0015e Mon Sep 17 00:00:00 2001 From: mykola2312 <49044616+mykola2312@users.noreply.github.com> Date: Sat, 23 Aug 2025 13:06:52 +0300 Subject: [PATCH] scraping done --- main.go | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/main.go b/main.go index b686510..0b10af0 100644 --- a/main.go +++ b/main.go @@ -9,6 +9,7 @@ import ( "net/http" "os" "os/exec" + "regexp" "strings" "golang.org/x/net/html" @@ -87,8 +88,6 @@ func (mpv *MPV) InquirePlayback() (float32, error) { return res.Data, nil } -const PARSE_JSON_OFFSET = 25 - func ParseWebMedia(url string) (string, error) { res, err := http.Get(url) if err != nil { @@ -122,13 +121,22 @@ func ParseWebMedia(url string) (string, error) { for _, script := range scripts { if strings.Contains(script, "var streamChannels") { streamChannels = script + break } } if streamChannels == "" { return "", fmt.Errorf("failed to find streamChannels") } - return streamChannels[25:], err + re := regexp.MustCompile(`url:.*'(.*)'`) + + if match := re.FindAllStringSubmatch(streamChannels, 1); match != nil { + fmt.Println(match) + + return match[0][1], nil + } else { + return "", fmt.Errorf("regex failed") + } } var testUrl string @@ -148,6 +156,6 @@ func main() { // fmt.Println(err) // } - json, _ := ParseWebMedia(testUrl) - fmt.Println(json) + stream, err := ParseWebMedia(testUrl) + fmt.Println(stream, err) }