diff --git a/bin/darwin/chaturbate-dvr b/bin/darwin/chaturbate-dvr index 7eda4bc..14693fe 100644 Binary files a/bin/darwin/chaturbate-dvr and b/bin/darwin/chaturbate-dvr differ diff --git a/bin/linux/chaturbate-dvr b/bin/linux/chaturbate-dvr index 76f87e8..d287d88 100644 Binary files a/bin/linux/chaturbate-dvr and b/bin/linux/chaturbate-dvr differ diff --git a/bin/windows/chaturbate-dvr.exe b/bin/windows/chaturbate-dvr.exe index 8aaec28..bb4370b 100644 Binary files a/bin/windows/chaturbate-dvr.exe and b/bin/windows/chaturbate-dvr.exe differ diff --git a/go.mod b/go.mod index 7ff6a16..09b13dc 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,6 @@ require ( github.com/TwiN/go-color v1.1.0 github.com/grafov/m3u8 v0.11.1 github.com/parnurzeal/gorequest v0.2.16 - github.com/teacat/pathx v0.0.0-20201109184104-55ec346a0c6d github.com/urfave/cli/v2 v2.3.0 ) @@ -17,7 +16,6 @@ require ( github.com/russross/blackfriday/v2 v2.0.1 // indirect github.com/shurcooL/sanitized_anchor_name v1.0.0 // indirect github.com/smartystreets/goconvey v1.7.2 // indirect - github.com/stretchr/testify v1.7.0 // indirect golang.org/x/net v0.0.0-20211109214657-ef0fda0de508 // indirect moul.io/http2curl v1.0.0 // indirect ) diff --git a/go.sum b/go.sum index bce1b38..2ed24ec 100644 --- a/go.sum +++ b/go.sum @@ -3,8 +3,6 @@ github.com/TwiN/go-color v1.1.0 h1:yhLAHgjp2iAxmNjDiVb6Z073NE65yoaPlcki1Q22yyQ= github.com/TwiN/go-color v1.1.0/go.mod h1:aKVf4e1mD4ai2FtPifkDPP5iyoCwiK08YGzGwerjKo0= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d h1:U+s90UTSYgptZMwQh2aRr3LuazLJIa+Pg3Kc1ylSYVY= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/elazarl/goproxy v0.0.0-20210801061803-8e322dfb79c4 h1:lS3P5Nw3oPO05Lk2gFiYUOL3QPaH+fRoI1wFOc4G1UY= github.com/elazarl/goproxy v0.0.0-20210801061803-8e322dfb79c4/go.mod h1:Ro8st/ElPeALwNFlcTpWmkr6IoMFfkjXAvTHpevnDsM= github.com/elazarl/goproxy/ext v0.0.0-20190711103511-473e67f1d7d2/go.mod h1:gNh8nYJoAm43RfaxurUnxr+N1PwuFV3ZMl/efxlIlY8= @@ -29,11 +27,6 @@ github.com/smartystreets/assertions v1.2.0 h1:42S6lae5dvLc7BrLu/0ugRtcFVjoJNMC/N github.com/smartystreets/assertions v1.2.0/go.mod h1:tcbTF8ujkAEcZ8TElKY+i30BzYlVhC/LOxJk7iOWnoo= github.com/smartystreets/goconvey v1.7.2 h1:9RBaZCeXEQ3UselpuwUQHltGVXvdwm6cv1hgR6gDIPg= github.com/smartystreets/goconvey v1.7.2/go.mod h1:Vw0tHAZW6lzCRk3xgdin6fKYcG+G3Pg9vgXWeJpQFMM= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= -github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/teacat/pathx v0.0.0-20201109184104-55ec346a0c6d h1:nBtnOulf3s6v56kT/TA9xmroE/Zo84ckig1XU5fJ5JE= -github.com/teacat/pathx v0.0.0-20201109184104-55ec346a0c6d/go.mod h1:di7lHxAF78F7RRNMi80pnaTHKshiXcGY19g1kPSaiBY= github.com/urfave/cli/v2 v2.3.0 h1:qph92Y649prgesehzOrQjdWyxFOp/QVM+6imKHad91M= github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= @@ -45,7 +38,5 @@ golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= moul.io/http2curl v1.0.0 h1:6XwpyZOYsgZJrU8exnG87ncVkU1FVCcTRpwzOkTDUi8= moul.io/http2curl v1.0.0/go.mod h1:f6cULg+e4Md/oW1cYmwW4IWQOVl2lGbmCNGOHvzX2kE= diff --git a/main.go b/main.go index d8a5ec4..4547822 100644 --- a/main.go +++ b/main.go @@ -1,6 +1,7 @@ package main import ( + "crypto/tls" "encoding/json" "errors" "fmt" @@ -78,7 +79,7 @@ func getChannelURL(username string) string { // getBody gets the channel page content body. func getBody(username string) string { - resp, body, errs := gorequest.New().Get(getChannelURL(username)).End() + resp, body, errs := gorequest.New().TLSClientConfig(&tls.Config{InsecureSkipVerify: true}).Get(getChannelURL(username)).End() if len(errs) > 0 { log.Println(color.Colorize(color.Red, errs[0].Error())) } @@ -112,7 +113,7 @@ func getHLSSource(body string) (string, string) { // parseHLSSource parses the HLS table and return the maximum resolution m3u8 source. func parseHLSSource(url string, baseURL string) string { - resp, body, errs := gorequest.New().Get(url).End() + resp, body, errs := gorequest.New().TLSClientConfig(&tls.Config{InsecureSkipVerify: true}).Get(url).End() if len(errs) > 0 { log.Println(color.Colorize(color.Red, errs[0].Error())) } @@ -129,7 +130,7 @@ func parseHLSSource(url string, baseURL string) string { // parseM3U8Source gets the current segment list, the channel might goes offline if 403 was returned. func parseM3U8Source(url string) (chunks []*m3u8.MediaSegment, wait float64, err error) { - resp, body, errs := gorequest.New().Get(url).End() + resp, body, errs := gorequest.New().TLSClientConfig(&tls.Config{InsecureSkipVerify: true}).Get(url).End() if len(errs) > 0 { log.Println(color.Colorize(color.Red, errs[0].Error())) } @@ -302,7 +303,7 @@ func combineSegment(master *os.File, filename string) { // fetchSegment fetches the segment and append to the master file. func fetchSegment(master *os.File, segment *m3u8.MediaSegment, baseURL string, filename string, index int) { - _, body, _ := gorequest.New().Get(fmt.Sprintf("%s%s", baseURL, segment.URI)).EndBytes() + _, body, _ := gorequest.New().TLSClientConfig(&tls.Config{InsecureSkipVerify: true}).Get(fmt.Sprintf("%s%s", baseURL, segment.URI)).EndBytes() log.Printf("fetching %s (size: %d)\n", segment.URI, len(body)) if len(body) == 0 { log.Printf(infoSkipped, segment.URI)