ตัว HLS download ใช้ตัวเดิมคือ https://github.com/kz26/gohls
ตัว SOCKS lib ใช้ https://github.com/hailiang/socks
แก้ code main.go ของ gohls ตามนี้
package main
import "flag"
import "fmt"
import "io"
import "net/http"
import "net/url"
import "log"
import "os"
import "time"
import "github.com/golang/groupcache/lru"
import "strings"
import "github.com/kz26/m3u8"
import "h12.me/socks"
const VERSION = "1.0.5"
var USER_AGENT string
var dialSocksProxy = socks.DialSocksProxy(socks.SOCKS5, "127.0.0.1:1080")
var tr = &http.Transport{Dial: dialSocksProxy}
var client = &http.Client{Transport: tr}
func doRequest(c *http.Client, req *http.Request) (*http.Response, error) {
req.Header.Set("User-Agent", USER_AGENT)
resp, err := c.Do(req)
return resp, err
}
แค่นี้เราก็สามารถใช้ socks ในโปรแกรมเราได้แล้วส่วนสำคัญคือแก้ code เพิ่ม 4 บรรทัดนี้
import "h12.me/socks"
var dialSocksProxy = socks.DialSocksProxy(socks.SOCKS5, "127.0.0.1:1080")
var tr = &http.Transport{Dial: dialSocksProxy}
var client = &http.Client{Transport: tr}