]> jfr.im git - yt-dlp.git/blobdiff - yt_dlp/extractor/gofile.py
[ie/orf:on] Improve extraction (#9677)
[yt-dlp.git] / yt_dlp / extractor / gofile.py
index eb1dcf85f5406416388dbcb4302c2fa4c2af93e0..c6eca0c4dffc8fa82de2df62789fc2814e58e350 100644 (file)
@@ -58,21 +58,18 @@ def _real_initialize(self):
             return
 
         account_data = self._download_json(
-            'https://api.gofile.io/createAccount', None, note='Getting a new guest account')
+            'https://api.gofile.io/accounts', None, 'Getting a new guest account', data=b'{}')
         self._TOKEN = account_data['data']['token']
         self._set_cookie('.gofile.io', 'accountToken', self._TOKEN)
 
     def _entries(self, file_id):
-        query_params = {
-            'contentId': file_id,
-            'token': self._TOKEN,
-            'wt': '4fd6sg89d7s6',  # From https://gofile.io/dist/js/alljs.js
-        }
+        query_params = {'wt': '4fd6sg89d7s6'}  # From https://gofile.io/dist/js/alljs.js
         password = self.get_param('videopassword')
         if password:
             query_params['password'] = hashlib.sha256(password.encode('utf-8')).hexdigest()
         files = self._download_json(
-            'https://api.gofile.io/getContent', file_id, note='Getting filelist', query=query_params)
+            f'https://api.gofile.io/contents/{file_id}', file_id, 'Getting filelist',
+            query=query_params, headers={'Authorization': f'Bearer {self._TOKEN}'})
 
         status = files['status']
         if status == 'error-passwordRequired':
@@ -82,7 +79,7 @@ def _entries(self, file_id):
             raise ExtractorError(f'{self.IE_NAME} said: status {status}', expected=True)
 
         found_files = False
-        for file in (try_get(files, lambda x: x['data']['contents'], dict) or {}).values():
+        for file in (try_get(files, lambda x: x['data']['children'], dict) or {}).values():
             file_type, file_format = file.get('mimetype').split('/', 1)
             if file_type not in ('video', 'audio') and file_format != 'vnd.mts':
                 continue