diff --git a/Src/API/eurostreaming.py b/Src/API/eurostreaming.py
index 38bc3c3..220304c 100644
--- a/Src/API/eurostreaming.py
+++ b/Src/API/eurostreaming.py
@@ -127,7 +127,7 @@ async def scraping_links(atag,MFP,MFP_CREDENTIALS,client,streams,language):
pattern = r']*rel="noopener"[^>]*>DeltaBit'
href = await get_host_link(pattern,atag,client)
try:
- streams = await deltabit(href,client,streams,"Eurostreaming",proxies,ForwardProxy,language)
+ streams = await deltabit(href,client,streams,"Eurostreaming",proxies,ForwardProxy,language,'Deltabit')
except Exception as e:
pattern = r']*rel="noopener"[^>]*>MixDrop'
href = await get_host_link(pattern,atag,client)
@@ -145,7 +145,7 @@ async def scraping_links(atag,MFP,MFP_CREDENTIALS,client,streams,language):
try:
pattern = r']*rel="noopener"[^>]*>DeltaBit'
href = await get_host_link(pattern,atag,client)
- streams = await deltabit(href,client,streams,"Eurostreaming",proxies,ForwardProxy,language)
+ streams = await deltabit(href,client,streams,"Eurostreaming",proxies,ForwardProxy,language,'Deltabit')
return streams
except Exception as e:
return streams
@@ -159,6 +159,14 @@ async def scraping_links(atag,MFP,MFP_CREDENTIALS,client,streams,language):
return streams
except Exception as e:
return streams
+ if 'Deltabit' not in atag and 'Mixdrop' not in atag and 'Maxstream' not in atag and 'Turbovid' in atag:
+ try:
+ pattern = r']*rel="noopener"?[^>]*>Turbovid'
+ href = await get_host_link(pattern,atag,client)
+ streams = await deltabit(href,client,streams,"Eurostreaming",proxies,ForwardProxy,language,'Turbovid')
+ return streams
+ except Exception as e:
+ return streams
if 'DeltaBit' not in atag and 'MixDrop' not in atag and 'MaxStream' not in atag:
logger.info("Just give up")
return streams
@@ -244,7 +252,7 @@ async def eurostreaming(streams,id,client,MFP,MFP_CREDENTIALS):
async def test_euro():
from curl_cffi.requests import AsyncSession
async with AsyncSession() as client:
- results = await eurostreaming({'streams': []},"tt0460681:11:1",client,"0",['test','test'])
+ results = await eurostreaming({'streams': []},"tt1520211:1:1",client,"0",['test','test'])
print(results)
diff --git a/Src/API/extractors/deltabit.py b/Src/API/extractors/deltabit.py
index 25317e5..3689e25 100644
--- a/Src/API/extractors/deltabit.py
+++ b/Src/API/extractors/deltabit.py
@@ -5,6 +5,7 @@ import re
import time
import logging
from Src.Utilities.config import setup_logging
+from Src.Utilities.eval import eval_solver
level = config.LEVEL
logger = setup_logging(level)
Icon = config.Icon
@@ -15,9 +16,8 @@ random_headers = Headers()
-async def deltabit(page_url,client,streams,site_name,proxies,ForwardProxy,language):
+async def deltabit(page_url,client,streams,site_name,proxies,ForwardProxy,language,extractor):
"""Extract Deltabit URL."""
- i = 0
#Set up some headers
headers = random_headers.generate()
headers2 = random_headers.generate()
@@ -46,25 +46,34 @@ async def deltabit(page_url,client,streams,site_name,proxies,ForwardProxy,langua
name = input.get('name')
value = input.get('value')
data[name] = value
- data['imhuman'] = ''
+ if extractor == 'Deltabit':
+ imhuman = ''
+ elif extractor == 'Turbovid':
+ imhuman = 'Proceed+to+video'
+ data['imhuman'] = imhuman
data['referer']= page_url
- #We need to wait 2.5 seconds or the request will fail
- time.sleep(2.5)
-
+ #We need to wait 2.5/5 seconds or the request will fail
+ if extractor == 'Deltabit':
+ time.sleep(2.5)
+ elif extractor == 'Turbovid':
+ time.sleep(5)
fname = data['fname']
#Request to the deltabit link
response = await client.post(ForwardProxy + page_url, data = data, headers = headers, proxies = proxies)
- link = re.findall(r'sources:\s*\["([^"]+)"', response.text, re.DOTALL)
+ if extractor == 'Deltabit':
+ link = re.findall(r'sources:\s*\["([^"]+)"', response.text, re.DOTALL)
+ if link:
+ link = link[0]
+ elif extractor == 'Turbovid':
+ link = await eval_solver(response.text,proxies, ForwardProxy, client)
if not link:
+ i = 0
if not i >= 3:
- page_url = 'https://deltabit.co/q4r8w4assff4'
- link,fname = await deltabit(page_url,client,streams,site_name,proxies,ForwardProxy,language)
+ link,fname = await deltabit(page_url,client,streams,site_name,proxies,ForwardProxy,language,extractor)
i +=1
- else:
- link = link[0]
if link:
- streams['streams'].append({'name': f"{Name}{language}",'title': f'{Icon}{site_name}\n▶️ Deltabit\n{fname}', 'url': link, 'behaviorHints': {'bingeGroup': f'{site_name.lower()}'}})
+ streams['streams'].append({'name': f"{Name}{language}",'title': f'{Icon}{site_name}\n▶️ {extractor}\n{fname}', 'url': link, 'behaviorHints': {'bingeGroup': f'{site_name.lower()}'}})
return streams
@@ -76,7 +85,7 @@ async def deltabit(page_url,client,streams,site_name,proxies,ForwardProxy,langua
async def test_deltabit():
from curl_cffi.requests import AsyncSession
async with AsyncSession() as client:
- results = await deltabit("https://deltabit.co/a54ehb8w42pe",client,{'streams': []},'Deltabit', {},"","")
+ results = await deltabit("https://turbovid.me/squc5gdzptgw",client,{'streams': []},'Deltabit', {},"","",'Turbovid')
print(results)
if __name__ == "__main__":
import asyncio
diff --git a/Src/Utilities/eval.py b/Src/Utilities/eval.py
index a2507b3..9ff6a47 100644
--- a/Src/Utilities/eval.py
+++ b/Src/Utilities/eval.py
@@ -146,9 +146,13 @@ async def eval_solver(stream_link,proxies, ForwardProxy, client):
headers = random_headers.generate()
headers["User-Agent"] = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36"
headers["accept-language"] = 'en-US,en;q=0.5'
- response = await client.get( ForwardProxy + stream_link, allow_redirects=True, timeout=30, headers = headers, proxies = proxies, impersonate = "chrome124")
- logger.debug("Eval:",response.status_code)
- soup = BeautifulSoup(response.text, "lxml",parse_only=SoupStrainer("script"))
+ if len(stream_link) <= 200:
+ response = await client.get( ForwardProxy + stream_link, allow_redirects=True, timeout=30, headers = headers, proxies = proxies, impersonate = "chrome124")
+ text = response.text
+ logger.debug("Eval:",response.status_code)
+ else:
+ text = stream_link
+ soup = BeautifulSoup(text, "lxml",parse_only=SoupStrainer("script"))
script_all = soup.find_all("script")
for i in script_all:
if detect(i.text):
@@ -156,6 +160,8 @@ async def eval_solver(stream_link,proxies, ForwardProxy, client):
if "xdrop" in stream_link:
pattern = r'MDCore.wurl ?= ?"(.*?)"'
+ elif 'turbovid' in stream_link:
+ pattern = r'sources:\s*\["([^"]+)"'
else:
pattern = r'file:"(.*?)"'
match = re.search(pattern, unpacked_code)