Просмотр исходного кода

[ie/bitchute] Fix extractors (#10301)

Closes #10293
Authored by: seproDev
sepro 8 месяцев назад
Родитель
Сommit
5b1a2aa978
1 измененных файлов с 11 добавлено и 5 удалено
  1. 11 5
      yt_dlp/extractor/bitchute.py

+ 11 - 5
yt_dlp/extractor/bitchute.py

@@ -24,7 +24,7 @@ from ..utils import (
 
 
 
 
 class BitChuteIE(InfoExtractor):
 class BitChuteIE(InfoExtractor):
-    _VALID_URL = r'https?://(?:www\.)?bitchute\.com/(?:video|embed|torrent/[^/]+)/(?P<id>[^/?#&]+)'
+    _VALID_URL = r'https?://(?:(?:www|old)\.)?bitchute\.com/(?:video|embed|torrent/[^/]+)/(?P<id>[^/?#&]+)'
     _EMBED_REGEX = [rf'<(?:script|iframe)[^>]+\bsrc=(["\'])(?P<url>{_VALID_URL})']
     _EMBED_REGEX = [rf'<(?:script|iframe)[^>]+\bsrc=(["\'])(?P<url>{_VALID_URL})']
     _TESTS = [{
     _TESTS = [{
         'url': 'https://www.bitchute.com/video/UGlrF9o9b-Q/',
         'url': 'https://www.bitchute.com/video/UGlrF9o9b-Q/',
@@ -91,6 +91,9 @@ class BitChuteIE(InfoExtractor):
     }, {
     }, {
         'url': 'https://www.bitchute.com/torrent/Zee5BE49045h/szoMrox2JEI.webtorrent',
         'url': 'https://www.bitchute.com/torrent/Zee5BE49045h/szoMrox2JEI.webtorrent',
         'only_matching': True,
         'only_matching': True,
+    }, {
+        'url': 'https://old.bitchute.com/video/UGlrF9o9b-Q/',
+        'only_matching': True,
     }]
     }]
     _GEO_BYPASS = False
     _GEO_BYPASS = False
 
 
@@ -132,7 +135,7 @@ class BitChuteIE(InfoExtractor):
     def _real_extract(self, url):
     def _real_extract(self, url):
         video_id = self._match_id(url)
         video_id = self._match_id(url)
         webpage = self._download_webpage(
         webpage = self._download_webpage(
-            f'https://www.bitchute.com/video/{video_id}', video_id, headers=self._HEADERS)
+            f'https://old.bitchute.com/video/{video_id}', video_id, headers=self._HEADERS)
 
 
         self._raise_if_restricted(webpage)
         self._raise_if_restricted(webpage)
         publish_date = clean_html(get_element_by_class('video-publish-date', webpage))
         publish_date = clean_html(get_element_by_class('video-publish-date', webpage))
@@ -171,13 +174,13 @@ class BitChuteIE(InfoExtractor):
 
 
 
 
 class BitChuteChannelIE(InfoExtractor):
 class BitChuteChannelIE(InfoExtractor):
-    _VALID_URL = r'https?://(?:www\.)?bitchute\.com/(?P<type>channel|playlist)/(?P<id>[^/?#&]+)'
+    _VALID_URL = r'https?://(?:(?:www|old)\.)?bitchute\.com/(?P<type>channel|playlist)/(?P<id>[^/?#&]+)'
     _TESTS = [{
     _TESTS = [{
         'url': 'https://www.bitchute.com/channel/bitchute/',
         'url': 'https://www.bitchute.com/channel/bitchute/',
         'info_dict': {
         'info_dict': {
             'id': 'bitchute',
             'id': 'bitchute',
             'title': 'BitChute',
             'title': 'BitChute',
-            'description': 'md5:5329fb3866125afa9446835594a9b138',
+            'description': 'md5:2134c37d64fc3a4846787c402956adac',
         },
         },
         'playlist': [
         'playlist': [
             {
             {
@@ -210,6 +213,9 @@ class BitChuteChannelIE(InfoExtractor):
             'title': 'Bruce MacDonald and "The Light of Darkness"',
             'title': 'Bruce MacDonald and "The Light of Darkness"',
             'description': 'md5:747724ef404eebdfc04277714f81863e',
             'description': 'md5:747724ef404eebdfc04277714f81863e',
         },
         },
+    }, {
+        'url': 'https://old.bitchute.com/playlist/wV9Imujxasw9/',
+        'only_matching': True,
     }]
     }]
 
 
     _TOKEN = 'zyG6tQcGPE5swyAEFLqKUwMuMMuF6IO2DZ6ZDQjGfsL0e4dcTLwqkTTul05Jdve7'
     _TOKEN = 'zyG6tQcGPE5swyAEFLqKUwMuMMuF6IO2DZ6ZDQjGfsL0e4dcTLwqkTTul05Jdve7'
@@ -230,7 +236,7 @@ class BitChuteChannelIE(InfoExtractor):
 
 
     @staticmethod
     @staticmethod
     def _make_url(playlist_id, playlist_type):
     def _make_url(playlist_id, playlist_type):
-        return f'https://www.bitchute.com/{playlist_type}/{playlist_id}/'
+        return f'https://old.bitchute.com/{playlist_type}/{playlist_id}/'
 
 
     def _fetch_page(self, playlist_id, playlist_type, page_num):
     def _fetch_page(self, playlist_id, playlist_type, page_num):
         playlist_url = self._make_url(playlist_id, playlist_type)
         playlist_url = self._make_url(playlist_id, playlist_type)