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
|
package paths
|
||||||
|
|
||||||
import "regexp"
|
import (
|
||||||
|
"net/http"
|
||||||
|
"regexp"
|
||||||
|
)
|
||||||
|
|
||||||
const (
|
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"
|
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
|
// https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/report-to
|
||||||
"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"))
|
// 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()
|
path := req.URL.EscapedPath()
|
||||||
|
|
||||||
proxyURL, err := url.Parse("https://" + host + path)
|
proxyURL, err := url.Parse("https://" + host + path)
|
||||||
|
@ -130,8 +134,9 @@ func Videoplayback(w http.ResponseWriter, req *http.Request) {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Panic("Failed to create headRequest:", err)
|
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 {
|
switch c {
|
||||||
case "ANDROID":
|
case "ANDROID":
|
||||||
|
@ -148,11 +153,6 @@ func Videoplayback(w http.ResponseWriter, req *http.Request) {
|
||||||
headRequest.Header.Set("User-Agent", default_ua)
|
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{}
|
resp := &http.Response{}
|
||||||
|
|
||||||
for i := 0; i < 5; i++ {
|
for i := 0; i < 5; i++ {
|
||||||
|
|
Loading…
Add table
Reference in a new issue