From fc778a18d91e587bc455a4cbec64cdeb918ddd01 Mon Sep 17 00:00:00 2001 From: kr4ssi <44404263+kr4ssi@users.noreply.github.com> Date: Tue, 10 Dec 2019 01:54:25 +0100 Subject: [PATCH 1/5] [XFileShare] Add NxLoad --- youtube_dl/extractor/xfileshare.py | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/youtube_dl/extractor/xfileshare.py b/youtube_dl/extractor/xfileshare.py index 48ef07ed1..3d0436e97 100644 --- a/youtube_dl/extractor/xfileshare.py +++ b/youtube_dl/extractor/xfileshare.py @@ -58,10 +58,12 @@ class XFileShareIE(InfoExtractor): (r'vidshare\.tv', 'VidShare'), (r'vup\.to', 'VUp'), (r'xvideosharing\.com', 'XVideoSharing'), + (r'nxload\.com', 'NxLoad'), + ) IE_DESC = 'XFileShare based sites: %s' % ', '.join(list(zip(*_SITES))[1]) - _VALID_URL = (r'https?://(?:www\.)?(?P%s)/(?:embed-)?(?P[0-9a-zA-Z]+)' + _VALID_URL = (r'https?://(?:www\.)?(?P%s)/(?:embed-|embed\/)?(?P[0-9a-zA-Z]+)' % '|'.join(site for site in list(zip(*_SITES))[0])) _FILE_NOT_FOUND_REGEXES = ( @@ -78,6 +80,15 @@ class XFileShareIE(InfoExtractor): 'title': 'sample', 'thumbnail': r're:http://.*\.jpg', }, + }, { + 'url': 'https://nxload.com/embed/2Gwp2NDwHMrj', + 'md5': 'a4e01d6623664727d9a453f212bb5b53', + 'info_dict': { + 'id': '2Gwp2NDwHMrj', + 'ext': 'mp4', + 'title': '5849.mp4', + 'thumbnail': r're:https://.*\.jpg', + }, }] @staticmethod @@ -121,6 +132,7 @@ class XFileShareIE(InfoExtractor): r'>Watch (.+)[ <]', r'

([^<]+)

', r'

]*>([^<]+)<', # streamin.to + r'([^<]+) \| Your streaming service', # nxload r'title\s*:\s*"([^"]+)"'), # govid.me webpage, 'title', default=None) or self._og_search_title( webpage, default=None) or video_id).strip() @@ -151,7 +163,7 @@ class XFileShareIE(InfoExtractor): if not formats: urls = [] for regex in ( - r'(?:file|src)\s*:\s*(["\'])(?P<url>http(?:(?!\1).)+\.(?:m3u8|mp4|flv)(?:(?!\1).)*)\1', + r'(?:file|src)\s*:\s*(["\\\']{1,2})(?P<url>http(?:(?!\1).)+\.(?:m3u8|mp4|flv)(?:(?!\1).)*)\1', r'file_link\s*=\s*(["\'])(?P<url>http(?:(?!\1).)+)\1', r'addVariable\((\\?["\'])file\1\s*,\s*(\\?["\'])(?P<url>http(?:(?!\2).)+)\2\)', r'<embed[^>]+src=(["\'])(?P<url>http(?:(?!\1).)+\.(?:m3u8|mp4|flv)(?:(?!\1).)*)\1'): @@ -182,7 +194,7 @@ class XFileShareIE(InfoExtractor): thumbnail = self._search_regex( [ r'<video[^>]+poster="([^"]+)"', - r'(?:image|poster)\s*:\s*["\'](http[^"\']+)["\'],', + r'(?:image|poster)\s*[:=]\s*["\'](http[^"\']+)["\'],', ], webpage, 'thumbnail', default=None) return { From 3f33a50a0c1f8c67fb389978d7dc99a89962e941 Mon Sep 17 00:00:00 2001 From: "kr4ssi@tuta.io" <kr4ssi@tuta.io> Date: Sat, 18 Jan 2020 05:26:46 +0100 Subject: [PATCH 2/5] DRY --- youtube_dl/extractor/xfileshare.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/youtube_dl/extractor/xfileshare.py b/youtube_dl/extractor/xfileshare.py index 3d0436e97..926f62f56 100644 --- a/youtube_dl/extractor/xfileshare.py +++ b/youtube_dl/extractor/xfileshare.py @@ -63,7 +63,7 @@ class XFileShareIE(InfoExtractor): ) IE_DESC = 'XFileShare based sites: %s' % ', '.join(list(zip(*_SITES))[1]) - _VALID_URL = (r'https?://(?:www\.)?(?P<host>%s)/(?:embed-|embed\/)?(?P<id>[0-9a-zA-Z]+)' + _VALID_URL = (r'https?://(?:www\.)?(?P<host>%s)/(?:embed[-/])?(?P<id>[0-9a-zA-Z]+)' % '|'.join(site for site in list(zip(*_SITES))[0])) _FILE_NOT_FOUND_REGEXES = ( From bd27fcd099548938ae486433ef0fe12f7974c625 Mon Sep 17 00:00:00 2001 From: "kr4ssi@tuta.io" <kr4ssi@tuta.io> Date: Sat, 18 Jan 2020 05:28:28 +0100 Subject: [PATCH 3/5] remove empty line --- youtube_dl/extractor/xfileshare.py | 1 - 1 file changed, 1 deletion(-) diff --git a/youtube_dl/extractor/xfileshare.py b/youtube_dl/extractor/xfileshare.py index 926f62f56..bf037ca3f 100644 --- a/youtube_dl/extractor/xfileshare.py +++ b/youtube_dl/extractor/xfileshare.py @@ -59,7 +59,6 @@ class XFileShareIE(InfoExtractor): (r'vup\.to', 'VUp'), (r'xvideosharing\.com', 'XVideoSharing'), (r'nxload\.com', 'NxLoad'), - ) IE_DESC = 'XFileShare based sites: %s' % ', '.join(list(zip(*_SITES))[1]) From b0377d0014b89d6630d6fa98ed51486a4afecedb Mon Sep 17 00:00:00 2001 From: "kr4ssi@tuta.io" <kr4ssi@tuta.io> Date: Sat, 18 Jan 2020 05:31:42 +0100 Subject: [PATCH 4/5] only match \' --- youtube_dl/extractor/xfileshare.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/youtube_dl/extractor/xfileshare.py b/youtube_dl/extractor/xfileshare.py index bf037ca3f..78e8d8fb4 100644 --- a/youtube_dl/extractor/xfileshare.py +++ b/youtube_dl/extractor/xfileshare.py @@ -162,7 +162,7 @@ class XFileShareIE(InfoExtractor): if not formats: urls = [] for regex in ( - r'(?:file|src)\s*:\s*(["\\\']{1,2})(?P<url>http(?:(?!\1).)+\.(?:m3u8|mp4|flv)(?:(?!\1).)*)\1', + r'(?:file|src)\s*:\s*(["\']|(?:\\\'))(?P<url>http(?:(?!\1).)+\.(?:m3u8|mp4|flv)(?:(?!\1).)*)\1', r'file_link\s*=\s*(["\'])(?P<url>http(?:(?!\1).)+)\1', r'addVariable\((\\?["\'])file\1\s*,\s*(\\?["\'])(?P<url>http(?:(?!\2).)+)\2\)', r'<embed[^>]+src=(["\'])(?P<url>http(?:(?!\1).)+\.(?:m3u8|mp4|flv)(?:(?!\1).)*)\1'): From 1ed5038a0fcabe180bb3175ee702981b8f74dd2b Mon Sep 17 00:00:00 2001 From: "kr4ssi@tuta.io" <kr4ssi@tuta.io> Date: Mon, 20 Jan 2020 08:35:47 +0100 Subject: [PATCH 5/5] regex group not needed --- youtube_dl/extractor/xfileshare.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/youtube_dl/extractor/xfileshare.py b/youtube_dl/extractor/xfileshare.py index 78e8d8fb4..31dfd53c0 100644 --- a/youtube_dl/extractor/xfileshare.py +++ b/youtube_dl/extractor/xfileshare.py @@ -162,7 +162,7 @@ class XFileShareIE(InfoExtractor): if not formats: urls = [] for regex in ( - r'(?:file|src)\s*:\s*(["\']|(?:\\\'))(?P<url>http(?:(?!\1).)+\.(?:m3u8|mp4|flv)(?:(?!\1).)*)\1', + r'(?:file|src)\s*:\s*(["\']|\\\')(?P<url>http(?:(?!\1).)+\.(?:m3u8|mp4|flv)(?:(?!\1).)*)\1', r'file_link\s*=\s*(["\'])(?P<url>http(?:(?!\1).)+)\1', r'addVariable\((\\?["\'])file\1\s*,\s*(\\?["\'])(?P<url>http(?:(?!\2).)+)\2\)', r'<embed[^>]+src=(["\'])(?P<url>http(?:(?!\1).)+\.(?:m3u8|mp4|flv)(?:(?!\1).)*)\1'):