1 import requests
, requests_cache
2 from flask
import Flask
, Blueprint
, request
, Response
3 from flask_login
import current_user
5 frontend
= Blueprint('proxy', __name__
)
9 app
.register_blueprint(frontend
)
12 @frontend.route("/videoplayback")
14 fvip
= request
.args
.get("fvip", "3")
15 mn
= request
.args
.get("mn", "").split(",")[-1]
16 host
= f
"r{fvip}---{mn}.googlevideo.com"
18 REQUEST_HEADERS_WHITELIST
= {
24 RESPONSE_HEADERS_WHITELIST
= {
31 "x-content-type-options",
35 k
:v
for k
,v
in request
.headers
36 if k
.lower() in REQUEST_HEADERS_WHITELIST
38 with requests_cache
.disabled():
39 r
= requests
.get(f
"https://{host}/videoplayback", request
.args
.to_dict(), headers
=req_headers
, stream
=True)
42 k
:v
for k
,v
in r
.headers
.items()
43 if k
.lower() in RESPONSE_HEADERS_WHITELIST
45 response
= Response(r
.iter_content(chunk_size
=8192), status
=r
.status_code
, headers
=resp_headers
)
46 response
.call_on_close(lambda: r
.close()) # XXX: does this work?
50 if __name__
== '__main__':