feat: use invidious-companion way to handle Range header and query parameter
This commit is contained in:
parent
1045548164
commit
f7e75ce5e7
2 changed files with 19 additions and 8 deletions
|
@ -1,6 +1,9 @@
|
|||
package paths
|
||||
|
||||
import "regexp"
|
||||
import (
|
||||
"net/http"
|
||||
"regexp"
|
||||
)
|
||||
|
||||
const (
|
||||
default_ua = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36"
|
||||
|
@ -31,3 +34,11 @@ var strip_headers = []string{
|
|||
// https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/report-to
|
||||
"report-to",
|
||||
}
|
||||
|
||||
var videoplayback_headers = http.Header{
|
||||
"Accept": {"*/*"},
|
||||
"Accept-Encoding": {"gzip, deflate, br, zstd"},
|
||||
"Accept-Language": {"en-us,en;q=0.5"},
|
||||
"Origin": {"https://www.youtube.com"},
|
||||
"Referer": {"https://www.youtube.com/"},
|
||||
}
|
||||
|
|
|
@ -110,6 +110,10 @@ func Videoplayback(w http.ResponseWriter, req *http.Request) {
|
|||
// q.Set("range", req.Header.Get("Range"))
|
||||
// }
|
||||
|
||||
if req.Header.Get("Range") != "" {
|
||||
q.Set("range", strings.Split(req.Header.Get("Range"), "=")[1])
|
||||
}
|
||||
|
||||
path := req.URL.EscapedPath()
|
||||
|
||||
proxyURL, err := url.Parse("https://" + host + path)
|
||||
|
@ -130,8 +134,9 @@ func Videoplayback(w http.ResponseWriter, req *http.Request) {
|
|||
if err != nil {
|
||||
log.Panic("Failed to create headRequest:", err)
|
||||
}
|
||||
utils.CopyHeaders(req.Header, postRequest.Header, false)
|
||||
utils.CopyHeaders(req.Header, headRequest.Header, false)
|
||||
|
||||
postRequest.Header = videoplayback_headers
|
||||
headRequest.Header = videoplayback_headers
|
||||
|
||||
switch c {
|
||||
case "ANDROID":
|
||||
|
@ -148,11 +153,6 @@ func Videoplayback(w http.ResponseWriter, req *http.Request) {
|
|||
headRequest.Header.Set("User-Agent", default_ua)
|
||||
}
|
||||
|
||||
postRequest.Header.Add("Origin", "https://www.youtube.com")
|
||||
headRequest.Header.Add("Origin", "https://www.youtube.com")
|
||||
postRequest.Header.Add("Referer", "https://www.youtube.com/")
|
||||
headRequest.Header.Add("Referer", "https://www.youtube.com/")
|
||||
|
||||
resp := &http.Response{}
|
||||
|
||||
for i := 0; i < 5; i++ {
|
||||
|
|
Loading…
Add table
Reference in a new issue