aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--settings.py6
-rw-r--r--youtube/templates/watch.html2
-rw-r--r--youtube/watch.py14
3 files changed, 19 insertions, 3 deletions
diff --git a/settings.py b/settings.py
index 9253d7c..944576d 100644
--- a/settings.py
+++ b/settings.py
@@ -72,6 +72,12 @@ For security reasons, enabling this is not recommended.''',
'comment': '',
}),
+ ('default_resolution', {
+ 'type': int,
+ 'default': 720,
+ 'comment': '',
+ }),
+
('gather_googlevideo_domains', {
'type': bool,
'default': False,
diff --git a/youtube/templates/watch.html b/youtube/templates/watch.html
index 3421059..a555882 100644
--- a/youtube/templates/watch.html
+++ b/youtube/templates/watch.html
@@ -7,7 +7,7 @@
video{
grid-column: 1 / span 5;
width: 100%;
- max-height: 360px;
+ max-height: {{ video_height }}px;
}
#related{
margin-top: 10px;
diff --git a/youtube/watch.py b/youtube/watch.py
index d9b3cff..ea33d0f 100644
--- a/youtube/watch.py
+++ b/youtube/watch.py
@@ -52,12 +52,17 @@ def watch_page_related_playlist_info(item):
def get_video_sources(info):
video_sources = []
for format in info['formats']:
- if format['acodec'] != 'none' and format['vcodec'] != 'none':
+ if format['acodec'] != 'none' and format['vcodec'] != 'none' and format['height'] <= settings.default_resolution:
video_sources.append({
'src': format['url'],
'type': 'video/' + format['ext'],
+ 'height': format['height'],
})
+ #### order the videos sources so the preferred resolution is first ###
+
+ video_sources.sort(key=lambda source: source['height'], reverse=True)
+
return video_sources
def get_subtitle_sources(info):
@@ -191,6 +196,10 @@ def get_watch_page():
'note': yt_dl_downloader._format_note(format),
})
+ video_sources = get_video_sources(info)
+ video_height = video_sources[0]['height']
+
+
return flask.render_template('watch.html',
header_playlist_names = local_playlist.get_playlist_names(),
uploader_channel_url = '/' + info['uploader_url'],
@@ -200,7 +209,7 @@ def get_watch_page():
dislikes = (lambda x: '{:,}'.format(x) if x is not None else "")(info.get("dislike_count", None)),
download_formats = download_formats,
video_info = json.dumps(video_info),
- video_sources = get_video_sources(info),
+ video_sources = video_sources,
subtitle_sources = get_subtitle_sources(info),
related = related_videos,
music_list = info['music_list'],
@@ -208,6 +217,7 @@ def get_watch_page():
comments_info = comments_info,
theater_mode = settings.theater_mode,
+ video_height = video_height,
title = info['title'],
uploader = info['uploader'],