Compare commits
12 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
cda0627d5a
|
|||
|
ad40dd6d6b
|
|||
|
b91d53dc6f
|
|||
|
cda4fd1f26
|
|||
|
ff2a2edaa5
|
|||
|
38d8d5d4c5
|
|||
|
f010452abf
|
|||
|
ab93f8242b
|
|||
|
1505414a1a
|
|||
|
c04d7c9a24
|
|||
|
3ee2df7faa
|
|||
|
d2c883c211
|
@@ -114,10 +114,12 @@ if bitness == '32':
|
||||
visual_c_runtime_url = 'https://github.com/yuempek/vc-archive/raw/master/archives/vc15_(14.10.25017.0)_2017_x86.7z'
|
||||
visual_c_runtime_sha256 = '2549eb4d2ce4cf3a87425ea01940f74368bf1cda378ef8a8a1f1a12ed59f1547'
|
||||
visual_c_name = 'vc15_(14.10.25017.0)_2017_x86.7z'
|
||||
visual_c_path_to_dlls = 'runtime_minimum/System'
|
||||
else:
|
||||
visual_c_runtime_url = 'https://github.com/yuempek/vc-archive/raw/master/archives/vc15_(14.10.25017.0)_2017_x64.7z'
|
||||
visual_c_runtime_sha256 = '4f00b824c37e1017a93fccbd5775e6ee54f824b6786f5730d257a87a3d9ce921'
|
||||
visual_c_name = 'vc15_(14.10.25017.0)_2017_x64.7z'
|
||||
visual_c_path_to_dlls = 'runtime_minimum/System64'
|
||||
|
||||
download_if_not_exists('get-pip.py', get_pip_url)
|
||||
|
||||
@@ -198,7 +200,7 @@ with open('./python/python3' + major_release + '._pth', 'a', encoding='utf-8') a
|
||||
f.write('..\n')'''
|
||||
|
||||
log('Inserting Microsoft C Runtime')
|
||||
check_subp(subprocess.run([r'7z', '-y', 'e', '-opython', 'vc15_(14.10.25017.0)_2017_x86.7z', 'runtime_minimum/System']))
|
||||
check_subp(subprocess.run([r'7z', '-y', 'e', '-opython', visual_c_name, visual_c_path_to_dlls]))
|
||||
|
||||
log('Installing dependencies')
|
||||
wine_run(['./python/python.exe', '-I', '-m', 'pip', 'install', '--no-compile', '-r', './requirements.txt'])
|
||||
|
||||
@@ -1,28 +1,21 @@
|
||||
attrs==22.1.0
|
||||
Brotli==1.0.9
|
||||
cachetools==4.2.4
|
||||
click==8.0.4
|
||||
dataclasses==0.6
|
||||
blinker==1.7.0
|
||||
Brotli==1.1.0
|
||||
cachetools==5.3.3
|
||||
click==8.1.7
|
||||
defusedxml==0.7.1
|
||||
Flask==2.0.1
|
||||
gevent==22.10.2
|
||||
greenlet==2.0.1
|
||||
importlib-metadata==4.6.4
|
||||
iniconfig==1.1.1
|
||||
itsdangerous==2.0.1
|
||||
Jinja2==3.0.3
|
||||
MarkupSafe==2.0.1
|
||||
packaging==20.9
|
||||
pluggy>=0.13.1
|
||||
py==1.10.0
|
||||
pyparsing==2.4.7
|
||||
Flask==3.0.2
|
||||
gevent==24.2.1
|
||||
greenlet==3.0.3
|
||||
iniconfig==2.0.0
|
||||
itsdangerous==2.1.2
|
||||
Jinja2==3.1.3
|
||||
MarkupSafe==2.1.5
|
||||
packaging==24.0
|
||||
pluggy==1.4.0
|
||||
PySocks==1.7.1
|
||||
pytest==6.2.5
|
||||
stem==1.8.0
|
||||
toml==0.10.2
|
||||
typing-extensions==3.10.0.2
|
||||
urllib3==1.26.11
|
||||
Werkzeug==2.1.1
|
||||
zipp==3.5.1
|
||||
zope.event==4.5.0
|
||||
zope.interface==5.4.0
|
||||
pytest==8.1.1
|
||||
stem==1.8.2
|
||||
urllib3==2.2.1
|
||||
Werkzeug==3.0.1
|
||||
zope.event==5.0
|
||||
zope.interface==6.2
|
||||
|
||||
@@ -1,20 +1,17 @@
|
||||
Brotli==1.0.9
|
||||
cachetools==4.2.4
|
||||
click==8.0.4
|
||||
dataclasses==0.6
|
||||
blinker==1.7.0
|
||||
Brotli==1.1.0
|
||||
cachetools==5.3.3
|
||||
click==8.1.7
|
||||
defusedxml==0.7.1
|
||||
Flask==2.0.1
|
||||
gevent==22.10.2
|
||||
greenlet==2.0.1
|
||||
importlib-metadata==4.6.4
|
||||
itsdangerous==2.0.1
|
||||
Jinja2==3.0.3
|
||||
MarkupSafe==2.0.1
|
||||
Flask==3.0.2
|
||||
gevent==24.2.1
|
||||
greenlet==3.0.3
|
||||
itsdangerous==2.1.2
|
||||
Jinja2==3.1.3
|
||||
MarkupSafe==2.1.5
|
||||
PySocks==1.7.1
|
||||
stem==1.8.0
|
||||
typing-extensions==3.10.0.2
|
||||
urllib3==1.26.11
|
||||
Werkzeug==2.1.1
|
||||
zipp==3.5.1
|
||||
zope.event==4.5.0
|
||||
zope.interface==5.4.0
|
||||
stem==1.8.2
|
||||
urllib3==2.2.1
|
||||
Werkzeug==3.0.1
|
||||
zope.event==5.0
|
||||
zope.interface==6.2
|
||||
|
||||
@@ -84,7 +84,7 @@ def proxy_site(env, start_response, video=False):
|
||||
else:
|
||||
response, cleanup_func = util.fetch_url_response(url, send_headers)
|
||||
|
||||
response_headers = response.getheaders()
|
||||
response_headers = response.headers
|
||||
if isinstance(response_headers, urllib3._collections.HTTPHeaderDict):
|
||||
response_headers = response_headers.items()
|
||||
if video:
|
||||
|
||||
@@ -389,6 +389,7 @@ def post_process_channel_info(info):
|
||||
info['avatar'] = util.prefix_url(info['avatar'])
|
||||
info['channel_url'] = util.prefix_url(info['channel_url'])
|
||||
for item in info['items']:
|
||||
item['thumbnail'] = "https://i.ytimg.com/vi/{}/hqdefault.jpg".format(item['id'])
|
||||
util.prefix_urls(item)
|
||||
util.add_extra_html_info(item)
|
||||
if info['current_tab'] == 'about':
|
||||
|
||||
@@ -569,7 +569,8 @@ function fetchRange(url, start, end, debugInfo) {
|
||||
onFailure(e, 'Network error');
|
||||
};
|
||||
xhr.ontimeout = function (event){
|
||||
onFailure(null, 'Timeout (15s)', maxRetries=1);
|
||||
xhr.timeout += 5000;
|
||||
onFailure(null, 'Timeout (15s)', maxRetries=5);
|
||||
};
|
||||
xhr.send();
|
||||
});
|
||||
|
||||
39
youtube/static/modules/plyr/custom_plyr.css
Normal file
39
youtube/static/modules/plyr/custom_plyr.css
Normal file
@@ -0,0 +1,39 @@
|
||||
/* Prevent this div from blocking right-click menu for video
|
||||
e.g. Firefox playback speed options */
|
||||
.plyr__poster {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* plyr fix */
|
||||
.plyr:-moz-full-screen video {
|
||||
max-height: initial;
|
||||
}
|
||||
|
||||
.plyr:-webkit-full-screen video {
|
||||
max-height: initial;
|
||||
}
|
||||
|
||||
.plyr:-ms-fullscreen video {
|
||||
max-height: initial;
|
||||
}
|
||||
|
||||
.plyr:fullscreen video {
|
||||
max-height: initial;
|
||||
}
|
||||
|
||||
.plyr__preview-thumb__image-container {
|
||||
width: 158px;
|
||||
height: 90px;
|
||||
}
|
||||
|
||||
.plyr__preview-thumb {
|
||||
bottom: 100%;
|
||||
}
|
||||
|
||||
.plyr__menu__container [role="menu"],
|
||||
.plyr__menu__container [role="menucaptions"] {
|
||||
/* Set vertical scroll */
|
||||
/* issue https://github.com/sampotts/plyr/issues/1420 */
|
||||
max-height: 320px;
|
||||
overflow-y: auto;
|
||||
}
|
||||
@@ -24,20 +24,6 @@ video {
|
||||
max-height: calc(100vh/1.5);
|
||||
}
|
||||
|
||||
/* plyr fix */
|
||||
.plyr:-moz-full-screen video {
|
||||
max-height: initial;
|
||||
}
|
||||
.plyr:-webkit-full-screen video {
|
||||
max-height: initial;
|
||||
}
|
||||
.plyr:-ms-fullscreen video {
|
||||
max-height: initial;
|
||||
}
|
||||
.plyr:fullscreen video {
|
||||
max-height: initial;
|
||||
}
|
||||
|
||||
a:link {
|
||||
color: var(--link);
|
||||
}
|
||||
|
||||
@@ -8,14 +8,8 @@
|
||||
{% if settings.use_video_player == 2 %}
|
||||
<!-- plyr -->
|
||||
<link href="/youtube.com/static/modules/plyr/plyr.css" rel="stylesheet">
|
||||
<link href="/youtube.com/static/modules/plyr/custom_plyr.css" rel="stylesheet">
|
||||
<!--/ plyr -->
|
||||
<style>
|
||||
/* Prevent this div from blocking right-click menu for video
|
||||
e.g. Firefox playback speed options */
|
||||
.plyr__poster {
|
||||
display: none !important;
|
||||
}
|
||||
</style>
|
||||
{% endif %}
|
||||
{% endblock style %}
|
||||
|
||||
|
||||
@@ -336,7 +336,7 @@ def fetch_url(url, headers=(), timeout=15, report_text=None, data=None,
|
||||
)
|
||||
)
|
||||
):
|
||||
print(response.status, response.reason, response.getheaders())
|
||||
print(response.status, response.reason, response.headers)
|
||||
ip = re.search(
|
||||
br'IP address: ((?:[\da-f]*:)+[\da-f]+|(?:\d+\.)+\d+)',
|
||||
content)
|
||||
@@ -674,11 +674,11 @@ INNERTUBE_CLIENTS = {
|
||||
'hl': 'en',
|
||||
'gl': 'US',
|
||||
'clientName': 'ANDROID',
|
||||
'clientVersion': '17.31.35',
|
||||
'clientVersion': '18.11.34',
|
||||
'osName': 'Android',
|
||||
'osVersion': '12',
|
||||
'androidSdkVersion': 31,
|
||||
'userAgent': 'com.google.android.youtube/17.31.35 (Linux; U; Android 12) gzip'
|
||||
'androidSdkVersion': 30,
|
||||
'userAgent': 'com.google.android.youtube/18.11.34 (Linux; U; Android 12) gzip'
|
||||
},
|
||||
# https://github.com/yt-dlp/yt-dlp/pull/575#issuecomment-887739287
|
||||
#'thirdParty': {
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
from __future__ import unicode_literals
|
||||
|
||||
__version__ = '0.2.7'
|
||||
__version__ = '0.2.10'
|
||||
|
||||
Reference in New Issue
Block a user