diff options
author | Sergey M․ <dstftw@gmail.com> | 2018-12-16 19:35:48 +0700 |
---|---|---|
committer | Sergey M․ <dstftw@gmail.com> | 2018-12-16 19:40:49 +0700 |
commit | 21c340b83fb41094ef59b87d52c4eb1d90d1df04 (patch) | |
tree | 48d3f3717af6c8ee52802b10c5f0f0cfe9569ad8 | |
parent | c984196cf1c9eb34725091e07a4f094b7eea1d4f (diff) |
[youtube] Fix mark watched (closes #18546)
-rw-r--r-- | youtube_dl/extractor/youtube.py | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/youtube_dl/extractor/youtube.py b/youtube_dl/extractor/youtube.py index c582ab2ff..44c25c11c 100644 --- a/youtube_dl/extractor/youtube.py +++ b/youtube_dl/extractor/youtube.py @@ -48,6 +48,7 @@ from ..utils import ( unified_strdate, unsmuggle_url, uppercase_escape, + url_or_none, urlencode_postdata, ) @@ -1386,8 +1387,11 @@ class YoutubeIE(YoutubeBaseInfoExtractor): self._downloader.report_warning(err_msg) return {} - def _mark_watched(self, video_id, video_info): - playback_url = video_info.get('videostats_playback_base_url', [None])[0] + def _mark_watched(self, video_id, video_info, player_response): + playback_url = url_or_none(try_get( + player_response, + lambda x: x['playbackTracking']['videostatsPlaybackUrl']['baseUrl']) or try_get( + video_info, lambda x: x['videostats_playback_base_url'][0])) if not playback_url: return parsed_playback_url = compat_urlparse.urlparse(playback_url) @@ -2122,7 +2126,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor): self._sort_formats(formats) - self.mark_watched(video_id, video_info) + self.mark_watched(video_id, video_info, player_response) return { 'id': video_id, |