add turbovid extractor
This commit is contained in:
@@ -127,7 +127,7 @@ async def scraping_links(atag,MFP,MFP_CREDENTIALS,client,streams,language):
|
|||||||
pattern = r'<a\s+href="([^"]+)"[^>]*rel="noopener"[^>]*>DeltaBit</a>'
|
pattern = r'<a\s+href="([^"]+)"[^>]*rel="noopener"[^>]*>DeltaBit</a>'
|
||||||
href = await get_host_link(pattern,atag,client)
|
href = await get_host_link(pattern,atag,client)
|
||||||
try:
|
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:
|
except Exception as e:
|
||||||
pattern = r'<a\s+href="([^"]+)"[^>]*rel="noopener"[^>]*>MixDrop</a>'
|
pattern = r'<a\s+href="([^"]+)"[^>]*rel="noopener"[^>]*>MixDrop</a>'
|
||||||
href = await get_host_link(pattern,atag,client)
|
href = await get_host_link(pattern,atag,client)
|
||||||
@@ -145,7 +145,7 @@ async def scraping_links(atag,MFP,MFP_CREDENTIALS,client,streams,language):
|
|||||||
try:
|
try:
|
||||||
pattern = r'<a\s+href="([^"]+)"[^>]*rel="noopener"[^>]*>DeltaBit</a>'
|
pattern = r'<a\s+href="([^"]+)"[^>]*rel="noopener"[^>]*>DeltaBit</a>'
|
||||||
href = await get_host_link(pattern,atag,client)
|
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
|
return streams
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
return streams
|
return streams
|
||||||
@@ -159,6 +159,14 @@ async def scraping_links(atag,MFP,MFP_CREDENTIALS,client,streams,language):
|
|||||||
return streams
|
return streams
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
return streams
|
return streams
|
||||||
|
if 'Deltabit' not in atag and 'Mixdrop' not in atag and 'Maxstream' not in atag and 'Turbovid' in atag:
|
||||||
|
try:
|
||||||
|
pattern = r'<a\s+href="([^"]+)"[^>]*rel="noopener"?[^>]*>Turbovid</a>'
|
||||||
|
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:
|
if 'DeltaBit' not in atag and 'MixDrop' not in atag and 'MaxStream' not in atag:
|
||||||
logger.info("Just give up")
|
logger.info("Just give up")
|
||||||
return streams
|
return streams
|
||||||
@@ -244,7 +252,7 @@ async def eurostreaming(streams,id,client,MFP,MFP_CREDENTIALS):
|
|||||||
async def test_euro():
|
async def test_euro():
|
||||||
from curl_cffi.requests import AsyncSession
|
from curl_cffi.requests import AsyncSession
|
||||||
async with AsyncSession() as client:
|
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)
|
print(results)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import re
|
|||||||
import time
|
import time
|
||||||
import logging
|
import logging
|
||||||
from Src.Utilities.config import setup_logging
|
from Src.Utilities.config import setup_logging
|
||||||
|
from Src.Utilities.eval import eval_solver
|
||||||
level = config.LEVEL
|
level = config.LEVEL
|
||||||
logger = setup_logging(level)
|
logger = setup_logging(level)
|
||||||
Icon = config.Icon
|
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."""
|
"""Extract Deltabit URL."""
|
||||||
i = 0
|
|
||||||
#Set up some headers
|
#Set up some headers
|
||||||
headers = random_headers.generate()
|
headers = random_headers.generate()
|
||||||
headers2 = 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')
|
name = input.get('name')
|
||||||
value = input.get('value')
|
value = input.get('value')
|
||||||
data[name] = value
|
data[name] = value
|
||||||
data['imhuman'] = ''
|
if extractor == 'Deltabit':
|
||||||
|
imhuman = ''
|
||||||
|
elif extractor == 'Turbovid':
|
||||||
|
imhuman = 'Proceed+to+video'
|
||||||
|
data['imhuman'] = imhuman
|
||||||
data['referer']= page_url
|
data['referer']= page_url
|
||||||
#We need to wait 2.5 seconds or the request will fail
|
#We need to wait 2.5/5 seconds or the request will fail
|
||||||
time.sleep(2.5)
|
if extractor == 'Deltabit':
|
||||||
|
time.sleep(2.5)
|
||||||
|
elif extractor == 'Turbovid':
|
||||||
|
time.sleep(5)
|
||||||
|
|
||||||
fname = data['fname']
|
fname = data['fname']
|
||||||
#Request to the deltabit link
|
#Request to the deltabit link
|
||||||
response = await client.post(ForwardProxy + page_url, data = data, headers = headers, proxies = proxies)
|
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:
|
if not link:
|
||||||
|
i = 0
|
||||||
if not i >= 3:
|
if not i >= 3:
|
||||||
page_url = 'https://deltabit.co/q4r8w4assff4'
|
link,fname = await deltabit(page_url,client,streams,site_name,proxies,ForwardProxy,language,extractor)
|
||||||
link,fname = await deltabit(page_url,client,streams,site_name,proxies,ForwardProxy,language)
|
|
||||||
i +=1
|
i +=1
|
||||||
else:
|
|
||||||
link = link[0]
|
|
||||||
if link:
|
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
|
return streams
|
||||||
@@ -76,7 +85,7 @@ async def deltabit(page_url,client,streams,site_name,proxies,ForwardProxy,langua
|
|||||||
async def test_deltabit():
|
async def test_deltabit():
|
||||||
from curl_cffi.requests import AsyncSession
|
from curl_cffi.requests import AsyncSession
|
||||||
async with AsyncSession() as client:
|
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)
|
print(results)
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
import asyncio
|
import asyncio
|
||||||
|
|||||||
@@ -146,9 +146,13 @@ async def eval_solver(stream_link,proxies, ForwardProxy, client):
|
|||||||
headers = random_headers.generate()
|
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["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'
|
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")
|
if len(stream_link) <= 200:
|
||||||
logger.debug("Eval:",response.status_code)
|
response = await client.get( ForwardProxy + stream_link, allow_redirects=True, timeout=30, headers = headers, proxies = proxies, impersonate = "chrome124")
|
||||||
soup = BeautifulSoup(response.text, "lxml",parse_only=SoupStrainer("script"))
|
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")
|
script_all = soup.find_all("script")
|
||||||
for i in script_all:
|
for i in script_all:
|
||||||
if detect(i.text):
|
if detect(i.text):
|
||||||
@@ -156,6 +160,8 @@ async def eval_solver(stream_link,proxies, ForwardProxy, client):
|
|||||||
if "xdrop" in stream_link:
|
if "xdrop" in stream_link:
|
||||||
pattern = r'MDCore.wurl ?= ?"(.*?)"'
|
pattern = r'MDCore.wurl ?= ?"(.*?)"'
|
||||||
|
|
||||||
|
elif 'turbovid' in stream_link:
|
||||||
|
pattern = r'sources:\s*\["([^"]+)"'
|
||||||
else:
|
else:
|
||||||
pattern = r'file:"(.*?)"'
|
pattern = r'file:"(.*?)"'
|
||||||
match = re.search(pattern, unpacked_code)
|
match = re.search(pattern, unpacked_code)
|
||||||
|
|||||||
Reference in New Issue
Block a user