]> jfr.im git - yt-dlp.git/commitdiff
[videa] Fix extraction (#463)
authornyuszika7h <redacted>
Sat, 3 Jul 2021 16:08:08 +0000 (18:08 +0200)
committerGitHub <redacted>
Sat, 3 Jul 2021 16:08:08 +0000 (21:38 +0530)
Authored by: nyuszika7h

yt_dlp/extractor/videa.py

index ab2c15cdec154bf7d760c588d114eed106221b60..f7c24d2595a3e4cc29a1db1945d4087a27c0dc4b 100644 (file)
@@ -12,6 +12,7 @@
     mimetype2ext,
     parse_codecs,
     update_url_query,
+    urljoin,
     xpath_element,
     xpath_text,
 )
@@ -19,6 +20,7 @@
     compat_b64decode,
     compat_ord,
     compat_struct_pack,
+    compat_urlparse,
 )
 
 
@@ -95,9 +97,13 @@ def rc4(cipher_text, key):
 
     def _real_extract(self, url):
         video_id = self._match_id(url)
-        query = {'v': video_id}
-        player_page = self._download_webpage(
-            'https://videa.hu/player', video_id, query=query)
+
+        video_page = self._download_webpage(url, video_id)
+
+        player_url = self._search_regex(
+            r'<iframe.*?src="(/player\?[^"]+)"', video_page, 'player url')
+        player_url = urljoin(url, player_url)
+        player_page = self._download_webpage(player_url, video_id)
 
         nonce = self._search_regex(
             r'_xt\s*=\s*"([^"]+)"', player_page, 'nonce')
@@ -107,6 +113,7 @@ def _real_extract(self, url):
         for i in range(0, 32):
             result += s[i - (self._STATIC_SECRET.index(l[i]) - 31)]
 
+        query = compat_urlparse.parse_qs(compat_urlparse.urlparse(player_url).query)
         random_seed = ''.join(random.choice(string.ascii_letters + string.digits) for _ in range(8))
         query['_s'] = random_seed
         query['_t'] = result[:16]