diff options
author | Tom-Oliver Heidel <github@tom-oliver.eu> | 2020-10-18 07:43:42 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-18 07:43:42 +0200 |
commit | 7eff09d332745e48acf657fbb65be40680d764f2 (patch) | |
tree | 8c07853d260b726db54c4d049f2c61b7820902b2 /youtube_dlc/extractor | |
parent | 957c523eea6232fd85e5f5d0f2c16cf010db9f8a (diff) | |
parent | a537ab1a094cf782915b654250a6110061b4377a (diff) | |
download | hypervideo-pre-7eff09d332745e48acf657fbb65be40680d764f2.tar.lz hypervideo-pre-7eff09d332745e48acf657fbb65be40680d764f2.tar.xz hypervideo-pre-7eff09d332745e48acf657fbb65be40680d764f2.zip |
Merge pull request #196 from blackjack4494/twitter_shortener
Twitter shortener
Diffstat (limited to 'youtube_dlc/extractor')
-rw-r--r-- | youtube_dlc/extractor/extractors.py | 1 | ||||
-rw-r--r-- | youtube_dlc/extractor/twitter.py | 18 |
2 files changed, 19 insertions, 0 deletions
diff --git a/youtube_dlc/extractor/extractors.py b/youtube_dlc/extractor/extractors.py index f0860e04d..d31edd7c8 100644 --- a/youtube_dlc/extractor/extractors.py +++ b/youtube_dlc/extractor/extractors.py @@ -1268,6 +1268,7 @@ from .twitter import ( TwitterIE, TwitterAmplifyIE, TwitterBroadcastIE, + TwitterShortenerIE, ) from .udemy import ( UdemyIE, diff --git a/youtube_dlc/extractor/twitter.py b/youtube_dlc/extractor/twitter.py index 4284487db..ca5e040c6 100644 --- a/youtube_dlc/extractor/twitter.py +++ b/youtube_dlc/extractor/twitter.py @@ -608,3 +608,21 @@ class TwitterBroadcastIE(TwitterBaseIE, PeriscopeBaseIE): info['formats'] = self._extract_pscp_m3u8_formats( m3u8_url, broadcast_id, m3u8_id, state, width, height) return info + + +class TwitterShortenerIE(TwitterBaseIE): + IE_NAME = 'twitter:shortener' + _VALID_URL = r'https?://t.co/(?P<id>[^?]+)|tco:(?P<eid>[^?]+)' + _BASE_URL = 'https://t.co/' + + def _real_extract(self, url): + mobj = re.match(self._VALID_URL, url) + eid, id = mobj.group('eid', 'id') + if eid: + id = eid + url = self._BASE_URL + id + new_url = self._request_webpage(url, id, headers={'User-Agent': 'curl'}).geturl() + __UNSAFE_LINK = "https://twitter.com/safety/unsafe_link_warning?unsafe_link=" + if new_url.startswith(__UNSAFE_LINK): + new_url = new_url.replace(__UNSAFE_LINK, "") + return self.url_result(new_url) |