Watch page: add info box with allowed countries and tor exit node

Should help with debugging various content blocks
This commit is contained in:
James Taylor 2020-02-01 16:16:49 -08:00
parent 3f310bfc33
commit 9f090dbbf8
3 changed files with 41 additions and 0 deletions

View File

@ -137,6 +137,7 @@
grid-row:8;
grid-column: 1 / span 2;
background-color: var(--interface-color);
padding-bottom: 7px;
}
.music-list table,th,td{
border: 1px solid;
@ -150,6 +151,22 @@
font-weight:bold;
margin-bottom:5px;
}
.more-info{
grid-row: 9;
grid-column: 1 / span 2;
background-color: var(--interface-color);
}
.more-info > summary{
font-weight: normal;
border-width: 1px 0px;
border-style: solid;
}
.more-info-content{
padding: 5px;
}
.more-info-content p{
margin: 8px 0px;
}
.comments-area-outer{
grid-column: 2;
grid-row: 3;
@ -316,6 +333,16 @@
</table>
{% endif %}
</div>
<details class="more-info">
<summary>More info</summary>
<div class="more-info-content">
<p>Tor exit node: {{ ip_address }}</p>
{% if invidious_used %}
<p>Used Invidious as fallback.</p>
{% endif %}
<p class="allowed-countries">Allowed countries: {{ allowed_countries|join(', ') }}</p>
</div>
</details>
</div>
{% if related_videos_mode != 0 %}

View File

@ -235,12 +235,14 @@ def extract_info(video_id):
info['playability_error'] = decryption_error
# check for 403
info['invidious_used'] = False
if settings.route_tor and info['formats'] and info['formats'][0]['url']:
response = util.head(info['formats'][0]['url'],
report_text='Checked for URL access')
if response.status == 403:
print(('Access denied (403) for video urls.'
' Retrieving urls from Invidious...'))
info['invidious_used'] = True
try:
video_info = util.fetch_url(
'https://invidio.us/api/v1/videos/'
@ -418,6 +420,10 @@ def get_watch_page(video_id=None):
limited_state = info['limited_state'],
age_restricted = info['age_restricted'],
playability_error = info['playability_error'],
allowed_countries = info['allowed_countries'],
ip_address = info['ip_address'] if settings.route_tor else None,
invidious_used = info['invidious_used'],
)

View File

@ -318,6 +318,14 @@ def _extract_formats(info, player_response):
info['formats'].append(fmt)
# get ip address
if info['formats']:
query_string = info['formats'][0].get('url', '?').split('?')[1]
info['ip_address'] = deep_get(
urllib.parse.parse_qs(query_string), 'ip', 0)
def _extract_playability_error(info, player_response, error_prefix=''):
if info['formats']:
info['playability_status'] = None