proxy 'sponsor.ajay.app'

This commit is contained in:
zrose584 2020-10-18 17:58:16 +02:00
parent f7f2b9fa06
commit a8916b9308
8 changed files with 21 additions and 15 deletions

View File

@ -66,7 +66,7 @@ def proxy_site(env, start_response, video=False):
# such as 8192 lest that causes the socket library to limit the
# TCP window size
# Might need fine-tuning, since this gives us 4*65536
# The tradeoff is that larger values (such as 6 seconds) only
# The tradeoff is that larger values (such as 6 seconds) only
# allows video to buffer in those increments, meaning user must wait
# until the entire chunk is downloaded before video starts playing
content_part = response.read(32*8192)
@ -85,6 +85,7 @@ site_handlers = {
'ytimg.com': proxy_site,
'yt3.ggpht.com': proxy_site,
'lh3.googleusercontent.com': proxy_site,
'sponsor.ajay.app': proxy_site,
'googlevideo.com': proxy_video,
}
@ -95,9 +96,9 @@ def split_url(url):
match = re.match(r'(?:https?://)?([\w-]+(?:\.[\w-]+)+?)(/.*|$)', url)
if match is None:
raise ValueError('Invalid or unsupported url: ' + url)
return match.group(1), match.group(2)
def error_code(code, start_response):

View File

@ -7,6 +7,10 @@ from sys import exc_info
yt_app = flask.Flask(__name__)
yt_app.config['TEMPLATES_AUTO_RELOAD'] = True
yt_app.url_map.strict_slashes = False
# yt_app.jinja_env.trim_blocks = True
# yt_app.jinja_env.lstrip_blocks = True
yt_app.add_url_rule('/settings', 'settings_page', settings.settings_page, methods=['POST', 'GET'])

View File

@ -108,10 +108,6 @@ function copyTextToClipboard(text) {
document.body.removeChild(textArea);
}
function getVideoID() {
return JSON.parse(Q(".video-info input[name=video_info_list]").value).id
}
window.addEventListener('DOMContentLoaded', function() {
cur_track_idx = getDefaultTranscriptTrackIdx();

View File

@ -37,9 +37,8 @@ function onKeyDown(e) {
else tt.mode = "showing";
}
else if (c == "t") {
let video_id = getVideoID();
let ts = Math.floor(Q("video").currentTime);
copyTextToClipboard(`https://youtu.be/${video_id}?t=${ts}`);
copyTextToClipboard(`https://youtu.be/${data.video_id}?t=${ts}`);
}
}

View File

@ -12,14 +12,14 @@ document.addEventListener('DOMContentLoaded', ()=>{
function load_sponsorblock(){
const info_elem = Q('#skip_n');
if (info_elem.innerText.length) return; // already fetched
const video_id = getVideoID();
const hash = sha256(video_id).substr(0,4);
const hash = sha256(data.video_id).substr(0,4);
const video_obj = Q("video");
fetch(`https://sponsor.ajay.app/api/skipSegments/${hash}`)
let url = `/https://sponsor.ajay.app/api/skipSegments/${hash}`;
fetch(url)
.then(response => response.json())
.then(data => {
for (const video of data) {
if (video.videoID != video_id) continue;
if (video.videoID != data.video_id) continue;
info_elem.innerText = `(${video.segments.length} segments)`;
const cat_n = video.segments.map(e=>e.category).sort()
.reduce((acc,e) => (acc[e]=(acc[e]||0)+1, acc), {});

View File

@ -4,8 +4,9 @@
<meta charset="utf-8">
<title>{{ page_title }}</title>
<meta http-equiv="Content-Security-Policy" content="default-src 'self' 'unsafe-inline'; media-src 'self' https://*.googlevideo.com;
{{ "img-src https://*.googleusercontent.com https://*.ggpht.com https://*.ytimg.com;" if not settings.proxy_images else "" }}
{{ "" if not settings.use_sponsorblock_js else "connect-src 'self' https://sponsor.ajay.app;"|safe }}">
{% if not settings.proxy_images %}
img-src https://*.googleusercontent.com https://*.ggpht.com https://*.ytimg.com;
{% endif %}
<link href="{{ theme_path }}" type="text/css" rel="stylesheet">
<link href="/youtube.com/static/shared.css" type="text/css" rel="stylesheet">

View File

@ -695,6 +695,7 @@ Reload without invidious (for usage of new identity button).</a>
{% endif %}
{% endif %}
<script> data = {{ js_data|tojson }} </script>
<script src="/youtube.com/static/js/common.js"></script>
<script src="/youtube.com/static/js/transcript-table.js"></script>
{% if settings.use_video_hotkeys %} <script src="/youtube.com/static/js/hotkeys.js"></script> {% endif %}

View File

@ -489,6 +489,10 @@ def get_watch_page(video_id=None):
invidious_reload_button = info['invidious_reload_button'],
video_url = util.URL_ORIGIN + '/watch?v=' + video_id,
time_start = time_start,
js_data = {
'video_id': video_info['id'],
}
)