diff options
author | coletdjnz <colethedj@protonmail.com> | 2021-08-24 15:52:40 +1200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-08-24 09:22:40 +0530 |
commit | 0bb1bc1b107b9c3d68ea0c887bd09cad75d7714d (patch) | |
tree | 7069c9c0a65c19288d1c355d3e407dfb0a555fd1 | |
parent | 45842107b90988187df0727683e6d93ee4ece34b (diff) | |
download | hypervideo-pre-0bb1bc1b107b9c3d68ea0c887bd09cad75d7714d.tar.lz hypervideo-pre-0bb1bc1b107b9c3d68ea0c887bd09cad75d7714d.tar.xz hypervideo-pre-0bb1bc1b107b9c3d68ea0c887bd09cad75d7714d.zip |
[youtube] Remove annotations and deprecate `--write-annotations` (#765)
Closes #692
Authored by: coletdjnz
-rw-r--r-- | README.md | 2 | ||||
-rw-r--r-- | test/test_write_annotations.py.disabled (renamed from test/test_write_annotations.py) | 0 | ||||
-rw-r--r-- | yt_dlp/extractor/youtube.py | 36 | ||||
-rw-r--r-- | yt_dlp/options.py | 4 |
4 files changed, 5 insertions, 37 deletions
@@ -1500,6 +1500,8 @@ These options may no longer work as intended --no-call-home Default --include-ads No longer supported --no-include-ads Default + --write-annotations No supported site has annotations now + --no-write-annotations Default #### Removed These options were deprecated since 2014 and have now been entirely removed diff --git a/test/test_write_annotations.py b/test/test_write_annotations.py.disabled index 7e4d8bc5a..7e4d8bc5a 100644 --- a/test/test_write_annotations.py +++ b/test/test_write_annotations.py.disabled diff --git a/yt_dlp/extractor/youtube.py b/yt_dlp/extractor/youtube.py index 375eca8f8..9ca81e6cb 100644 --- a/yt_dlp/extractor/youtube.py +++ b/yt_dlp/extractor/youtube.py @@ -59,7 +59,6 @@ from ..utils import ( unsmuggle_url, update_url_query, url_or_none, - urlencode_postdata, urljoin, variadic, ) @@ -3168,40 +3167,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor): needs_auth=info['age_limit'] >= 18, is_unlisted=None if is_private is None else is_unlisted) - # get xsrf for annotations or comments - get_annotations = self.get_param('writeannotations', False) - get_comments = self.get_param('getcomments', False) - if get_annotations or get_comments: - xsrf_token = None - if master_ytcfg: - xsrf_token = try_get(master_ytcfg, lambda x: x['XSRF_TOKEN'], compat_str) - if not xsrf_token: - xsrf_token = self._search_regex( - r'([\'"])XSRF_TOKEN\1\s*:\s*([\'"])(?P<xsrf_token>(?:(?!\2).)+)\2', - webpage, 'xsrf token', group='xsrf_token', fatal=False) - - # annotations - if get_annotations: - invideo_url = get_first( - player_responses, - ('annotations', 0, 'playerAnnotationsUrlsRenderer', 'invideoUrl'), - expected_type=str) - if xsrf_token and invideo_url: - xsrf_field_name = None - if master_ytcfg: - xsrf_field_name = try_get(master_ytcfg, lambda x: x['XSRF_FIELD_NAME'], compat_str) - if not xsrf_field_name: - xsrf_field_name = self._search_regex( - r'([\'"])XSRF_FIELD_NAME\1\s*:\s*([\'"])(?P<xsrf_field_name>\w+)\2', - webpage, 'xsrf field name', - group='xsrf_field_name', default='session_token') - info['annotations'] = self._download_webpage( - self._proto_relative_url(invideo_url), - video_id, note='Downloading annotations', - errnote='Unable to download video annotations', fatal=False, - data=urlencode_postdata({xsrf_field_name: xsrf_token})) - - if get_comments: + if self.get_param('getcomments', False): info['__post_extractor'] = lambda: self._extract_comments(master_ytcfg, video_id, contents, webpage) self.mark_watched(video_id, player_responses) diff --git a/yt_dlp/options.py b/yt_dlp/options.py index 6bad37d19..86aad3393 100644 --- a/yt_dlp/options.py +++ b/yt_dlp/options.py @@ -1070,11 +1070,11 @@ def parseOpts(overrideArguments=None): filesystem.add_option( '--write-annotations', action='store_true', dest='writeannotations', default=False, - help='Write video annotations to a .annotations.xml file') + help=optparse.SUPPRESS_HELP) filesystem.add_option( '--no-write-annotations', action='store_false', dest='writeannotations', - help='Do not write video annotations (default)') + help=optparse.SUPPRESS_HELP) filesystem.add_option( '--write-playlist-metafiles', action='store_true', dest='allow_playlist_files', default=None, |