diff --git a/servers/streamlare.json b/servers/streamlare.json new file mode 100644 index 00000000..8ab2db27 --- /dev/null +++ b/servers/streamlare.json @@ -0,0 +1,25 @@ +{ + "active": true, + "find_videos": { + "ignore_urls": [], + "patterns": [ + { + "pattern": "https://streamlare.com/(?:v|e)/(\\w+)", + "url": "https://streamlare.com/e/\\1" + } + ] + }, + "free": true, + "id": "streamlare", + "name": "streamlare", + "settings": [ + { + "default": false, + "enabled": true, + "id": "black_list", + "label": "@70708", + "type": "bool", + "visible": true + } + ] +} \ No newline at end of file diff --git a/servers/streamlare.py b/servers/streamlare.py new file mode 100644 index 00000000..fbb4b540 --- /dev/null +++ b/servers/streamlare.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +# -------------------------------------------------------- +# Conector streamlare By Alfa development Group +# -------------------------------------------------------- + +from core import httptools +from core import scrapertools +from platformcode import logger, config + + +def test_video_exists(page_url): + logger.info("(page_url='%s')" % page_url) + response = httptools.downloadpage(page_url) + if not response.sucess or "Not Found" in response.data or "File was deleted" in response.data \ + or "is no longer available" in response.data: + return False, config.get_localized_string(70449) % "Streamlare" + return True, "" + + +def get_video_url(page_url, premium=False, user="", password="", video_password=""): + logger.info("(page_url='%s')" % page_url) + video_urls = [] + id = scrapertools.find_single_match(page_url, '/e/(\w+)') + post = {"id": id} + data = httptools.downloadpage("https://streamlare.com/api/video/get", post=post).json + media_url = data["result"]["Original"]["src"] + video_urls.append(["MP4", media_url]) + return video_urls diff --git a/servers/streamsb.json b/servers/streamsb.json new file mode 100644 index 00000000..54fd37d0 --- /dev/null +++ b/servers/streamsb.json @@ -0,0 +1,29 @@ +{ + "active": true, + "find_videos": { + "ignore_urls": [], + "patterns": [ + { + "pattern": "(?:streamsb|sbembed|sbembed1|sbplay1|sbplay|pelistop|tubesb|playersb|embedsb).\\w{2,4}/(?:embed-|d/|e/)?([A-z0-9]+)", + "url": "https://streamsb.net/\\1" + }, + { + "pattern": "(?:cloudemb.com)/([A-z0-9]+)", + "url": "https://streamsb.net/\\1" + } + ] + }, + "free": true, + "id": "streamsb", + "name": "streamsb", + "settings": [ + { + "default": false, + "enabled": true, + "id": "black_list", + "label": "@70708", + "type": "bool", + "visible": true + } + ] +} \ No newline at end of file diff --git a/servers/streamsb.py b/servers/streamsb.py new file mode 100644 index 00000000..30cdf54d --- /dev/null +++ b/servers/streamsb.py @@ -0,0 +1,34 @@ +# adapted from +# https://github.com/tvaddonsco/script.module.urlresolver/blob/master/lib/urlresolver/plugins/streamsb.py + +from core import httptools, scrapertools +from platformcode import config + +host = 'streamsb.net' + + +def test_video_exists(page_url): + global data + data = httptools.downloadpage(page_url).data + + if 'File Not Found' in data: + return False, config.get_localized_string(70449) % "MixDrop" + else: + return True, "" + + +def get_video_url(page_url, premium=False, user="", password="", video_password=""): + video_urls = [] + global data + sources = scrapertools.find_multiple_matches(data, r'download_video([^"]+)[^\d]+\d+x(\d+)') + if sources: + sources.sort(key=lambda x: int(x[1]), reverse=True) + sources = [(x[1] + 'p', x[0]) for x in sources] + for s in sources: + code, mode, hash = eval(s[1]) + dl_url = 'https://{0}/dl?op=download_orig&id={1}&mode={2}&hash={3}'.format(host, code, mode, hash) + data = httptools.downloadpage(dl_url).data + media_url = scrapertools.find_single_match(data, 'href="([^"]+)">Direct') + if media_url: + video_urls.append(["MP4", media_url]) + return video_urls