]> jfr.im git - yt-dlp.git/commitdiff
[twitter/t.co] update supportedsites, failover replace, tco:id feature
authorUnknown <redacted>
Sun, 18 Oct 2020 00:14:13 +0000 (02:14 +0200)
committerUnknown <redacted>
Sun, 18 Oct 2020 00:14:13 +0000 (02:14 +0200)
docs/supportedsites.md
youtube_dlc/extractor/twitter.py

index 10c12b87a10b4a5270568e80295e873be9167d90..c46d122ffa5f5b8a35cbaaedbbf7fee3928a5dc0 100644 (file)
@@ -540,6 +540,7 @@ # Supported sites
  - **natgeo:video**
  - **NationalGeographicTV**
  - **Naver**
+ - **Naver:live**
  - **NBA**
  - **NBC**
  - **NBCNews**
@@ -976,6 +977,7 @@ # Supported sites
  - **twitter:amplify**
  - **twitter:broadcast**
  - **twitter:card**
+ - **twitter:shortener**
  - **udemy**
  - **udemy:course**
  - **UDNEmbed**: 聯合影音
index 95cfa815407fabddec0018e240edfa2be33c062a..ca5e040c6a69d1666a18e7bdf2cd1ef1c8b79c45 100644 (file)
@@ -612,8 +612,17 @@ def _real_extract(self, url):
 
 class TwitterShortenerIE(TwitterBaseIE):
     IE_NAME = 'twitter:shortener'
-    _VALID_URL = r'https?://t.co/'
+    _VALID_URL = r'https?://t.co/(?P<id>[^?]+)|tco:(?P<eid>[^?]+)'
+    _BASE_URL = 'https://t.co/'
 
     def _real_extract(self, url):
-        new_url = self._request_webpage(url, None, headers={'User-Agent': 'curl'}).geturl()
+        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)