Fix DooD Stream
This commit is contained in:
+3
-2
@@ -429,8 +429,9 @@ def downloadpage(url, **opt):
|
|||||||
else:
|
else:
|
||||||
logger.debug("CF retry with proxy for domain: %s" % domain)
|
logger.debug("CF retry with proxy for domain: %s" % domain)
|
||||||
if not opt.get('headers'):
|
if not opt.get('headers'):
|
||||||
opt['headers'] = []
|
opt['headers'] = {}
|
||||||
opt['headers'].extend([['Px-Host', domain], ['Px-Token', cf_proxy['token']]])
|
opt['headers']['Px-Host'] = domain
|
||||||
|
opt['headers']['Px-Token'] = cf_proxy['token']
|
||||||
opt['real-url'] = url
|
opt['real-url'] = url
|
||||||
ret = downloadpage(urlparse.urlunparse((parse.scheme, cf_proxy['url'], parse.path, parse.params, parse.query, parse.fragment)), **opt)
|
ret = downloadpage(urlparse.urlunparse((parse.scheme, cf_proxy['url'], parse.path, parse.params, parse.query, parse.fragment)), **opt)
|
||||||
ret.url = url
|
ret.url = url
|
||||||
|
|||||||
@@ -4,8 +4,8 @@
|
|||||||
"ignore_urls": [],
|
"ignore_urls": [],
|
||||||
"patterns": [
|
"patterns": [
|
||||||
{
|
{
|
||||||
"pattern": "dood(?:stream)?.[^/]+/+(?:e|d)/([a-z0-9]+)",
|
"pattern": "(do*d(?:stream)?.[^/]+)/+(?:e|d)/([a-z0-9]+)",
|
||||||
"url": "https://dood.yt/e/\\1"
|
"url": "https://\\1/e/\\2"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|||||||
+11
-6
@@ -1,15 +1,20 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
import time, string, random
|
import time, string, random, sys
|
||||||
from core import httptools, support, servertools
|
from core import httptools, support
|
||||||
from platformcode import logger, config
|
from platformcode import logger, config
|
||||||
|
|
||||||
|
if sys.version_info[0] >= 3:
|
||||||
|
from urllib.parse import urlparse
|
||||||
|
else:
|
||||||
|
from urllib import urlparse
|
||||||
|
|
||||||
|
|
||||||
def test_video_exists(page_url):
|
def test_video_exists(page_url):
|
||||||
global data
|
global data
|
||||||
logger.debug('page url=', page_url)
|
logger.debug('page url=', page_url)
|
||||||
|
|
||||||
response = httptools.downloadpage(page_url)
|
response = httptools.downloadpage(page_url, cloudscraper=True)
|
||||||
if response.code == 404 or 'dsplayer' not in response.data:
|
if response.code == 404 or 'dsplayer' not in response.data:
|
||||||
return False, config.get_localized_string(70449) % 'DooD Stream'
|
return False, config.get_localized_string(70449) % 'DooD Stream'
|
||||||
else:
|
else:
|
||||||
@@ -22,13 +27,13 @@ def get_video_url(page_url, premium=False, user="", password="", video_password=
|
|||||||
logger.debug("URL", page_url)
|
logger.debug("URL", page_url)
|
||||||
|
|
||||||
video_urls = []
|
video_urls = []
|
||||||
host = 'https://' + servertools.get_server_host('doodstream')[0]
|
host = 'https://{}'.format(urlparse(page_url).netloc)
|
||||||
headers = {'User-Agent': httptools.get_user_agent(), 'Referer': page_url}
|
headers = {'User-Agent': httptools.get_user_agent(), 'Referer': host}
|
||||||
|
|
||||||
match = support.match(data, patron=r'''dsplayer\.hotkeys[^']+'([^']+).+?function\s*makePlay.+?return[^?]+([^"]+)''').match
|
match = support.match(data, patron=r'''dsplayer\.hotkeys[^']+'([^']+).+?function\s*makePlay.+?return[^?]+([^"]+)''').match
|
||||||
if match:
|
if match:
|
||||||
url, token = match
|
url, token = match
|
||||||
ret = httptools.downloadpage(host + url, headers=headers).data
|
ret = httptools.downloadpage(host + url, headers=headers, cloudscraper=True).data
|
||||||
video_urls.append(['mp4 [DooD Stream]', '{}{}{}{}|Referer={}'.format(randomize(ret), url, token, int(time.time() * 1000), host)])
|
video_urls.append(['mp4 [DooD Stream]', '{}{}{}{}|Referer={}'.format(randomize(ret), url, token, int(time.time() * 1000), host)])
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user