aboutsummaryrefslogtreecommitdiffstats
path: root/youtube
diff options
context:
space:
mode:
authorzrose584 <57181548+zrose584@users.noreply.github.com>2022-01-17 00:49:49 +0100
committerJesús <heckyel@hyperbola.info>2022-01-17 09:01:09 -0500
commita5ef801c073e2be932430b13ab7c0524e1c1e1b6 (patch)
tree7f8ef13fba5d67fa45de14c6cbf9f40ff6e76872 /youtube
parent63c92e0c4ef4652e67fb7a3eca427f26f782e2e2 (diff)
downloadyt-local-a5ef801c073e2be932430b13ab7c0524e1c1e1b6.tar.lz
yt-local-a5ef801c073e2be932430b13ab7c0524e1c1e1b6.tar.xz
yt-local-a5ef801c073e2be932430b13ab7c0524e1c1e1b6.zip
handle missing storyboard
Signed-off-by: Jesús <heckyel@hyperbola.info>
Diffstat (limited to 'youtube')
-rw-r--r--youtube/static/js/plyr-start.js4
-rw-r--r--youtube/watch.py3
-rw-r--r--youtube/yt_data_extract/watch_extraction.py3
3 files changed, 6 insertions, 4 deletions
diff --git a/youtube/static/js/plyr-start.js b/youtube/static/js/plyr-start.js
index 7b67185..6029de6 100644
--- a/youtube/static/js/plyr-start.js
+++ b/youtube/static/js/plyr-start.js
@@ -117,8 +117,8 @@
},
},
previewThumbnails: {
- enabled: true,
- src: [storyboard_url],
+ enabled: storyboard_url != null,
+ src: [storyboard_url],
},
settings: ['captions', 'quality', 'speed', 'loop'],
});
diff --git a/youtube/watch.py b/youtube/watch.py
index a592385..886f2a4 100644
--- a/youtube/watch.py
+++ b/youtube/watch.py
@@ -789,7 +789,8 @@ def get_watch_page(video_id=None):
video_url = util.URL_ORIGIN + '/watch?v=' + video_id,
video_id = video_id,
storyboard_url = (util.URL_ORIGIN + '/ytl-api/storyboard.vtt?' +
- urlencode([('spec_url', info['storyboard_spec_url'])])),
+ urlencode([('spec_url', info['storyboard_spec_url'])])
+ if info['storyboard_spec_url'] else None),
js_data = {
'video_id': info['id'],
diff --git a/youtube/yt_data_extract/watch_extraction.py b/youtube/yt_data_extract/watch_extraction.py
index 309c85c..d90d9ad 100644
--- a/youtube/yt_data_extract/watch_extraction.py
+++ b/youtube/yt_data_extract/watch_extraction.py
@@ -650,7 +650,8 @@ def extract_watch_info(polymer_json):
# other stuff
info['author_url'] = 'https://www.youtube.com/channel/' + info['author_id'] if info['author_id'] else None
- info['storyboard_spec_url'] = player_response['storyboards']['playerStoryboardSpecRenderer']['spec']
+ sb = player_response.get('storyboards')
+ info['storyboard_spec_url'] = sb['playerStoryboardSpecRenderer']['spec'] if sb else None
return info