From e78d2393230875ac62c9fadb67c6676081b407c7 Mon Sep 17 00:00:00 2001 From: James Taylor Date: Sat, 25 Jul 2020 21:25:23 -0700 Subject: Add support for &t parameter --- youtube/templates/watch.html | 5 +++++ youtube/watch.py | 8 ++++++++ 2 files changed, 13 insertions(+) diff --git a/youtube/templates/watch.html b/youtube/templates/watch.html index 4041144..01ae8cb 100644 --- a/youtube/templates/watch.html +++ b/youtube/templates/watch.html @@ -341,6 +341,11 @@ Reload without invidious (for usage of new identity button). {% endfor %} + {% if time_start != 0 %} + + {% endif %} {% endif %}
diff --git a/youtube/watch.py b/youtube/watch.py index d65bd8c..0a48653 100644 --- a/youtube/watch.py +++ b/youtube/watch.py @@ -366,6 +366,7 @@ def format_bytes(bytes): return '%.2f%s' % (converted, suffix) +time_table = {'h': 3600, 'm': 60, 's': 1} @yt_app.route('/watch') @yt_app.route('/embed') @yt_app.route('/embed/') @@ -376,6 +377,12 @@ def get_watch_page(video_id=None): if len(video_id) < 11: return flask.render_template('error.html', error_message='Incomplete video id (too short): ' + video_id), 404 + time_start_str = request.args.get('t', '0s') + time_start = 0 + if re.fullmatch(r'(\d+(h|m|s))+', time_start_str): + for match in re.finditer(r'(\d+)(h|m|s)', time_start_str): + time_start += int(match.group(1))*time_table[match.group(2)] + lc = request.args.get('lc', '') playlist_id = request.args.get('list') index = request.args.get('index') @@ -511,6 +518,7 @@ def get_watch_page(video_id=None): invidious_used = info['invidious_used'], invidious_reload_button = info['invidious_reload_button'], video_url = util.URL_ORIGIN + '/watch?v=' + video_id, + time_start = time_start, ) -- cgit v1.2.3