From c07d8c53269223b3ca35dbf351c7c4b68ec687d6 Mon Sep 17 00:00:00 2001 From: nao20010128nao Date: Wed, 10 Jul 2019 00:57:54 +0000 Subject: [PATCH 1/3] [twitter] Allow single dash to be used as username --- youtube_dl/extractor/twitter.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/youtube_dl/extractor/twitter.py b/youtube_dl/extractor/twitter.py index 41d0b6be8..58d55b6ce 100644 --- a/youtube_dl/extractor/twitter.py +++ b/youtube_dl/extractor/twitter.py @@ -105,6 +105,9 @@ class TwitterCardIE(TwitterBaseIE): }, { 'url': 'https://twitter.com/i/videos/752274308186120192', 'only_matching': True, + }, { + 'url': 'https://twitter.com/-/status/1087791357756956680', + 'only_matching': True, }, ] @@ -280,7 +283,7 @@ class TwitterCardIE(TwitterBaseIE): class TwitterIE(InfoExtractor): IE_NAME = 'twitter' - _VALID_URL = r'https?://(?:www\.|m\.|mobile\.)?twitter\.com/(?:i/web|(?P[^/]+))/status/(?P\d+)' + _VALID_URL = r'https?://(?:www\.|m\.|mobile\.)?twitter\.com/(?:i/web|-|(?P[^/]+))/status/(?P\d+)' _TEMPLATE_URL = 'https://twitter.com/%s/status/%s' _TEMPLATE_STATUSES_URL = 'https://twitter.com/statuses/%s' From e392d1639b858c70db1797de2cd3926c431bec67 Mon Sep 17 00:00:00 2001 From: nao20010128nao Date: Wed, 10 Jul 2019 01:22:16 +0000 Subject: [PATCH 2/3] [twitter] Move added test case at correct place --- youtube_dl/extractor/twitter.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/youtube_dl/extractor/twitter.py b/youtube_dl/extractor/twitter.py index 58d55b6ce..19b9232a5 100644 --- a/youtube_dl/extractor/twitter.py +++ b/youtube_dl/extractor/twitter.py @@ -105,9 +105,6 @@ class TwitterCardIE(TwitterBaseIE): }, { 'url': 'https://twitter.com/i/videos/752274308186120192', 'only_matching': True, - }, { - 'url': 'https://twitter.com/-/status/1087791357756956680', - 'only_matching': True, }, ] @@ -431,6 +428,9 @@ class TwitterIE(InfoExtractor): 'params': { 'skip_download': True, # requires ffmpeg }, + }, { + 'url': 'https://twitter.com/-/status/1087791357756956680', + 'only_matching': True, }] def _real_extract(self, url): From c906e0c96107dac7ac0fd393cb7e775566bfb76d Mon Sep 17 00:00:00 2001 From: nao20010128nao Date: Wed, 10 Jul 2019 04:49:05 +0000 Subject: [PATCH 3/3] [twitter] Fix user_id extraction instead of regex --- youtube_dl/extractor/twitter.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/youtube_dl/extractor/twitter.py b/youtube_dl/extractor/twitter.py index 19b9232a5..2681b8ff4 100644 --- a/youtube_dl/extractor/twitter.py +++ b/youtube_dl/extractor/twitter.py @@ -280,7 +280,7 @@ class TwitterCardIE(TwitterBaseIE): class TwitterIE(InfoExtractor): IE_NAME = 'twitter' - _VALID_URL = r'https?://(?:www\.|m\.|mobile\.)?twitter\.com/(?:i/web|-|(?P[^/]+))/status/(?P\d+)' + _VALID_URL = r'https?://(?:www\.|m\.|mobile\.)?twitter\.com/(?:i/web|(?P[^/]+))/status/(?P\d+)' _TEMPLATE_URL = 'https://twitter.com/%s/status/%s' _TEMPLATE_STATUSES_URL = 'https://twitter.com/statuses/%s' @@ -444,7 +444,7 @@ class TwitterIE(InfoExtractor): if 'twitter.com/account/suspended' in urlh.geturl(): raise ExtractorError('Account suspended by Twitter.', expected=True) - if user_id is None: + if user_id is None or user_id == '-': mobj = re.match(self._VALID_URL, urlh.geturl()) user_id = mobj.group('user_id')