New version

This commit is contained in:
UrloMythus
2025-06-10 22:42:56 +02:00
parent 4b5891457e
commit 1b1458e7f3
58 changed files with 1843 additions and 847 deletions

View File

@@ -39,15 +39,16 @@ class VixCloudExtractor(BaseExtractor):
async def extract(self, url: str, **kwargs) -> Dict[str, Any]:
"""Extract Vixcloud URL."""
site_url = url.split("/iframe")[0]
version = await self.version(site_url)
response = await self._make_request(url, headers={"x-inertia": "true", "x-inertia-version": version})
soup = BeautifulSoup(response.text, "lxml", parse_only=SoupStrainer("iframe"))
iframe = soup.find("iframe").get("src")
parsed_url = urlparse(iframe)
query_params = parse_qs(parsed_url.query)
response = await self._make_request(iframe, headers={"x-inertia": "true", "x-inertia-version": version})
if "iframe" in url:
site_url = url.split("/iframe")[0]
version = await self.version(site_url)
response = await self._make_request(url, headers={"x-inertia": "true", "x-inertia-version": version})
soup = BeautifulSoup(response.text, "lxml", parse_only=SoupStrainer("iframe"))
iframe = soup.find("iframe").get("src")
response = await self._make_request(iframe, headers={"x-inertia": "true", "x-inertia-version": version})
elif "movie" in url or "tv" in url:
response = await self._make_request(url)
if response.status_code != 200:
raise ExtractorError("Failed to extract URL components, Invalid Request")
soup = BeautifulSoup(response.text, "lxml", parse_only=SoupStrainer("body"))
@@ -55,15 +56,15 @@ class VixCloudExtractor(BaseExtractor):
script = soup.find("body").find("script").text
token = re.search(r"'token':\s*'(\w+)'", script).group(1)
expires = re.search(r"'expires':\s*'(\d+)'", script).group(1)
vixid = iframe.split("/embed/")[1].split("?")[0]
base_url = iframe.split("://")[1].split("/")[0]
final_url = f"https://{base_url}/playlist/{vixid}.m3u8?token={token}&expires={expires}"
if "canPlayFHD" in query_params:
# canPlayFHD = "h=1"
canPlayFHD = re.search(r"window\.canPlayFHD\s*=\s*(\w+)", script).group(1)
print(script,"A")
server_url = re.search(r"url:\s*'([^']+)'", script).group(1)
if "?b=1" in server_url:
final_url = f'{server_url}&token={token}&expires={expires}'
else:
final_url = f"{server_url}?token={token}&expires={expires}"
if "window.canPlayFHD = true" in script:
final_url += "&h=1"
if "b" in query_params:
# b = "b=1"
final_url += "&b=1"
self.base_headers["referer"] = url
return {
"destination_url": final_url,