|
@@ -5,7 +5,10 @@ import itertools
|
|
|
import re
|
|
|
|
|
|
from .common import InfoExtractor
|
|
|
-from ..utils import urlencode_postdata
|
|
|
+from ..utils import (
|
|
|
+ orderedSet,
|
|
|
+ urlencode_postdata,
|
|
|
+)
|
|
|
|
|
|
|
|
|
class BitChuteIE(InfoExtractor):
|
|
@@ -43,10 +46,15 @@ class BitChuteIE(InfoExtractor):
|
|
|
'description', webpage, 'title',
|
|
|
default=None) or self._og_search_description(webpage)
|
|
|
|
|
|
+ format_urls = []
|
|
|
+ for mobj in re.finditer(
|
|
|
+ r'addWebSeed\s*\(\s*(["\'])(?P<url>(?:(?!\1).)+)\1', webpage):
|
|
|
+ format_urls.append(mobj.group('url'))
|
|
|
+ format_urls.extend(re.findall(r'as=(https?://[^&"\']+)', webpage))
|
|
|
+
|
|
|
formats = [
|
|
|
- {'url': mobj.group('url')}
|
|
|
- for mobj in re.finditer(
|
|
|
- r'addWebSeed\s*\(\s*(["\'])(?P<url>(?:(?!\1).)+)\1', webpage)]
|
|
|
+ {'url': format_url}
|
|
|
+ for format_url in orderedSet(format_urls)]
|
|
|
self._sort_formats(formats)
|
|
|
|
|
|
description = self._html_search_regex(
|