KekikStream 1.7.3__py3-none-any.whl → 1.7.4__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: KekikStream
3
- Version: 1.7.3
3
+ Version: 1.7.4
4
4
  Summary: terminal üzerinden medya içeriği aramanızı ve VLC/MPV gibi popüler medya oynatıcılar aracılığıyla doğrudan izlemenizi sağlayan modüler ve genişletilebilir bir bıdı bıdı
5
5
  Home-page: https://github.com/keyiflerolsun/KekikStream
6
6
  Author: keyiflerolsun
@@ -53,7 +53,6 @@ KekikStream/Extractors/VidMoly.py,sha256=WfQZSXfLjN7R_V7PHY9mdKky4w9jefZD6yEh_l7
53
53
  KekikStream/Extractors/VidMolyMe.py,sha256=ogLiFUJVqFbhtzQrZ1gSB9me85DiHvntjWtSvidYVS8,218
54
54
  KekikStream/Extractors/VidMoxy.py,sha256=p1BpAUXtzBlZwmXROPsdvOQBgjMDungGDdvtsdc0NZE,1797
55
55
  KekikStream/Extractors/VidPapi.py,sha256=t8bUtkThrFpi3KfwKkVpZ6UHMlMG_Z30AOUgxI6G8NM,3285
56
- KekikStream/Extractors/VidStack.py,sha256=rnEZZDaVyJ13-jCyZ2_o8gRa855oenovecZjLpdZfqw,2586
57
56
  KekikStream/Extractors/VideoSeyred.py,sha256=LSSm1L_iWIeqoteU9aiVy3-BAoiGImPf0CzfsJCDDZ0,2006
58
57
  KekikStream/Extractors/YildizKisaFilm.py,sha256=By-iK-teCZghPCypisHocbjHOraeD9dmPVHnrV00HYY,1343
59
58
  KekikStream/Plugins/DiziBox.py,sha256=LNoZ6f2K8jM4YM20kNs5sqYhogssmY5sLri1PBMjwGo,10076
@@ -78,9 +77,9 @@ KekikStream/Plugins/SinemaCX.py,sha256=YarpMcPSMw9smu4S08lRjvxtAepQrlhHGkQcnR6_0
78
77
  KekikStream/Plugins/Sinezy.py,sha256=0MonEkc4qZ_epa7rBgPrlKFnNXJFNkwiytcmMrMp0Y8,3643
79
78
  KekikStream/Plugins/SuperFilmGeldi.py,sha256=CgNVtZv3iAkB2M_oesYUmG-nWjrjvAmkRphHKYLAOEQ,5284
80
79
  KekikStream/Plugins/UgurFilm.py,sha256=x1RuEe1jLCT8Ie_Kmp2IZCHFK558krewHoOJGrhAau8,4954
81
- kekikstream-1.7.3.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
82
- kekikstream-1.7.3.dist-info/METADATA,sha256=w_1wWJjuLvCgQn5cD2uWIOgV8up8MJg5HLf1c2m6Slg,4962
83
- kekikstream-1.7.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
84
- kekikstream-1.7.3.dist-info/entry_points.txt,sha256=dFwdiTx8djyehI0Gsz-rZwjAfZzUzoBSrmzRu9ubjJc,50
85
- kekikstream-1.7.3.dist-info/top_level.txt,sha256=DNmGJDXl27Drdfobrak8KYLmocW_uznVYFJOzcjUgmY,12
86
- kekikstream-1.7.3.dist-info/RECORD,,
80
+ kekikstream-1.7.4.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
81
+ kekikstream-1.7.4.dist-info/METADATA,sha256=vVrj5jTVrinGMyTnZ7X-ZQdpNUvBifVneZpFeciDAZk,4962
82
+ kekikstream-1.7.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
83
+ kekikstream-1.7.4.dist-info/entry_points.txt,sha256=dFwdiTx8djyehI0Gsz-rZwjAfZzUzoBSrmzRu9ubjJc,50
84
+ kekikstream-1.7.4.dist-info/top_level.txt,sha256=DNmGJDXl27Drdfobrak8KYLmocW_uznVYFJOzcjUgmY,12
85
+ kekikstream-1.7.4.dist-info/RECORD,,
@@ -1,75 +0,0 @@
1
- # Bu araç @keyiflerolsun tarafından | @KekikAkademi için yazılmıştır.
2
-
3
- from KekikStream.Core import ExtractorBase, ExtractResult, Subtitle
4
- from Crypto.Cipher import AES
5
- from urllib.parse import urlparse
6
- import re, binascii
7
-
8
- class VidStack(ExtractorBase):
9
- name = "VidStack"
10
- main_url = "https://vidstack.io"
11
- requires_referer = True
12
-
13
- def get_base_url(self, url: str) -> str:
14
- try:
15
- parsed = urlparse(url)
16
- return f"{parsed.scheme}://{parsed.netloc}"
17
- except Exception:
18
- return self.main_url
19
-
20
- def decrypt_aes(self, encrypted_hex: str, key: str, iv: str) -> str:
21
- try:
22
- key_bytes = key.encode('utf-8')
23
- iv_bytes = iv.encode('utf-8')
24
- cipher = AES.new(key_bytes, AES.MODE_CBC, iv_bytes)
25
-
26
- encrypted_bytes = binascii.unhexlify(encrypted_hex)
27
- decrypted_bytes = cipher.decrypt(encrypted_bytes)
28
-
29
- # Remove PKCS5 padding
30
- padding_len = decrypted_bytes[-1]
31
- return decrypted_bytes[:-padding_len].decode('utf-8')
32
- except Exception:
33
- return None
34
-
35
- async def extract(self, url: str, referer: str = None) -> ExtractResult:
36
- self.cffi.headers.update({
37
- "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0"
38
- })
39
-
40
- if referer:
41
- self.cffi.headers.update({"Referer": referer})
42
-
43
- video_hash = url.split("#")[-1].split("/")[-1]
44
- base_url = self.get_base_url(url)
45
-
46
- api_url = f"{base_url}/api/v1/video?id={video_hash}"
47
- istek = await self.cffi.get(api_url)
48
- encoded = istek.text.strip()
49
-
50
- key = "kiemtienmua911ca"
51
- iv_list = ["1234567890oiuytr", "0123456789abcdef"]
52
-
53
- decrypted_text = None
54
- for iv in iv_list:
55
- if result := self.decrypt_aes(encoded, key, iv):
56
- decrypted_text = result
57
- break
58
-
59
- if not decrypted_text:
60
- raise ValueError(f"VidStack: Şifre çözülemedi. {url}")
61
-
62
- m3u8_url = ""
63
- if match := re.search(r'"source":"(.*?)"', decrypted_text):
64
- m3u8_url = match.group(1).replace("\\/", "/")
65
-
66
- if not m3u8_url:
67
- raise ValueError(f"VidStack: Source bulunamadı. {url}")
68
-
69
- return ExtractResult(
70
- name = self.name,
71
- url = m3u8_url,
72
- referer = url,
73
- headers = {},
74
- subtitles = []
75
- )