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.
- {kekikstream-1.7.3.dist-info → kekikstream-1.7.4.dist-info}/METADATA +1 -1
- {kekikstream-1.7.3.dist-info → kekikstream-1.7.4.dist-info}/RECORD +6 -7
- KekikStream/Extractors/VidStack.py +0 -75
- {kekikstream-1.7.3.dist-info → kekikstream-1.7.4.dist-info}/WHEEL +0 -0
- {kekikstream-1.7.3.dist-info → kekikstream-1.7.4.dist-info}/entry_points.txt +0 -0
- {kekikstream-1.7.3.dist-info → kekikstream-1.7.4.dist-info}/licenses/LICENSE +0 -0
- {kekikstream-1.7.3.dist-info → kekikstream-1.7.4.dist-info}/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: KekikStream
|
|
3
|
-
Version: 1.7.
|
|
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.
|
|
82
|
-
kekikstream-1.7.
|
|
83
|
-
kekikstream-1.7.
|
|
84
|
-
kekikstream-1.7.
|
|
85
|
-
kekikstream-1.7.
|
|
86
|
-
kekikstream-1.7.
|
|
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
|
-
)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|